Wiki

This version (27 Feb 2024 17:33) was approved by Paul Pop.The Previously approved version (18 May 2023 12:36) is available.Diff

EVAL-AD3552R Evaluation Board on ZedBoard User Guide

Evaluation Board for the AD3552R, 16-Bit, 2-Channel, Current Output DAC

Features

  • Full featured evaluation board for the AD3552R
  • Available in two transimpedance amplifier options
  • Selectable transimpedance gain
  • On-board or external power supply
  • On-board or external voltage reference
  • Clock and trigger inputs for external synchronization
  • Is supported on ZedBoard

Evaluation Kit Contents

Hardware Required

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

Software Required

  • You need a Host PC (Windows or Linux)
  • A UART terminal (Putty/Tera Term/Minicom, etc.), Baud rate 115200 (8N1)
  • IIO Scope Download

General Description

The EVAL-AD3552RFMCxZ is an evaluation board for the AD3552R ultrafast 16-bit precision DAC. The board is available in two variants: EVAL-AD3552RFMC1Z is optimized for high speed, intended to reproduce dynamic specifications shown in the datasheet; EVAL-AD3552RFMC2Z is optimized for DC precision and has a much lower bandwidth, intended to reproduce DC electrical specifications shown in the datasheet. The difference between these boards is the transimpedance amplifier and its corresponding feedback capacitor.

For more informations about hardware specifications, see the EVAL-AD3552R Evaluation Board User Guide page.


Quick Start Guide

Loading Image on SD Card

To boot the Zedboard and control the EVAL-AD3552R, you will need to install ADI Kuiper Linux on an SD card. Complete instructions, including where to download the SD card image, how to write it to the SD card, and how to configure the system are provided on the Kuiper Linux page.

Configuring the SD Card

Follow the configuration procedure under Configuring the SD Card for FPGA Projects on the Kuiper Linux page. Copy the following files onto the boot directory to configure the SD card:

  • uImage file for Zynq
  • BOOT.BIN specific to your EVAL-AD3552R + ZedBoard
  • devicetree.dtb for Zynq specific to your EVAL-AD3552R + ZedBoard
At the moment the AD3552R-EVB is not yet supported in the latest Kuiper Image so these boot files should be used.

Setting up the Hardware

You will need to:

  • Get the ZedBoard.
  • Insert the SD-CARD into the SD Card Interface Connector (J12).
  • Connect the EVAL-AD3552R board into the ZedBoard FMC connector.
  • Connect USB UART J14 (Micro USB) to your host PC.
  • Plug your ethernet cable into the RJ45 ethernet connector(J11).
  • Plug the Power Supply into the 12V Power input connector (J20) (DO NOT turn the device on).
  • Set the jumpers as seen in the below picture: jumpers_boot_sd_zedboard.jpg
Before executing the below steps, make sure that VADJ jumper is set to 1.8V.


  • Connect the oscilloscope probes to the SMB connectors.
  • Turn it on.
  • Wait ~30 seconds for the “DONE” LED to turn blue. This is near the DISP1.

setup_diagram_eval_ad3552r.jpg

All the products described on this page include ESD (electrostatic discharge) sensitive devices. Electrostatic charges as high as 4000V readily accumulate on the human body or test equipment and can discharge without detection.

Although the boards feature ESD protection circuitry, permanent damage may occur on devices subjected to high-energy electrostatic discharges. Therefore, proper ESD precautions are recommended to avoid performance degradation or loss of functionality. This includes removing static charge on external equipment, cables, or antennas before connecting to the device.

Application Software (both locally and remotely on the FPGA)

Hardware Connection

The Libiio is a library used for interfacing with IIO devices and is required to be installed on your computer.

Download and Install the latest Libiio package on your machine.

To be able to connect your device, the software must be able to create a context. The context creation in the software depends on the backend used to connect to the device as well as the platform where the EVAL-AD3552R is attached. The Zedboard running ADI Kuiper Linux is currently the only platform supported for the EVAL-AD3552R. The user needs to supply a URI which will be used in the context creation.

The iio_info command is a part of the libIIO package that reports all IIO attributes.

Upon installation, simply enter the command on the terminal command line to access it.

For FPGA(Zedboard) Direct Local Access:

iio_info

For Windows machine connected to an FPGA(Zedboard):

iio_info -u ip:<ip address of your ip>

Example:

  • If your Zedboard has the IP address 169.254.92.202, you have to use iio_info -u ip::169.254.92.202 as your URI
Do note that the Windows machine and the FPGA board should be connected to the same network for the machine to detect the device.

IIO Oscilloscope

Make sure to download/update to the latest version of IIO-Oscilloscope found on this linkhttps://github.com/analogdevicesinc/iio-oscilloscope/releases
  • Once done with the installation or an update of the latest IIO-Oscilloscope, open the application. The user needs to supply a URI which will be used in the context creation of the IIO Oscilloscope and the instructions can be seen in the previous section.
  • Press refresh to display available IIO Devices and press connect.
  • Select the desired input source for the AD3552R device (Available options for AD3552R-EVAL are ramp_input and dma_input). input_source_selection_ad3552r.jpg
Even if the input source is set to ramp_input the steps regarding the DAC Data Management tab have to be followed.
  • Select the desired input source for the AD3552R device. output_range_selection_ad3552r.jpg
Make sure you don't try to read/write the output_range attribute when the stream_status is in start_stream or start_stream_synced.
  • From the DAC Data Manager Window select the output channels of the DAC and enable the cyclic buffer.
  • Load an example file from the IIO Oscilloscope/lib/osc/waveforms folder.

dac_data_management_ad3552r.jpg

  • Click on the load button.
  • Select the stream_status IIO Attribute and start the stream.

stream_status_iio_ad3552r.jpg

Please note that for the AD3552R-EVAL board, the start_stream_synced feature is not supported.
  • After the stream_status has been written and the input source is set to dma_input you should see the following capture on the oscilloscope: captured_data_ad3552r.jpg

PyADI-IIO

PyADI-IIO is a Python abstraction module for ADI hardware with IIO drivers to make them easier to use. This module provides device-specific APIs built on top of the current libIIO Python bindings. These interfaces try to match the driver naming as much as possible without the need to understand the complexities of libIIO and IIO.

Follow the step-by-step procedure on how to install, configure, and set up PYADI-IIO and install the necessary packages/modules needed by referring to this link.

Running the example

Github link for the Python sample script: AD3552R-EVAL Python Example

After installing and configuring PYADI-IIO on your machine, you are now ready to run Python script examples. In our case, run the ad3552r_example.py found in the examples folder.

D:\pyadi-iio>export PYTHONPATH=D:/pyadi-iio/ 
D:\pyadi-iio>python examples/ad3552r_example.py ip:your_board_ip

Press enter and you will get these readings:

$ python examples/ad3552r_example.py ip:your_board_ip
uri: ip:your_board_ip
sample rate: 16666667
Sample data min: 0
Sample data max: 64712
output_range:dac: -10/+10V
input_source:dac: dma_input

The following window will pop up:

python_plot_ad3552r.jpg

Schematic, PCB Layout, Bill of Materials

Reference Demos & Software

resources/eval/user-guides/dac/ad3552r_eval_zed.txt · Last modified: 27 Feb 2024 17:33 by Paul Pop