This version (24 Mar 2019 23:54) was approved by Dragos Bogdan.

AD5110 - Microcontroller No-OS Driver

Supported Devices

Evaluation Boards


The AD5110/AD5112/AD5114 provide a nonvolatile solution for 128/64/32-position adjustment applications, offering guaranteed low resistor tolerance errors of ±8% and up to ±6 mA current density in the A, B, and W pins. The low resistor tolerance, low nominal temperature coefficient and high bandwidth simplify open-loop applications, as well as tolerance matching applications.

The new low wiper resistance feature minimizes the wiper resistance in the extremes of the resistor array to only 45 Ω, typical.

The wiper settings are controllable through an I2C-compatible digital interface that is also used to readback the wiper register and EEPROM content. Resistor tolerance is stored within EEPROM, providing an end-to-end tolerance accuracy of 0.1%.

The AD5110/AD5112/AD5114 are available in a 2 mm × 2 mm LFCSP package. The parts are guaranteed to operate over the extended industrial temperature range of −40°C to +125°C.

  • Mechanical potentiometer replacement
  • Portable electronics level adjustment
  • Audio volume control
  • Low resolution DAC
  • LCD panel brightness and contrast control
  • Programmable voltage to current conversion
  • Programmable filters, delays, time constants
  • Feedback resistor programmable power supply
  • Sensor calibration

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 AD5110 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 AD5110 driver can be used exactly as it is provided.

There are three functions which are called by the AD5110 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 AD5110 driver:

Function Description
unsigned char AD511X_Init(char deviceModel, long endToEndRes) Initializes the communication with the device.
void AD511X_SendCommand(unsigned char command, unsigned char data) Sends a command to the device.
void AD511X_Power(char pwr) Powers on/off the device.
unsigned char AD511X_ReadData(char readLocation, char content) Reads data from the device.
void AD511X_WaitForDevice(void) Performs an Acknowledge Polling.
float AD511X_GetTolerance(void) Reads the resistance tolerance that is stored in the internal memory during factory testing.
float AD511X_SetResistance(float outRes) Sets the output resistance of the device.


Renesas RL78G13 Quick Start Guide

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

Required Hardware

Required Software

Hardware Setup

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

  EVAL-AD5110SDZ LK5(Right pin) SCL  → YRDKRL78G13 J9 connector Pin 1
  EVAL-AD5110SDZ LK3(Right pin) SDA  → YRDKRL78G13 J9 connector Pin 3

Reference Project Overview

The reference project initializes the I2C communication peripheral, configures the AD5110 output resistance to 1500 Ohm, stores and reads back data from EEPROM and displays the resistor tolerance.

Software Project Setup

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

More information

01 Jun 2012 12:21
05 Nov 2012 15:34 · Dragos Bogdan
resources/tools-software/uc-drivers/ad5110.txt · Last modified: 24 Mar 2019 23:54 by Dragos Bogdan