This version (25 Jan 2021 05:27) was approved by Robin Getz.The Previously approved version (22 Jan 2018 09:34) is available.Diff

AD5696R - Microcontroller No-OS Driver

Supported Devices

Evaluation Boards


The AD5694/AD5696, members of the nanoDAC+™ family are low power, quad, 12/16-bit buffered voltage output DACs. The devices include a gain select pin giving a full-scale output of 0V to VREF (gain = 1) or 0V to 2VREF (gain = 2).

The AD5694R/AD5695R/AD5696R nanoDAC+TM are quad, 12/14/16-bit, rail-to-rail, voltage output DACs. The devices include a 2.5V, 2ppm/˚C internal reference (enabled by default) and a gain select pin giving a full-scale output of 2.5V (gain=1) or 5V (gain=2).

These devices operate from a single 2.7 V to 5.5 V supply, are guaranteed monotonic by design and exhibit less than 0.1% FSR gain error and 1.5mV offset error performance. The devices are available in a 3mm X 3mm LFCSP and a TSSOP package.

The AD5694/AD5696/AD5694R/AD5695R/AD5696R also incorporate a power-on reset circuit and a RSTSEL pin that ensures that the DAC outputs power up to zero scale or midscale and remain at that level until a valid write takes place. Each part contains a per-channel power-down feature that reduces the current consumption of the device to 4 µA at 3 V while in power-down mode. The devices employ an I2C interface that operates at clock rates up to 400 kHz, and all devices contain a VLOGIC pin intended for 1.8 V/3 V/5 V logic.

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):

Driver Description

The driver contains two parts:

  • The driver for the AD5696R 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 AD5696R driver can be used exactly as it is provided.

There are three functions which are called by the AD5696R driver:

  • I2C_Init() – initializes the communication peripheral.
  • I2C_Write() – writes data to the device.
  • I2C_Read() – reads data from the device.

I2C driver architecture

The following functions are implemented in this version of AD5696R driver:

Function Description
unsigned char AD569X_Init(unsigned char ad569x) Initializes the device.
void AD569X_Reset(unsigned char resetOutput) Resets the device(clears the outputs to either zero scale or midscale).
void AD569X_PowerMode(unsigned char channel, unsigned char pwrMode) Puts the device in a specific power mode.
void AD569X_InternalVoltageReference(unsigned char vRefMode) Select internal or external voltage reference.
void AD569X_SetInputRegister(unsigned long registerValue) Writes a 24-bit data-word to the Input Register of the device.
void AD569X_WriteFunction(unsigned char writeCommand, unsigned char channel, unsigned short data) Write data to the Input Register or to DAC Register of a channel.
unsigned short AD569X_ReadBack(unsigned char dacChannelAddr) Reads back the binary value written to one of the channels.
float AD569X_SetVoltage(unsigned char channel, float outputVoltage, float vRef) Selects the output voltage of the selected channel.


Renesas RL78G13 Quick Start Guide

This section contains a description of the steps required to run the AD5696R demonstration project on a Renesas RL78G13 platform.

Required Hardware

Required Software

Hardware Setup

An EVAL-AD5696RSDZ has to be interfaced with the Renesas Demonstration Kit (RDK) for RL78G13:

  EVAL-AD5696RSDZ Pin SCL   →  YRDKRL78G13 J9  connector Pin 1
  EVAL-AD5696RSDZ Pin SDA   →  YRDKRL78G13 J9  connector Pin 3
  EVAL-AD5696RSDZ Pin LDAC  →  YRDKRL78G13 J11 connector Pin 9
  EVAL-AD5696RSDZ Pin RESET →  YRDKRL78G13 J11 connector Pin 10
  EVAL-AD5696RSDZ Pin GND   →  YRDKRL78G13 J11 connector Pin 11    

Reference Project Overview

The reference project:

  • sets the output voltage of channel A and the reads back the raw value written into the DAC register;
  • sets the output voltage of channel B using AD569X_SetVoltage() function;
  • generates a sine wave on channel C;
  • generates a trapezoid wave on channel 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.

03 Sep 2012 13:02 · Dragos Bogdan
resources/tools-software/uc-drivers/renesas/ad5696r.txt · Last modified: 25 Jan 2021 05:23 by Robin Getz