This version (13 Feb 2024 18:59) was approved by Marcelo Schmitt.The Previously approved version (05 Feb 2024 18:49) is available.Diff

Evaluating AD400X and ADAQ400X devices

Evaluation Board for the ADAQ4003, 18-Bit, 2 MSPS, μModule Data Acquisition Solution

Supported Evaluation Boards

General Description

The EVAL-ADAQ40xx is an evaluation board for the ADAQ4003 8-Bit, 2 MSPS, μModule Data Acquisition Solution. This guide provides instructions to setup EVAL-ADAQ40xx and evaluate ADAQ4003 with Linux.

For more informations about hardware specifications, see the EVAL-ADAQ40xx Evaluation Board page.


  • Fully featured Pmod evaluation board with a Pmod to FMC interposer board
  • Versatile analog signal conditioning circuitry
  • On-board reference and ADC drivers with additional test points for external reference input

Linux Supported Platforms

CoraZ7 Platform

Hardware Required

  • CoraZ7 board
  • A signal generator (In this demo ADALM2000 is used)
  • 16GB (or larger) Class 10 (or faster) micro-SD card
  • 2x Micro-USB cable
  • Ethernet cable
  • A host computer (Linux or Windows)

Setting up the Hardware

The connections for the setup with CoraZ7 are the following:

The tricky part of this setup is connecting ADALM2000 to EVAL-ADAQ40xx since ADALM2000 probes don't plug into EVAL-ADAQ40xx ADC inputs. To sort that, you can use ADALM2000 BNC Adapter Board with additional probes to make a tight connection.

Alternatively, you can use long PCB header pins to adapt ADALM2000 female probes to male probes which can then connect to J1 and J2 internal connections. For the external part of the ADC connectors, carefully curled jumper wires may do the trick.

The EVAL-ADAQ40xx configuration mesaures (IN+ - IN-) as (J2 - J1). Connect ADALM2000 W1 to EVAL-ADAQ40xx J1, ADALM2000 W2 to J2, and EVAL-ADAQ40xx J1, J2 outer connectors to ADALM2000 GND. With that, ADAQ4003 readings will convert ADALM2000 W2 - W1 which we will configure in Scopy as CH2 - CH1.

ZedBoard Platform

Hardware Required

  • ZedBoard Rev D or later board
  • A signal generator (In this demo ADALM2000 is used)
  • 16GB (or larger) Class 10 (or faster) micro-SD card
  • Micro-USB cable
  • 12Vdc, 3A power supply
  • Ethernet cable
  • User interface setup (choose one):
    • HDMI monitor, keyboard, and mouse plugged directly into the Zedboard
    • Host Linux/Mac/Windows computer on the same network as the Zedboard

Software Required

Quick Start Guide

Flash Kuiper Linux to the SD card

Install Kuiper Linux to the SD card. Step by step guides for imaging Kuiper Linux are available for Linux and Windows.

Configuring the SD Card

Follow the Configuring the SD Card for FPGA Projects section of the Kuiper Linux page.

Copy the following files onto the BOOT partition to configure the SD card:

  • BOOT.BIN: Binary blob file which includes first stage boot loader and FPGA bitstream.
  • devicetree.dtb: Binary blob containing the specification of what hardware is present in the system.
  • uImage: Linux kernel image is the computer program that provides OS functionality.

Linux support for ADAQ4003 and similar ADC devices was introduced in January 2024 so any Linux Kuiper release after that date will have support for ADAQ4003 built in.

If using older Kuiper releases, no zynq-coraz7s-adaq4003 or no zynq-zed-adv7511-ad4020 directory is available, use these boot files or follow the next subsections to get BOOT.BIN, uImage, and devicetree.dtb files.

Get BOOT.BIN from HDL project

To achieve high performance with ADAQ4003, the hardware platform must have an integrated FPGA. To configure the FPGA to properly support ADAQ4003, ADI engineers provide HDL reference projects from which we will use the pulsar project.

If there is no directory with boot files for your platform of choice under the SD BOOT partition, follow the build instructions on the Building HDL page to build the pulsar project and generate a BOOT.BIN file from that.

Get uImage and devicetree.dtb from Linux project

If there is no directory with boot files for your platform of choice under the SD BOOT partition, follow the Linux build guide to build a new Linux kernel image and devicetree blob. After that, replace Kuiper Linux image with the newly built uImage and copy the proper .dtb file your platform (either zynq-coraz7s-adaq4003.dtb or zynq-zed-adv7511-ad4020.dtb) from arch/arm/boot/dts/ to the BOOT partition as devicetree.dtb.

Application Software

Analog Devices ADAQ4003 can be easily managed with IIO Oscilloscope which has interfaces for configuring and retrieving data from IIO devices. After installing IIO Oscilloscope in the host computer, open the application and connect to the IIO context provided by the Kuiper Linux installation running on CoraZ7. Both host machine and CoraZ7 must be in the same network otherwise IIO Oscilloscope won't be able to find the correct context. A quick way of getting some data after connecting to Cora's IIO context is to access the DMM (Digital MultiMeter) tab where the user can see the results of single-shot readings from the ADC.

Users can inspect ADAQ4003 attributes such as the sampling frequency in the Debug tab. Edit the value field then click the write button to change ADAQ4003 parameters.

ADAQ4003 is a differential ADC and thus converts the difference between its positive and negative inputs. We can use ADALM2000 to set different input waves so to evaluate ADAQ4003 performance. Install Scopy in the host computer to easily configure ADALM2000 output channels. For a simple test, we can set a 100Hz square wave in channel W1 and a 1KHz sine wave in channel W2. The difference can then be read with ADAQ4003 and the resulting waveform plot with IIO Oscilloscope.

The next example shows the effect of increasing the sample rate on characterizing a waveform. We set W1 as a 20 KHz square wave and W2 as a 200 KHz sine wave. At 1MSPS, we can barely see what happens when the square wave transitions from low to high. At 2MSPS, the resulting waveform is much clearer and the transition effect that happens from square wave low to high is clear.

resources/eval/ad400x-eval-board.txt · Last modified: 13 Feb 2024 18:59 by Marcelo Schmitt