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
ZCU102 evaluation kit
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