Table of Contents
AD5755 - Microcontroller No-OS Driver
The AD5755 is is a quad, voltage and current output DAC that operates with a power supply range from −26.4 V to +33 V. On-chip dynamic power control minimizes package power dissipation in current mode. This is achieved by regulating the voltage on the output driver from 7.4 V to 29.5 V using a dc-to-dc boost converter optimized for minimum on chip power dissipation.
The part uses a versatile 3-wire serial interface that operates at clock rates of up to 30 MHz and is compatible with standard SPI, QSPI™, MICROWIRE™, DSP, and microcontroller inter-face standards. The interface also features optional CRC-8 packet error checking, as well as a watchdog timer that monitors activity on the interface.
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.
The driver contains two parts:
- The driver for the AD5755 part, which may be used, without modifications, with any microcontroller.
- The Communication Driver, where the specific communication functions for the desired type of processor and communication protocol have to be implemented. This driver implements the communication with the device and hides the actual details of the communication protocol to the ADI driver.
The Communication Driver has a standard interface, so the AD5755 driver can be used exactly as it is provided.
There are three functions which are called by the AD5755 driver:
- SPI_Init() – initializes the communication peripheral.
- SPI_Write() – writes data to the device.
- SPI_Read() – reads data from the device.
SPI driver architecture
The following functions are implemented in this version of AD5755 driver:
|unsigned char AD5755_Init(void)||Initializes the device and powers-up all channels.|
|long AD5755_GetRegisterValue(unsigned char registerAddress)||Reads the value of a register.|
|unsigned short AD5755_SetRegisterValue(unsigned char registerAddress, unsigned char channel, unsigned long registerValue)||Writes data into a register.|
|void AD5755_Software_Reset(void)||Performs a software reset to the device.|
|void AD5755_WatchDogSetup(unsigned char wtdEnable, unsigned char timeout)||Enables/Disables watchdog timer and sets the timeout period.|
|void AD5755_FeedWatchDogTimer(void)||Writes a “service pulse” to the AD5755 watchdog timer when enabled.|
|void AD5755_SetControlRegisters(unsigned char ctrlRegAddress, unsigned char channel,unsigned short regValue)||Configures one of the control registers.|
|unsigned char AD5755_CheckCrc(unsigned char* data, unsigned char bytesNumber)||Computes the CRC for a data buffer.|
|void AD5755_SetChannelPower(unsigned char channel, unsigned char pwrStatus)||Allows power-up/down of the dc-to-dc converter, DAC and internal amplifiers for the selected channel.|
|void AD5755_SetChannelRange(unsigned char channel, unsigned char range)||Sets the range of a channel.|
|void AD5755_ChannelClearEnable(unsigned char channel, unsigned char clearEn)||Selects if the channel clears when CLEAR pin is activated.|
|void AD5755_SlewRateCtrl(char channel, char srEn, char updtFreq, char stepSize)||Configures the Digital Slew Rate Control.|
|float AD5755_SetVoltage(unsigned char channel, float voltage)||Sets the output voltage of a channel.|
|float AD5755_SetCurrent(unsigned char channel, float mACurrent)||Sets the output current of a channel.|
Renesas RL78G13 Quick Start Guide
This section contains a description of the steps required to run the AD5755 demonstration project on a Renesas RL78G13 platform.
An EVAL-AD5755SDZ has to be interfaced with the Renesas Demonstration Kit (RDK) for RL78G13:
EVAL-AD5755SDZ J11 Pin 1(DVDD) → YRDKRL78G13 J11 connector Pin 6 EVAL-AD5755SDZ J11 Pin 2(DGND) → YRDKRL78G13 J11 connector Pin 5 EVAL-AD5755SDZ J11 Pin 3(SYNC) → YRDKRL78G13 J11 connector Pin 1 EVAL-AD5755SDZ J11 Pin 4(SCLK) → YRDKRL78G13 J11 connector Pin 4 EVAL-AD5755SDZ J11 Pin 5(SDIN) → YRDKRL78G13 J11 connector Pin 3 EVAL-AD5755SDZ J11 Pin 6(SDO) → YRDKRL78G13 J11 connector Pin 2 EVAL-AD5755SDZ J11 Pin 7(LDAC) → YRDKRL78G13 J11 connector Pin 9 EVAL-AD5755SDZ J11 Pin 8(CLEAR) → YRDKRL78G13 J11 connector Pin 7 EVAL-AD5755SDZ J11 Pin 9(POC) → YRDKRL78G13 J11 connector Pin 8 EVAL-AD5755SDZ J11 Pin 10(RESET) → YRDKRL78G13 J11 connector Pin 10
Reference Project Overview
The reference project outputs a square signal on channel A, and DC voltage signals on channels B, C and D.
Software Project Tutorial
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.
- Run the IAR Embedded Workbench for Renesas RL78 integrated development environment.
- Choose to create a new project (Project – Create New Project).
- Select the RL78 tool chain, the Empty project template and click OK.
- Select a location and a name for the project (ADIEvalBoard for example) and click Save.
- Open the project’s options window (Project – Options).
- From the Target tab of the General Options category select the RL78 – R5F100LE device.
- From the Setup tab of the Debugger category select the TK driver and click OK.
- Extract the files from the lab .zip archive and copy them into the project’s folder.
- The new source files have to be included into the project. Open the Add Files… window (Project – Add Files…), select all the copied files and click open.
- At this moment, all the files are included into the project.
- The project is ready to be compiled and downloaded on the board. Press the F7 key to compile it. Press CTRL + D to download and debug the project.
- A window will appear asking to configure the emulator. Keep the default settings and press OK.
- To run the project press F5.
- Example questions:
- AD9361 clock setup by g.dallemura