Analog Devices nanoDAC+® products are low power, single-channel, 16-/14-/12-bit buffered voltage output DACs. This page gives an overview of using the nanodac+® firmware example with SDP-K1 EVAL board, interfacing with various EVAL boards supporting nanodac+ family devices. The firmware example comprises 3 layers of software (from top to bottom): Console Application Layer, Device No-OS Layer and Platform Drivers (Mbed-OS) layer.
The application layer uses the ADI Console Libraries to create console based User Interactive (UI). The middle layer of No-OS device library have device specific APIs to interface with nanodac+ device. These APIs allows direct access to device register map in order to read/write device registers. The bottom layer of Platform Drivers is responsible for Low Level Interface. The platform drivers uses mbed-os libraries to access low level peripheral (like GPIOs, SPI, I2C, etc). The devices from nanodac+ family uses either SPI or I2C communication interface.
The nanoDac+ Mbed firmware example can be used as a starting point for developing your own code for Analog Devices nanoDAC+ products in your own environment utilizing the benefits of the Mbed platform. The Mbed Platform simplifies the overall software development process by providing the low level driver support. This reduces the hardware dependency as any Mbed enabled board can be used with same firmware with little modifications (precisely changing a pin mapping).
The AD568xRSDZ(nanodac+)-EVAL board is connected to SDP-K1 through on-board default 120-pin SDP Connector. The nanodac+ EVAL board can be powered-up through a SDP-K1 USB supply or from external DC supply, depending on the power supply jumper settings. The settings can vary board to board and user must refer user manual of respective EVAL board for ensuring the proper connections. Apart from power supply selection option, the EVAL board does provide an options to select Vref level, Gain level, I2C slave address bits-2:1 (A0,A1 pins) and other options based on the EVAL board hardware configurations. The SDP-K1 is connected to PC through an USB cable. The firmware (binary executable) can be loaded into SDP-K1 board through this USB interface from the PC. The SDP-K1 acts as a Serial Device (UART) and firmware loaded into it interacts with any serial terminal (like Teraterm, Putty, Coolterm, etc) by configuring terminal for proper serial settings (COM Port, Baud Rate, data bits, etc).
*Note:The firmware provides a basic user-interface for interacting with the evaluation-board. All the main functionality of the nanoDAC+ is provided in the application-code in abstracted form and the user is free to customize the software to suit their own needs for working with the nanoDAC+ This firmware can support the following members of the nanoDAC+ family:
AD5671R AD5672R AD5673R AD5674 AD5674R AD5675R AD5676 AD5676R AD5677R AD5679 AD5679R AD5686 AD5684R AD5685R AD5686R AD5687 AD5687R AD5689 AD5689R AD5697R AD5694 AD5694R AD5695R AD5696 AD5696R AD5681R AD5682R AD5683R AD5683 AD5691R AD5692R AD5693R AD5693
*Note: The settings can vary board to board and user must refer user manual of respective EVAL board for ensuring the proper connections.
SDP-K1 is powered through USB connection from the PC. SDP-K1 acts as a Serial device when connected to PC, which creates a COM Port to connect to Serial Terminals like Teraterm, Putty, etc. The COM port assigned to a device can be seen through the device manager for windows based OS.
This section briefs on the usage of MBED firmware. This also explains the steps to compile and build the application using mbed and make based build.
Source code is hosted here:
Build Guide for Precision Converters MBED firmware (Use below link):
The software execution sequence for the nanodac+ Firmware Example is shown below. This is a blocking application as it waits for user input over serial interface (UART). The input is scanned and processed through 'adi console libraries'. The menu functionality is executed from nanodac_conole_app.c file. The application layer talks with No-OS layer for device registers and data access. The No-OS layer interfaces with Platform Drivers layer for accessing low level peripherals. As name suggests, this layer is platform dependent. nanodac+ firmware uses Mbed libraries within Platform Drivers layer.
If you have some familiarity with the Mbed platform, the following is a basic list of steps required to start running the code, see below for more detail:
The nanodac+ firmware example is configured to have following serial settings:
Configure your serial terminal ( Tera Term) for below settings:
The firmware is designed to be intuitive to use, and requires little explanation, simply enter a number corresponding to the required command and follow the on-screen prompts.
The firmware comes with an app_config.h file which (at the moment) serves two purposes.
The firmware supports most products in nanoDAC+ family, change the #define DEV_ADxxxxx found in app_config.h to suit your selected device. The products supported are enumerated in the ad5686_type, which is an enum found in AD5686.h, the firmware defaults to the AD5686R device.