AD9656_FMC no-OS Example Project

See projects/ad9656_fmc (doxygen) for the Doxygen documentation.

Supported Evaluation Boards

Overview

The AD9656-125EBZ is an evaluation board for the AD9656, a quad, 16-bit, 125 MSPS analog-to-digital converter (ADC) designed for high performance with low power and ease of use. It incorporates an on-chip sample and hold circuit, operating at up to 125 MSPS. The ADC features a signal-to-noise ratio (SNR) of 79.9 dBFS at 16 MHz and 78.1 dBFS at 64 MHz, and a spurious-free dynamic range (SFDR) of 86 dBc to Nyquist. The analog input range is flexible, from 2.0 V p-p to 2.8 V p-p, with a low power consumption of 197 mW per channel. The device supports JESD204B Subclass 1 coded serial digital outputs, individual channel power-down modes, and built-in digital test pattern generation. The on-board AD9508 clock distribution IC and AD9553 clock synthesizer provide the necessary clocking infrastructure.

Applications

  • Medical ultrasound and MRI

  • High-speed imaging

  • Quadrature radio receivers

  • Diversity radio receivers

  • Portable test equipment

Hardware Specifications

Power Supply Requirements

The AD9656-125EBZ can be powered in multiple ways:

  • Via FMC connector (default): The board receives power from the carrier board (ZCU102 or HSC-ADC-EVALEZ) through the FMC connector. Jumpers P101 and P103 must have pins 1-2 connected. Do not connect the external 6 V wall supply in this configuration.

  • External wall supply (6 V, 2 A): A wall-mountable 6 V, 2 A switching power supply can power the board via the 2.1 mm barrel jack at P102. Set jumpers P101 and P103 to pins 2-3. On-board LDO regulators generate the 1.8 V supply for the AD9656 core.

Board Connectors

  • P2 -- FMC HPC connector, carries JESD204B differential data lanes, SPI, power, and clocking signals to/from the carrier board

  • J302 -- SMA connector for external single-ended clock input (AC-coupled, 50 ohm terminated)

  • J304 -- Jumper to enable/disable the on-board 125 MHz crystal oscillator (Y801); remove for external clock

  • CHA-CHD -- SMA connectors for differential analog inputs per channel

  • P101, P103 -- Power source selection jumpers

  • P102 -- 2.1 mm barrel jack for 6 V external power supply

No-OS Build Setup

Please see: No-OS Build Guide

No-OS Supported Examples

The initialization data used in the examples is taken from the Project Source Path.

Demo Example

The demo example initializes the AD9656 ADC along with the AD9508 clock distribution IC and AD9553 clock synthesizer over SPI, configures the JESD204B receive link between the FPGA and the ADC, runs PN9 and PN23 sequence verification on all four channels, and performs a DMA capture of 16384 samples into DDR memory.

IIO Example

The IIO example launches an IIOD server on the ZCU102 board so that the user may connect to it via an IIO client. Using the IIO Oscilloscope application, users can access device settings such as sampling frequency, channel data scale, JESD204B link parameters, and other AD9656 configuration attributes, facilitating seamless data management and real-time streaming of the quad-channel, 16-bit ADC data over the JESD204B interface.

If you are not familiar with ADI IIO Application, please take a look at: IIO No-OS

If you are not familiar with ADI IIO Oscilloscope Client, please take a look at: IIO Oscilloscope

No-OS Supported Platforms

Xilinx

Used Hardware

Connections

Connect the AD9656-125EBZ to the ZCU102 evaluation board through the FMC HPC0 connector. The JESD204B differential output lanes, SPI configuration bus, and power signals are all routed through this single FMC connector.

Connect a USB cable to the ZCU102 USB-UART port and the host PC for serial console access at 115200 baud, 8N1.

Build Command

The Xilinx platform uses the CMake/Ninja build system via the no_os_build.py helper script. Available variants: demo, iio. Available boards: zcu102.

For toolchain setup and prerequisites, see the Xilinx CMake build guide.

# Source the Vitis toolchain environment (adjust version as needed)
source ~/.xilinx/2025.1/Vitis/settings64.sh

cd no-OS

# build the demo example
python tools/scripts/no_os_build.py build \
   --project ad9656_fmc --variant demo --board zcu102 \
   --hardware /path/to/system_top.xsa

# build and flash
python tools/scripts/no_os_build.py build \
   --project ad9656_fmc --variant demo --board zcu102 \
   --hardware /path/to/system_top.xsa \
   --probe openocd --flash

# build the IIO example
python tools/scripts/no_os_build.py build \
   --project ad9656_fmc --variant iio --board zcu102 \
   --hardware /path/to/system_top.xsa

# build and flash the IIO example
python tools/scripts/no_os_build.py build \
   --project ad9656_fmc --variant iio --board zcu102 \
   --hardware /path/to/system_top.xsa \
   --probe openocd --flash