This is an old revision of the document!
The AD5628 device is a low power, octal, 12-bit, buffered voltage-output DAC. The device operates from a single 2.7 V to 5.5 V supply and is guaranteed monotonic by design. The AD5628 is available in both a 4 mm × 4 mm LFCSP and a 16-lead TSSOP.
The AD5628 has an on-chip reference with an internal gain of 2. The AD5628-1 has an 1.25 V 5 ppm/°C reference, giving a full-scale output range of 2.5 V; the AD5628-2, has a 2.5 V 5 ppm/°C reference, giving a full-scale output range of 5 V. The on-board reference is off, at power-up, allowing the use of an external reference. The internal reference is enabled via a software write.
The part incorporates a power-on reset circuit that ensures that the DAC output powers up to 0 V and remains powered up at this level until a valid write takes place. The part contains a power-down feature that reduces the current consumption of the device to 400 nA at 5 V and provides software-selectable output loads while in power-down mode for any or all DAC channels.
The outputs of all DACs can be updated simultaneously using the LDAC function, with the added functionality of user-selectable DAC channels to simultaneously update. There is also an asynchronous CLR that updates all DACs to a user-programmable code—zero scale, midscale, or full scale.
The AD5628 utilizes a versatile 3-wire serial interface that operates at clock rates of up to 50 MHz and is compatible with standard SPI®, QSPI™, MICROWIRE™, and DSP interface standards. The on-chip precision output amplifier enables rail-to-rail output swing.
The goal of this project (Microcontroller No-OS) is to be able to provide reference projects for lower end processors, which can't run Linux, or aren't running a specific operating system, to help those customers using microcontrollers with ADI parts. Here you can find a generic driver which can be used as a base for any microcontroller platform and also specific drivers for different microcontroller platforms.
The driver contains two parts:
The Communication Driver has a standard interface, so the AD5628 driver can be used exactly as it is provided.
There are three functions which are called by the AD5628 driver:
SPI driver architecture
The following functions are implemented in this version of AD5628 driver:
Function | Description |
---|---|
char AD5628_Init(void) | Resets the device and performs several initializations. |
void AD5628_PowerMode(unsigned char pwrMode, unsigned char channel) | Sets the device in a specific power mode. |
void AD5628_Reset(void) | Resets the device. |
void AD5628_SetInputRegister(unsigned long registerValue) | Writes a 32-bit data-word to the Input Register of the device. |
HW Platform(s):
This section contains a description of the steps required to run the AD5628 demonstration project on a Digilent Cerebot MX3cK platform.
Following commands were implemented in this version of AD5628 reference project for Cerebot MX3cK board.
Command | Description |
---|---|
help? | Displays all available commands. |
mode= | Selects a mode of operation for the current channel. Accepted values: 0 – 3. |
mode? | Displays the selected mode of operation for the current channel. |
channel= | Selects the channel that will be affected by the other commands. Accepted values: 0 – 7 (one channel) or 15 (all channels). |
channel? | Displays the selected channel. |
voltage= | Sets the output voltage for the current voltage. Accepted values: 0 – 2.5 (volts). |
voltage? | Displays the output voltage of the current voltage. |
register= | Writes the value into the Input Register of the current channel. Accepted values: 0 – 4095. |
register? | Displays the value written in the Input Register of the current channel. |
Commands can be executed using a serial terminal connected to the UART1 peripheral of PIC32MX320F128H.
The following image shows a list of commands in a serial terminal connected to processor’s UART peripheral.
This section presents the steps for developing a software application that will run on the Digilent Cerebot MX3cK development board for controlling and monitoring the operation of the ADI part.
This section contains a description of the steps required to run the AD5628 demonstration project on a Digilent Cerebot MC7 platform.
Following commands were implemented in this version of AD5628 reference project for Cerebot MC7 board.
Command | Description |
---|---|
help? | Displays all available commands. |
mode= | Selects a mode of operation for the current channel. Accepted values: 0 – 3. |
mode? | Displays the selected mode of operation for the current channel. |
channel= | Selects the channel that will be affected by the other commands. Accepted values: 0 – 7 (one channel) or 15 (all channels). |
channel? | Displays the selected channel. |
voltage= | Sets the output voltage for the current voltage. Accepted values: 0 – 2.5 (volts). |
voltage? | Displays the output voltage of the current voltage. |
register= | Writes the value into the Input Register of the current channel. Accepted values: 0 – 4095. |
register? | Displays the value written in the Input Register of the current channel. |
Commands can be executed using a serial terminal connected to the UART1 peripheral of dsPIC33FJ128MC706A.
The following image shows a list of commands in a serial terminal connected to processor’s UART peripheral.
This section presents the steps for developing a software application that will run on the Digilent Cerebot MC7 development board for controlling and monitoring the operation of the ADI part.
This section contains a description of the steps required to run the AD5628 chipKIT demonstration project on a Digilent Cerebot MX3cK platform.
Following commands were implemented in this version of AD5628 chipKIT reference project for Cerebot MX3cK board.
Command | Description |
---|---|
help? | Displays all available commands. |
mode= | Selects a mode of operation for the current channel. Accepted values: 0 – 3. |
mode? | Displays the selected mode of operation for the current channel. |
channel= | Selects the channel that will be affected by the other commands. Accepted values: 0 – 7 (one channel). |
channel? | Displays the selected channel. |
voltage= | Sets the output voltage for the current voltage. Accepted values: 0 – 2.5 (volts). |
voltage? | Displays the output voltage of the current voltage. |
register= | Writes the value into the Input Register of the current channel. Accepted values: 0 – 4095. |
register? | Displays the value written in the Input Register of the current channel. |
Commands can be executed using the serial monitor.
Carriage return has to be selected as a line ending character. The required baud rate is 9600 baud.
The following image shows a list of commands in the serial monitor.
This section presents the steps for developing a chipKIT application that will run on the Digilent Cerebot MX3cK development board for controlling and monitoring the operation of the ADI part.