This is an old revision of the document!
This page gives an overview of using the ARM Mbed platform supported firmware example with Analog Devices AD7689 Evaluation board(s) and SDP-K1 controller board. This example code leverages the ADI developed IIO (Industrial Input Output) ecosystem to evaluate the AD7689 family devices (AD7689, AD7682, AD7699 and AD7949 -one at a time) by providing a device debug and data capture support. The overview of an entire system is shown below:
IIO oscilloscope is used as a client application running on windows-os, which is ADI developed GUI for ADC data visualization and device debug. The physical interface used for communicating client application with firmware application (IIO device) is UART/VirtualCOM (*For now only SDP-K1 supports high speed VirtualCOM port @1Mbps or higher speed for faster data transmission). The firmware application communicates with IIO device (AD7689) using ADI No-OS drivers and platform drivers middle-ware software libraries. SDP-K1 is used as controller board, on which IIO firmware application runs and using above software libraries, the IIO firmware communicates with target device. The AD7689 eval board is used for development and testing of this application.
AD7689 uses SPI communication for device parameter access and data capture. SDP-K1 is powered through USB connection from the computer. SDP-K1 acts as a Serial device when connected to PC, which creates a COM Port to connect to IIO Oscilloscope GUI running on windows-os. The COM port assigned to a device can be seen through the device manager for windows-based OS.
SDP-K1 can support high speed VirtualCOM port USB interface, so by default VCOM is configured as default interface in the firmware. The interface can be set to UART by defining macro “USE_PHY_COM_PORT” in the app_config.h file.
Latest 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:
This library provides an abstracted library interface to communicate IIO device and IIO client application (e.g. IIO Oscilloscope) without worrying about the low level hardware details. Download and install below libiio windows installer in your computer.
Libiio installer for Windows (Use below link):
This is a GUI (Graphical User Interface) based IIO client application for data visualization and device configuration/debugging. The data from IIO devices (e.g. ADCs/DACs) is transmitted over Serial/Ethernet/USB link to IIO Oscilloscope client through the abstracted layer of “libiio”.
Download and install below IIO Oscilloscope windows installer in your computer. IIO Oscilloscope installer for Windows (Use below link):
Open the IIO Oscilloscope application from start menu and configure the serial (UART) settings as shown below. Click on refresh button and AD7689 device should pop-up in IIO devices list.
Click 'Connect' and it should by default open the data ‘Capture’ window. You can drag aside or close this window to see the main ‘Debug and DMM’ tab window.
The IIO Oscilloscope allows user to access and configure different device parameters, called as 'Device Attributes“. There are 2 types of attributes:
How to read and write attribute:
DMM tab can be used read the instantaneous voltage applied on analog input channels. Simply select the device and channels to read and press start button.
*Note: The voltage is just instantaneous, so it is not possible to get RMS AC voltage or averaged DC voltage. Also, when using DMM tab, do not access/use the Data Capture or Debug tab as this could impact data capturing. Both DMM scan and data capture uses different methods of conversion. The DMM data is read using single conversion, while data capture uses continuous conversion mode of operation.
To capture the data from AD7689 IIO device, simply select the device and channels to read/capture data. The data is plotted as “ADC Raw Value” Vs “Number of Samples” and is just used for Visualization. The data is read as is from device without any processing. If user wants to process the data, it must be done externally by capturing data from the Serial link on controller board.
*Note: The DMM or Debug tab should not be accessed when capturing data as this would impact data capturing. Both DMM scan and data capture uses different methods of conversion. The DMM data is read using single conversion, while data capture uses continuous conversion mode of operation.
More info here: Data Capture using IIO App
*Note: Max 4096 samples can be selected for plotting frequency domain response due to limited buffer size in the firmware.
Data capture, sensor measurement, device calibration, etc. can be achieved with python based IIO clients, using 'pyadi-iio' library. A possible option using ADI's pyadi-iio library in python has been demonstrated in the forthcoming sections. The python scripts are provided along with firmware package.
This file can be used to:
This file can be used to:
These files define the user configurations for the AD7689, such as SPI parameters (frequency, mode, etc) and other init parameters used by No-OS drivers to initialize AD7689 device (active device, input channel type, reference source, etc) These are the parameters loaded into device when device is powered-up or power-cycled.
This file implements the data capturing logic for the AD7689 device. The adc_data_capture.c module present in platform drivers acts as an abstracted layer for common IIO application data capturing
This file defines getter/setter functions for all the device and channel specific attributes (related to AD7689 devices) to read/write the device parameters. The majority of device specific functionality is present in this module.
The no-os drivers provide the high level abstracted layer for digital interface of AD7689 devices. The complete digital interface (to access memory map and perform data read) is done in integration with platform drivers. The functionality related with no-os drivers is covered in below 2 files: