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 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 Renesas platforms.
HW Platform(s):
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 |
---|---|
unsigned char AD5628_Init(void) | Resets the device and performs several initializations. |
void AD5628_PowerMode(unsigned char pwrMode) | 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. |
This section contains a description of the steps required to run the AD5628 demonstration project on a Renesas RL78G13 platform.
With the Applilet3 for RL78G13 tool the following peripherals have to be configured:
Choose to generate the Transmit/receive function for the CSI10 and configure the interface with the following settings:
Configure TM00 as an interval timer:
Disable the watchdog timer:
The reference project initializes the AD5628 part and writes:
This section presents the steps for developing a software application that will run on the Renesas Demo Kit for RL78G13 for controlling and monitoring the operation of the ADI part.
Two software applications have to be used: Applilet3 for RL78G13 (a tool that automatically generates device drivers for MCU peripheral functions) and IAR Embedded Workbench for Renesas RL78 (the integrated development environment).
This section contains a description of the steps required to run the AD5628 demonstration project on a Renesas RX62N platform.
A PmodDA4 has to be interfaced with the Renesas Demonstration Kit (RDK) for RX62N:
PmodDA4 Pin 1 (CS) → YRDKRX62N J8 connector Pin 15 PmodDA4 Pin 2 (MOSI) → YRDKRX62N J8 connector Pin 19 PmodDA4 Pin 4 (CLK) → YRDKRX62N J8 connector Pin 20 PmodDA4 Pin 5 (GND) → YRDKRX62N J8 connector Pin 4 PmodDA4 Pin 6 (VCC) → YRDKRX62N J8 connector Pin 3
The reference project initializes the AD5628 part and writes:
This section presents the steps for developing a software application that will run on the Renesas Demo Kit for RX62N 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 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.