AD5529R HDL project

Overview

The AD5529R is a 16-channel, 16-bit voltage-output digital-to-analog converter (DAC) with an integrated 4.096V precision reference. The device supports programmable output ranges up to ±20V or 0-40V, making it suitable for industrial control, test and measurement, and process automation applications.

Key features include:

  • 16-bit resolution across 16 channels

  • Built-in digital functions (toggle, dither, ramp)

  • Monitor multiplexer for diagnostics

  • SPI interface: 16-bit instruction + 8/16-bit data

  • Maximum SPI clock: 50 MHz

  • Settling time: 8-20 µs (range-dependent)

This HDL project implements the SPI Engine framework with DMA streaming, enabling SPI throughput of 123.4 kSPS per channel with hardware-triggered updates and zero CPU involvement. Actual update rate is settling-time limited (125 kSPS at 0-5V range, down to 50 kSPS at ±20V range).

Supported boards

Supported devices

Supported carriers

Block design

Block diagram

The data path and clock domains are depicted in the below diagram:

AD5529R HDL block diagram

CPU/Memory interconnects addresses

The addresses are dependent on the architecture of the FPGA, having an offset added to the base address from HDL(see more at CPU/Memory interconnects addresses).

Instance

Zynq

spi_ad5529r_axi_regmap

0x44A0_0000

ad5529r_dma

0x44A4_0000

trig_gen

0x44B0_0000

axi_ad5529r_clkgen

0x44B1_0000

toggle_gen

0x44B2_0000

axi_sysid_0

0x4500_0000

SPI connections

SPI type

SPI manager instance

SPI subordinate

CS

PL

spi_ad5529r

ad5529r

0

GPIOs

The Software GPIO number is calculated as follows:

  • Zynq-7000: if PS7 is used, then offset is 54

GPIO signal

Direction

HDL GPIO EMIO

Software GPIO

(from FPGA view)

Zynq-7000

ad5529r_clear

OUT

32

86

ad5529r_reset

OUT

33

87

ad5529r_alarm

IN

34

88

Interrupts

Below are the Programmable Logic interrupts used in this project.

Instance name

HDL

Linux Zynq

Actual Zynq

ad5529r_dma

13

57

89

spi_ad5529r/axi_regmap

12

56

88

Warning

IRQ_F2P mode is REVERSE (bit 15 = highest priority).

Building the HDL project

The design is built upon ADI’s generic HDL reference design framework. ADI distributes the bit/elf files of these projects as part of the ADI Kuiper Linux. If you want to build the sources, ADI makes them available on the HDL repository. To get the source you must clone the HDL repository, and then build the project as follows:

Linux/Cygwin/WSL

~$
cd hdl/projects/ad5529r/coraz7s
~/hdl/projects/ad5529r/coraz7s$
make

A more comprehensive build guide can be found in the Build an HDL project user guide.

Resources

More information

Support

Analog Devices, Inc. will provide limited online support for anyone using the reference design with ADI components via the EngineerZone FPGA reference designs forum.

For questions regarding the ADI Linux device drivers, device trees, etc. from our Linux GitHub repository, the team will offer support on the EngineerZone Linux software drivers forum.

For questions concerning the ADI No-OS drivers, from our No-OS GitHub repository, the team will offer support on the EngineerZone microcontroller No-OS drivers forum.

It should be noted, that the older the tools’ versions and release branches are, the lower the chances to receive support from ADI engineers.