PULSAR-ADC no-OS Example Project

See projects/pulsar-adc (doxygen) for the Doxygen documentation.

Supported Evaluation Boards

Overview

The AD4000/AD4001/AD4002/AD4003/AD4020 family of evaluation boards enable quick, simplified evaluation of the AD4000 family of 16-/18-/20-bit, precision successive approximation register (SAR) analog-to-digital converters (ADCs).

The AD4000/AD4001/AD4002/AD4003/AD4020 are low power, 16-bit/18-bit/20-bit, precision SAR ADCs that offer high performance with throughputs up to 2 MSPS (1.8 MSPS for the AD4020). The evaluation board demonstrates the performance of the AD4000/AD4001/AD4002/AD4003/AD4020 family of ADCs and provides a simplified interface for a variety of system applications.

Applications

  • Industrial automation technology

  • Instrumentation and measurement solutions

  • Intelligent building solutions

  • Healthcare solutions

  • Aerospace and defense systems

  • Wireless communication solutions

Hardware Specifications

Power Supply Requirements

The EVAL-AD400x-FMCZ receives power through the FMC connector from the attached FPGA carrier board, or via the SDP connector when used with an SDP-K1. No external power supply is required.

No-OS Supported Examples

This project is organized around the no-OS variant based build flow. Selecting a variant at build time (--variant <name>) chooses which application is compiled. The platform main() is a thin dispatcher that calls example_main(), provided by the selected example. Shared initialization data is defined in src/common, and platform-specific macros and extra init parameters are in src/platform.

Basic Example

The basic example initializes the AD400x ADC and prints sampled data out to the UART console. On Xilinx, the SPI Engine offload core is used for high-speed data capture.

This example is built by selecting the basic variant (see the Build Command sections below).

IIO Example

This project is an IIOD demo for the EVAL-AD400x evaluation board. The project launches an IIOD server on the board so that the user may connect to it via an IIO client. Using IIO-Oscilloscope, the user can configure the ADC and view the measured data on a plot.

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

This example is built by selecting the iio variant (see the Build Command sections below).

No-OS Supported Platforms

Xilinx

Used Hardware

Connections

Connect the EVAL-AD400x-FMCZ to the ZedBoard via the FMC connector. On Xilinx, the SPI Engine offload core is used; the device part in use can be configured in src/common/common_data.c via the dev_id field of the ad400x_init_param struct (for example ID_AD4020). The UART console appears on the ZedBoard USB-UART adapter 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: basic, iio. Available boards: zed.

A Xilinx hardware description file (.xsa) generated from the matching HDL design is required. The HDL design name for all variants is pulsar_adc (see CONFIG_XILINX_HDL_DESIGN in each .conf file). Obtain the pre-built pulsar_adc_zed/system_top.xsa from the ADI HDL repository releases, or build it yourself by following the Building HDL guide.

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

# source the Vitis environment (adjust path to your Vitis install)
source ~/.xilinx/2025.1/Vitis/settings64.sh
# PowerShell (Windows) equivalent:
#   & "$env:USERPROFILE\.xilinx\2025.1\Vitis\settings64.bat"

cd no-OS

# build the basic example on the ZedBoard (requires a .xsa hardware file)
python tools/scripts/no_os_build.py build \
   --project pulsar-adc --variant basic --board zed \
   --hardware /path/to/pulsar_adc_zed/system_top.xsa

# build and flash (requires a connected debug probe)
python tools/scripts/no_os_build.py build \
   --project pulsar-adc --variant basic --board zed \
   --hardware /path/to/pulsar_adc_zed/system_top.xsa \
   --probe openocd --flash

STM32

Used Hardware

Connections

Connect the EVAL-AD400x-FMCZ to the SDP-K1 via the SDP connector. The UART console appears on the SDP-K1 USB port at 115200 baud, 8N1.

Build Command

The STM32 platform uses the CMake/Ninja build system via the no_os_build.py helper script. Available variants: basic, iio. Available boards: sdp-ck1z.

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

# set the path to STM32CubeMX and STM32CubeIDE (only if they are not
# in a default install location)
export STM32CUBEMX=</path/to/stm32cubemx>
export STM32CUBEIDE=</path/to/stm32cubeide>
# PowerShell (Windows) equivalent:
#   $env:STM32CUBEMX = "<path\to\stm32cubemx>"
#   $env:STM32CUBEIDE = "<path\to\stm32cubeide>"

cd no-OS

# build the basic example on the SDP-K1 board
python tools/scripts/no_os_build.py build \
   --project pulsar-adc --variant basic --board sdp-ck1z

# build and flash (requires a connected debug probe)
python tools/scripts/no_os_build.py build \
   --project pulsar-adc --variant basic --board sdp-ck1z \
   --probe openocd --flash