LTlib LaurTec Library  4.0.1
Open Source C Library for Microchip Microcontrollers based on XC8 Compiler
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
MCP4822.h File Reference
#include "LTlib.h"

Go to the source code of this file.

Macros

#define MCP4822_SPI_MODULE_1
 
#define MCP4822_SPI_open   SPI1_open
 
#define MCP4822_SPI_baudrate   SPI1_baudrate
 
#define MCP4822_SPI_mode   SPI1_mode
 
#define MCP4822_SPI_write_byte   SPI1_write_byte
 
#define MCP4822_SPI_read_byte   SPI1_read_byte
 
#define MCP4822_CS_TRIS   TRISAbits.TRISA5
 
#define MCP4822_CS_PORT   PORTAbits.RA5
 
#define MCP4822_LDAC_TRIS   TRISEbits.TRISE0
 
#define MCP4822_LDAC_PORT   PORTEbits.RE0
 
#define MCP4822_PULSE_DELAY   _delay(1)
 
#define MCP4822_DAC_A   0x00
 
#define MCP4822_DAC_B   0x80
 
#define MCP4822_GAIN_1   0x20
 
#define MCP4822_GAIN_2   0x00
 
#define MCP4822_OUT_DEFAULT_VALUE   0x00
 
#define MCP4822_SHUTDOWN_ON   0x00
 
#define MCP4822_SHUTDOWN_OFF   0x10
 
#define MCP4822_CLOCK_FOSC_64   SPI_CLK_OSC_64
 
#define MCP4822_CLOCK_FOSC_16   SPI_CLK_OSC_16
 
#define MCP4822_CLOCK_FOSC_4   SPI_CLK_OSC_4
 
#define MCP4822_CLOCK_FOSC_TMR2   SPI_TIMER_OUT_CLK
 
#define MCP4822_CS_DISABLED   0x01
 
#define MCP4822_CS_ENABLED   0x00
 
#define MCP4822_LDAC_DISABLED   0x01
 
#define MCP4822_LDAC_ENABLED   0x00
 
#define initialize_MCP4822   MCP4822_initialize
 
#define set_value_MCP4822   MCP4822_set_value
 
#define set_amplitude_MCP4822   MCP4822_set_amplitude
 
#define latch_pulse_MCP4822   MCP4822_latch_pulse
 
#define set_options_MCP4822   MCP4822_set_options
 

Functions

void MCP4822_initialize (unsigned char clock)
 
void MCP4822_set_value (unsigned int value, unsigned char channel)
 
void MCP4822_set_amplitude (unsigned int value, unsigned char channel)
 
void MCP4822_latch_pulse (void)
 
void MCP4822_set_options (unsigned char gain, unsigned char power, unsigned char channel)
 

Macro Definition Documentation

#define initialize_MCP4822   MCP4822_initialize

Definition at line 149 of file MCP4822.h.

#define latch_pulse_MCP4822   MCP4822_latch_pulse

Definition at line 200 of file MCP4822.h.

#define MCP4822_CLOCK_FOSC_16   SPI_CLK_OSC_16

Definition at line 125 of file MCP4822.h.

#define MCP4822_CLOCK_FOSC_4   SPI_CLK_OSC_4

Definition at line 126 of file MCP4822.h.

#define MCP4822_CLOCK_FOSC_64   SPI_CLK_OSC_64

Definition at line 124 of file MCP4822.h.

#define MCP4822_CLOCK_FOSC_TMR2   SPI_TIMER_OUT_CLK

Definition at line 127 of file MCP4822.h.

#define MCP4822_CS_DISABLED   0x01

Definition at line 129 of file MCP4822.h.

#define MCP4822_CS_ENABLED   0x00

Definition at line 130 of file MCP4822.h.

#define MCP4822_CS_PORT   PORTAbits.RA5

Definition at line 100 of file MCP4822.h.

#define MCP4822_CS_TRIS   TRISAbits.TRISA5

Definition at line 99 of file MCP4822.h.

#define MCP4822_DAC_A   0x00

Definition at line 113 of file MCP4822.h.

#define MCP4822_DAC_B   0x80

Definition at line 114 of file MCP4822.h.

#define MCP4822_GAIN_1   0x20

Definition at line 116 of file MCP4822.h.

#define MCP4822_GAIN_2   0x00

Definition at line 117 of file MCP4822.h.

#define MCP4822_LDAC_DISABLED   0x01

Definition at line 132 of file MCP4822.h.

#define MCP4822_LDAC_ENABLED   0x00

Definition at line 133 of file MCP4822.h.

#define MCP4822_LDAC_PORT   PORTEbits.RE0

Definition at line 104 of file MCP4822.h.

#define MCP4822_LDAC_TRIS   TRISEbits.TRISE0

Definition at line 103 of file MCP4822.h.

#define MCP4822_OUT_DEFAULT_VALUE   0x00

Definition at line 119 of file MCP4822.h.

#define MCP4822_PULSE_DELAY   _delay(1)

Definition at line 111 of file MCP4822.h.

#define MCP4822_SHUTDOWN_OFF   0x10

Definition at line 122 of file MCP4822.h.

#define MCP4822_SHUTDOWN_ON   0x00

Definition at line 121 of file MCP4822.h.

#define MCP4822_SPI_baudrate   SPI1_baudrate

Definition at line 69 of file MCP4822.h.

#define MCP4822_SPI_mode   SPI1_mode

Definition at line 70 of file MCP4822.h.

#define MCP4822_SPI_MODULE_1

Definition at line 64 of file MCP4822.h.

#define MCP4822_SPI_open   SPI1_open

Definition at line 68 of file MCP4822.h.

#define MCP4822_SPI_read_byte   SPI1_read_byte

Definition at line 72 of file MCP4822.h.

#define MCP4822_SPI_write_byte   SPI1_write_byte

Definition at line 71 of file MCP4822.h.

#define set_amplitude_MCP4822   MCP4822_set_amplitude

Definition at line 186 of file MCP4822.h.

#define set_options_MCP4822   MCP4822_set_options

Definition at line 220 of file MCP4822.h.

#define set_value_MCP4822   MCP4822_set_value

Definition at line 168 of file MCP4822.h.

Function Documentation

void MCP4822_initialize ( unsigned char  clock)

This function initializes the MCP4822 and PIC signals. SDO, SS, SCK from the PIC side are automatically set by this function.

Parameters
clockIt sets the clock source for the SPI module. Use the following constants [MCP4822_CLOCK_FOSC_64, MCP4822_CLOCK_FOSC_16, MCP4822_CLOCK_FOSC_4, MCP4822_CLOCK_FOSC_TMR2]
Returns
void
Note
By default the DAC outputs are set to high impedance.
Warning
You must properly set the Analog inputs which are muxed with the SPI lines.

Definition at line 60 of file MCP4822.c.

References MCP4822_CS_DISABLED, MCP4822_CS_PORT, MCP4822_CS_TRIS, MCP4822_DAC_A, MCP4822_DAC_B, MCP4822_GAIN_2, MCP4822_LDAC_DISABLED, MCP4822_LDAC_PORT, MCP4822_LDAC_TRIS, MCP4822_OUT_DEFAULT_VALUE, MCP4822_set_amplitude(), MCP4822_set_options(), MCP4822_SHUTDOWN_ON, MCP4822_SPI_baudrate, MCP4822_SPI_mode, MCP4822_SPI_open, MCP4822_SPI_read_byte, PIN_AS_OUTPUT, SPI_MASTER_DEVICE, and SPI_MODE_0.

void MCP4822_latch_pulse ( void  )

This function generates the LATCC pulse required to load the value to the DAC. It is required only in case the MSP4822_set_value is used. The function MSP4822_set_amplitude already include a call to this function.

Parameters
void
Returns
void

Definition at line 131 of file MCP4822.c.

References MCP4822_LDAC_DISABLED, MCP4822_LDAC_ENABLED, MCP4822_LDAC_PORT, and MCP4822_PULSE_DELAY.

void MCP4822_set_amplitude ( unsigned int  value,
unsigned char  channel 
)

This function sets the output value of the DAC. By Gain 2 the value is expressed in mV, while by Gain 1 is 1/2 mV.

Parameters
valueIt sets the output value of the DAC [12 bits].
channelIt sets the channel to which the value refers to [MCP4822_DAC_A, MCP4822_DAC_B].
Returns
void
Note
This function does generate the LATCH pulse to load the DAC value right after the SPI writing.

Definition at line 120 of file MCP4822.c.

References MCP4822_latch_pulse(), and MCP4822_set_value().

void MCP4822_set_options ( unsigned char  gain,
unsigned char  power,
unsigned char  channel 
)

This function sets the DAC Options. The options which are set in the function, take place after the next writing to the corresponding DAC Channel.

Parameters
gainIt sets the output gain [MCP4822_GAIN_1, MCP4822_GAIN_2]
powerIt sets the channel power mode [MCP4822_SHUTDOWN_ON, MCP4822_SHUTDOWN_OFF]
channelIt sets the channel to which the options refer to [MCP4822_DAC_A, MCP4822_DAC_B]
Returns
void
Note
This function does NOT generate the LATCH pulse to load the DAC value right after the writing. The settings take place by the next amplitude writing.

Definition at line 143 of file MCP4822.c.

References gain_value_DAC_A_MCP4822, gain_value_DAC_B_MCP4822, MCP4822_DAC_A, MCP4822_DAC_B, power_mode_DAC_A_MCP4822, and power_mode_DAC_B_MCP4822.

void MCP4822_set_value ( unsigned int  value,
unsigned char  channel 
)

This function sets the output value of the DAC. By Gain 2 the value is expressed in mV, while by Gain 1 is 1/2 mV.

Parameters
valueIt sets the output value of the DAC [12 bits].
channelIt sets the channel to which the value refers to [MCP4822_DAC_A, MCP4822_DAC_B].
Returns
void
Note
This function does not generate the LATCH pulse to load the DAC values. This it means that the pulse latch pulse must be generated separately. This option is used in case both DAC must be set before loading the output value.

Definition at line 89 of file MCP4822.c.

References gain_value_DAC_A_MCP4822, gain_value_DAC_B_MCP4822, MCP4822_CS_DISABLED, MCP4822_CS_ENABLED, MCP4822_CS_PORT, MCP4822_DAC_A, MCP4822_SPI_write_byte, power_mode_DAC_A_MCP4822, and power_mode_DAC_B_MCP4822.