The LTC2686/8 are 8/16-channel, 16-bit, ±15 V digital-to-analog converters (DAC) with an integrated precision reference. The LTC268X Mbed example software can be used as a starting point for developing your own code for Analog Devices DC2873A-B or DC2904A board in your own environment utilizing the benefits of the Mbed platform. This guide will focus interfacing the DC2873A-B or DC2904A-B evaluation board with Analog Devices SDP-K1 controller board or any an MBED-Enabled board.
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 has device specific APIs to interface with LTC2686/8 devices. 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 use mbed-os libraries to access low level peripheral (like GPIOs, SPI, I2C, etc). The devices from LTC2686/8 family use SPI communication interfaces respectively.
At this time Analog Devices supports Mbed code development only on the Keil Studio Cloud. See here for instructions on setting up an account and using the Keil Studio. This guide focuses on the SDP-K1, connected to the DC2873A-B or DC2904A-B board, but it should be general enough to cover any compatible controller board (the controller board should be Mbed-enabled, and expose at least SPI or I2C and some GPIO's). 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 (changing a pin mapping).
The software described below allows for an Mbed enabled controller board to be connected with an Analog Devices evaluation board. Unmodified, the code will communicate over any serial terminal emulator (CoolTerm, putty, etc) using the UART provided by the controller board over USB.
The DC2873A-B/DC2904A-B evaluation board can be connected to the SDP-K1 using jumper wires from the Arduino header to the signal pins available via through-hole headers right beside the J1 connector. Either you can solder header pins on the through-hole mounting area or directly connect wires to them.
The power to the evaluation board should be supplied through the on-board turret connections within the following supply range:
Pin | Turret | Voltage Supply |
---|---|---|
VCC | E31 | 5V |
IOVCC | E10 | 3.3V |
V1+ | E1 | 5V - 21V |
V2+ | E14 | 5V - 21V |
V- | E3 | -21V - 0 |
GND | E2 | GND |
The connections to be made between the SDP-K1 and the DC2873A-B/DC2904A-B are as follows:
SDP-K1 Arduino Header | DC2873A-B/DC2904A-B Through-Hole |
---|---|
SCLK/D13 | SCK |
MISO/D12 | SDO |
MOSI/D11 | SDI |
CS/D10 | CS |
GND | GND |
The DC2873A-B/DC2904A-B evaluation board is connected to SDP-K1 using the Arduino Headers and jumper wires. The DC2873A-B/DC2904A-B evaluation board VCC and IOVCC can be powered-up through a SDP-K1 USB supply or from external DC supply using the turrets connection. 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).
For developing firmware code for controller boards on the Mbed platform visit the link below.
Source code is hosted here:
Build Guide for Precision Converters MBED firmware (Use below link):
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 firmware is delivered as a basic, text-based user-interface that operates through a UART on the controller board using the same USB cable that is used to flash the firmware to the boards. Any terminal-emulator should work, but it is not possible for Analog Devices to test everyone. It is necessary to connect a serial terminal-emulator to interact with the running firmware.
Here TeraTerm is used as an example, Analog Devices does not endorse any particular program for this, but TeraTerm works well and is made freely available, other terminals such as CoolTerm, or PuTTY will work.
Set the baud-rate for 230400, configure the console terminal settings as shown in the picture above and select the connected controller board’s COM port. If using TeraTerm, you should be able to keep the defaults, however adjustments may need to be made to how carriage return (CR) is handled in order for everything to display correctly.
The software is designed to be straight forward to use and requires little explanation. The main menu provides two options:
It is hoped that the most features of the LTC2686/8 are coded, but it's likely that some special functionality is not implemented.