The AD5933 Mbed support software (also supports AD5934) can be used as a starting point for developing your own code for Analog Devices AD5933 products in your own environment utilizing the benefits of the Mbed platform. Analog Devices is an MBED Partner and develops code on the platform for multiple products. The Analog Devices Mbed code-repo can be found in the links below.
This guide will focus on the Analog Devices SDP-K1 controller board, as it is directly compatible with the AD5933 family of evaluation boards and is an MBED-Enabled device. Customers are of course, not limited to using the SDP-K1 board for code development, given that any ARM-based, MBED-enabled board that satisfies a small set of requirements can use the provided code and it will work with only minor changes to the source (see below).
This guide uses the Pmod 1A evaluation board. This is a convenient, inexpensive path to evaluating the AD5933.
For developing firmware code for controller boards on the Mbed platform go the link below.
At this time Analog Devices supports Mbed code development only on the Mbed online-compiler. See here for instructions on setting up an account and using the compiler. Analog Devices may, at a later date support other offline-IDE's. This guide focuses on the SDP-K1, connected to the Pmod 1A evaluation board, but it should be general enough to cover any compatible controller board (the controller board should be Mbed-enabled, and expose I2C and some GPIO's).
The software described below allows for an Mbed enabled controller board to be connected with the Pmod 1A. Unmodified, the code will communicate over any serial terminal emulator (CoolTerm, putty, etc) using the UART provided by the controller board over USB.
The software provides a basic user-interface for interacting with the evaluation-board. A simple example is provided for calculating the gain-factor and calculating an unknown impedance. This code 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 AD5933/34.
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 SDP-K1 board has two ways to connect to most ADI evaluation boards, it can use the 120-pin SDP connector on the underside of the board, or the Arduino connector can be used together with jumper wires as described below. Currently an ADI evaluation board with an SDP connector does not exist for the AD5933. As such, it is necessary to connect to the Arduino headers using short jumper wires.
The Getting Started with Mbed page describes the Arduino Uno Header, the SDP connector, pin-outs and other information related to understanding the SDP-K1 controller board.
The SDP-K1 can operate with the 120-pin SDP connector, of the evaluation board supports it, or, as in this case, it can also used the Arduino header pins (or indeed any available I2C port on the controller board) using wires to the evaluation board. This is shown here for the SDP-K1 board connected to the Digilent Pmod 1A evaluation board using the Arduino Header, but different boards might have their SPI/I2C/GPIO ports exposed differently. The pins on the Arduino header must be shorted to the evaluation board as follows. The pin mappings for these are controlled in the app_config.h file and should match your controller board.
|Arduino PIN||MBED NAME||Pmod 1A PIN|
* Map these pins to any spare I2C peripheral - shown here according to ADI's app_config.h mapping
ARM provide a guide to setting-up and using their online-compiler here. For the SDP-K1 the following guide can also be used to help understand the process. Specifically for the PMOD 1A evaluation board and the SDP-K1, the following steps can be used.
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 every one. It is necessary to connect a serial terminal-emulator to interact with the running firmware.
Here CoolTerm is used as an example, Analog Devices does not endorse any particular program for this, but CoolTerm works well and is made freely available, other terminals such as Tera Term, or PuTTY will work just as well. Set the baud-rate for 115200 and keep the defaults for everything else. The actual values used can be found by looking at the source code in main.cpp
The software is provided as a demo. The demo covers the essential operation of the AD5933 and it is hoped to be a good starting point for developing your own firmware. The code is also written with a view to keeping things simple, you do not have to be a coding-ninja to understand and expand upon the delivered functions.
It is hoped that the most common functions of the AD5933 family are coded, but it's likely that some special functionality is not implemented.
The software comes with an app_config.h file which allows the pins for the I2C interface to be selected.
The product page for the AD5933 contains extensive material to help understand the operation of the AD5933. This page should be consulted as your firmware is developed.
This demo will keep things simple by only using resistances. The AD5933 operates is a ratiometric device and because of this it requires a calibration gain-factor to be calculated. This demo will use a 200KΩ calibration and will test the operation of the impedance calculation with a different resistance (300KΩ is arbitrarily chosen).
The gain factor is the calibration for the signal path and only needs to be set once.
Any impedance can now be placed between the SMB connectors on the PMOD 1A board and option 4 from the main-menu will perform a sweep according to the settings configured in Step 1. The results will be displayed on the terminal. For this demo the 200KΩ was replaced with a 300KΩ and an impedance sweep performed. It returned the results shown below. Consult the extensive documentation available on the product page to help understand the process.