AD738x_FMCZ no-OS Example Project

Supported Evaluation Boards

Overview

The EVAL-AD7380FMCZ or EVAL-AD7381FMCZ are evaluation boards designed for testing the dual simultaneous sampling AD7380 and AD7381 ADCs, designed for high-speed data acquisition. The board supports various applications by providing dedicated power and signal connections for optimal ADC performance. Through integrated software, users can visualize waveforms and analyze data, facilitating engineering development and testing. The board is equipped to handle complex operations, supporting engineers in effectively evaluating ADC performance in different scenarios.

Applications

  • Motor control feedback

  • Motor control current sense

  • Sonar

  • Power quality

  • Data acquisition systems

  • Erbium doped fiber amplifier (EDFA) applications

  • Quadrature modulation (I and Q demodulation)

Hardware Specifications

Power Supply Requirements

The EVAL-AD738xFMCZ evaluation board requires a 12V ±10% main power supply for its internal voltage regulators. Additionally, it features an ADC analog power supply (VCC), a digital serial peripheral interface power supply (VLOGIC), and amplifier power supplies (AMP_PWR+ and AMP_PWR-). Power connection points include P4 for the main board power supply, P5 for the ADC and SPI interface, and P6 for the amplifier, ensuring efficient power distribution to support high-speed data acquisition applications.

On-board Connectors

Connector

Function

J1 to J4

Analog Inputs

P1

Amplifier mezzanine card input

P2

Amplifier mezzanine card output

P3

Digital SPI signals

P4

Main power supply for internal regulators

P5

ADC and digital SPI power supply

P6

Amplifier power supply

P7

FPGA mezzanine card (FMC) connection to low pin count (LPC) connector

EXT_REF

External voltage reference

No-OS Supported Examples

The initialization data used in the examples is taken out from the Project Common Data Path

The macros used in Common Data are defined in platform specific files found in the Project Platform Configuration Path

Basic Example

The basic example for the AD738x no-OS setup showcases the initialization and data retrieval features of the AD738x ADC driver. The initialization involves configuring SPI, UART, and PWM crucial for device interaction. The ad738x_init function sets up the ADC with specified conversion modes and reference selections while preparing hardware components like SPI and PWM. Post-initialization, the ADC reads data in a loop, using the ad738x_read_data function to acquire 400 samples continuously. These samples, processed through bit manipulation, yield ADC channel values representing analog-to-digital conversions, concluding with printed verification to demonstrate the AD738x's rapid data handling in a no-OS environment.

IIO Example

The IIO example code initializes the IIO application to facilitate real-time data acquisition and control of the AD738x ADC. The setup includes configuring the IIO device using the ad738x_iio_init function to integrate the ADC driver. This process involves reading ADC data into a buffer and exposing device attributes such as raw data and scaling through the IIO client interface. Channels are registered, scan types are defined for determining data resolution, and data is continuously managed for client applications.

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 Platform

Used Hardware

Connections

The EVAL-AD7380FMCZ has a standard FMC connector, which can be directly plugged into the FMC LPC slot on the ZedBoard (P7 on the evaluation board connects to the ZedBoard FMC-LPC connector).

Signal

EVAL-AD7380FMCZ FMC-LPC Connector (P7)

ZedBoard FMC-LPC Connector

MOSI

SPI MOSI (Digital Pin)

SPI MOSI

MISO

SPI MISO (Digital Pin)

SPI MISO

SCK

SPI SCK (Digital Pin)

SPI SCK

CS

SPI CS (Digital Pin)

SPI CS

Connect a micro-USB cable from the ZedBoard USB-UART port (J14) to your PC for serial console output (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.

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

# source the Vitis environment (adjust path to your installation)
source /path/to/Vitis/settings64.sh
# PowerShell (Windows) equivalent:
#   & "C:\path\to\Vitis\settings64.bat"

cd no-OS

# build the basic example on the ZedBoard
python tools/scripts/no_os_build.py build \
   --project ad738x_fmcz --variant basic --board zed \
   --hardware /path/to/ad738x_fmc_zed/system_top.xsa

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

STM32 Platform

Used Hardware

Connections

To connect the EVAL-AD7380FMCZ to the EVAL-SDP-CK1Z board, align their 160-pin connectors and press them together firmly; then connect the SDP board to PC via USB.

Signal

EVAL-AD7380FMCZ

EVAL-SDP-CK1Z

MOSI

SPI MOSI (Digital Pin)

SPI MOSI

MISO

SPI MISO (Digital Pin)

SPI MISO

SCK

SPI SCK (Digital Pin)

SPI SCK

CS

SPI CS (Digital Pin)

SPI CS

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 ad738x_fmcz --variant basic --board sdp-ck1z

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