AD4052-ARDZ HDL project

Overview

The HDL reference design for the AD4050, AD4052, AD4056, and AD4058 . They are versatile, 16-bit/12-bit, successive approximation register (SAR) analog-to-digital converters (ADCs) that enable low-power, high-density data acquisition solutions without sacrificing precision. These ADCs offer a unique balance of performance and power efficiency, plus innovative features for seamlessly switching between high-resolution and low-power modes tailored to the immediate needs of the system.

The AD4050/AD4052/AD4056/AD4058 are ideal for battery-powered, compact data acquisition and edge sensing applications.

The EVAL-AD4050-ARDZ/EVAL-AD4052-ARDZ evaluation boards enable quick and easy evaluation of the performance and features of the AD4050 or the AD4052, respectively. The AD4050 and AD4052 are compact, low power, 12-bit or 16-bit (respectively) Easy Drive successive approximation register (SAR) analog-to-digital converters (ADCs).

This project has a SPI Engine instance to control and acquire data from the precision ADC. This instance provides support for capturing continuous samples at the maximum sample rate.

Supported boards

Supported devices

Supported carriers

Block design

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

AD4052-ARDZ 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 HDL Architecture).

Cora Z7S

Instance

Address

spi_adc_axi_regmap

0x44A0_0000

spi_adc_dmac

0x44A3_0000

axi_iic_eeprom

0x44A4_0000

spi_clkgen

0x44A7_0000

adc_trigger_gen

0x44B0_0000

DE10-Nano

Instance

Address

axi_dmac_0

0x0002_0000

axi_spi_engine_0

0x0003_0000

pwm_trigger

0x0004_0000

spi_clk_pll_reconfig

0x0005_0000

I2C connections

Cora Z7s

I2C type

I2C manager instance

Alias

Address

Device Address

I2C subordinate

PS

axi_iic_eeprom

axi_iic_eeprom_io

0x44A4_0000

0x52

EEPROM

DE10-Nano

I2C type

I2C manager instance

Alias

Address

Device Address

I2C subordinate

PS

i2c1

sys_hps_i2c1

0x52

Device address considering the EEPROM address pins A0=0, A1=1, A2=0.

SPI connections

SPI type

SPI manager instance

SPI subordinate

CS

PL

axi_spi_engine

ad4052

0

GPIOs

The Software GPIO number is calculated as follows:

  • Cora Z7S: the offset is 54

GPIO signal

Direction

HDL GPIO EMIO

Software GPIO

(from FPGA view)

Zynq-7000

adc_cnv

OUTPUT

34

88

adc_gp1

INOUT

33

87

adc_gp0

INOUT

32

86

  • DE10-Nano: the offset is 32

GPIO signal

Direction

HDL GPIO EMIO

Software GPIO

(from FPGA view)

DE10-Nano

adc_cnv

OUTPUT

34

2

adc_gp1

INPUT

33

1

adc_gp0

INPUT

32

0

Interrupts

Below are the Programmable Logic interrupts used in this project.

Instance name

HDL

Linux Zynq

Actual Zynq

axi_adc_dma

13

57

89

spi_adc_axi_regmap

12

56

88

axi_iic_eeprom

11

55

87

Instance name

HDL

Linux DE10-Nano

Actual DE10-Nano

axi_dmac_0

4

44

76

axi_spi_engine_0

3

43

75

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/ad4052_ardz/coraz7s
~/hdl/projects/ad4052_ardz/coraz7s$
make
~$
cd hdl/projects/ad4052_ardz/de10nano
~/hdl/projects/ad4052_ardz/de10nano$
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.