Skip to content

Commit

Permalink
ADD: update documentation
Browse files Browse the repository at this point in the history
Adapted documentation for the axi_ad35xxr to include
the four DACs: AD3541R, AD3542R, AD3551R, and AD3552R.

Adapted AD355xR_EVB to include information about the
AD3551R and AD3552R.

Inserted information about the QSPI_SEL pin.

Inserted MULTI_IO_MODE reg to the remap of
the ad3552r.

Signed-off-by: <[email protected]>
  • Loading branch information
caosjr committed Dec 13, 2024
1 parent 8febfaf commit ad359bf
Show file tree
Hide file tree
Showing 7 changed files with 2,225 additions and 38 deletions.
88 changes: 53 additions & 35 deletions docs/library/axi_ad3552r/index.rst
Original file line number Diff line number Diff line change
@@ -1,29 +1,37 @@
.. _axi_ad3552r:

AXI AD3552R
AXI AD35XXR
================================================================================

.. hdl-component-diagram::
:path: library/axi_ad35xxr

The :git-hdl:`AXI AD3552R <dev_ad3542r:library/axi_ad35xxr>` IP core can be used to
interface the :adi:`AD3552R`, :adi:`AD3551R`, :adi:`AD3542R`, and
:adi:`AD3541R`. :adi:`AD3552R` is a low drift, dual channel, ultra-fast,
16-bit accuracy, current output digital-to-analog converter (DAC) that can be
configured in multiple voltage span ranges, the :adi:`AD3551R` is the single
channel part. :adi:`AD3542R` is is a low drift, dual channel, ultra-fast,
12-/16-bit accuracy, voltage output digital-to-analog converter (DAC) that
can be configured in multiple voltage span ranges, the :adi:`AD3541R` is the
single channel part.

The :git-hdl:`AXI AD3552R <library/axi_ad3552r>` IP core
can be used to interface the :adi:`AD3552R`, a low drift, ultra-fast, 16-bit
accuracy, current output digital-to-analog converter (DAC) that can be
configured in multiple voltage span ranges.

Features
--------------------------------------------------------------------------------

* AXI-based configuration
* Vivado compatible
* 8b register read/write SDR/DDR
* 16b register read/write SDR/DDR
* data stream SDR/DDR ( clk_in/8 or clk_in/4 update rate)
* selectable input source: DMA/ADC/TEST_RAMP
* data out clock(SCLK) has clk_in/8 frequency when the converter is configured and
clk_in/2 when the converter is in stream mode
* the IP reference clock (clk_in) can have a maximum frequency of 132MHz
* the IP has multiple device synchronization capability when the DMA is set
as an input data source
* AXI-based configuration;
* Vivado compatible;
* 8b register read/write SDR/DDR;
* 16b register read/write SDR/DDR;
* Data stream SDR/DDR ( clk_in/8 or clk_in/4 update rate);
* Selectable input source: DMA/ADC/TEST_RAMP;
* Data out clock(SCLK) has clk_in/2 frequency for both configuration and streaming
mode;
* The IP reference clock (clk_in) can have a maximum frequency of 132MHz;
* The IP has multiple device synchronization capability when the DMA is set
as an input data source.


Files
--------------------------------------------------------------------------------
Expand All @@ -33,19 +41,19 @@ Files

* - Name
- Description
* - :git-hdl:`library/axi_ad3552r/axi_ad3552r.v`
* - :git-hdl:`dev_ad3542r:library/axi_ad35xxr/axi_ad35xxr.v`
- Verilog source for the AXI AD3552R.
* - :git-hdl:`library/axi_ad3552r/axi_ad3552r_channel.v`
* - :git-hdl:`dev_ad3542r:library/axi_ad35xxr/axi_ad35xxr_channel.v`
- Verilog source for the AXI AD3552R channel.
* - :git-hdl:`library/axi_ad3552r/axi_ad3552r_core.v`
* - :git-hdl:`dev_ad3542r:library/axi_ad35xxr/axi_ad35xxr_core.v`
- Verilog source for the AXI AD3552R core.
* - :git-hdl:`library/axi_ad3552r/axi_ad3552r_if.v`
* - :git-hdl:`dev_ad3542r:library/axi_ad35xxr/axi_ad35xxr_if.v`
- Verilog source for the AD3552R interface module.
* - :git-hdl:`library/axi_ad3552r/axi_ad3552r_if_tb.v`
* - :git-hdl:`dev_ad3542r:library/axi_ad35xxr/axi_ad35xxr_if_tb.v`
- Verilog source for the AD3552R interface module testbench.
* - :git-hdl:`library/axi_ad3552r/axi_ad3552r_if_tb`
* - :git-hdl:`dev_ad3542r:library/axi_ad35xxr/axi_ad35xxr_if_tb`
- Setup script for the AD3552R interface module testbench.
* - :git-hdl:`library/axi_ad3552r/axi_ad3552r_ip.tcl`
* - :git-hdl:`dev_ad3542r:library/axi_ad35xxr/axi_ad35xxr_ip.tcl`
- TCL script to generate the Vivado IP-integrator project.

Block Diagram
Expand Down Expand Up @@ -98,9 +106,9 @@ Interface
* - valid_in_dma_sec
- Valid from a secondary DMAC if synchronization is needed.
* - external_sync
- External synchronization flag from another axi_ad3552r IP.
- External synchronization flag from another axi_ad35xxr IP.
* - sync_ext_device
- Start_sync external device to another axi_ad3552r IP.
- Start_sync external device to another _axi_ad35xxr IP.
* - dac_sclk
- Serial clock.
* - dac_csn
Expand All @@ -111,37 +119,44 @@ Interface
- Serial data in from the DAC.
* - sdio_t
- I/O buffer control signal.
* - qspi_sel
- QSPI Mode Enable. High level enables quad SPI interface mode
(ad3552r and ad3551r).
* - s_axi
- Standard AXI Slave Memory Map interface.

Detailed Architecture
--------------------------------------------------------------------------------

.. image:: detailed_architecture.svg
:alt: AXI AD3552R detailed architecture
:alt: AXI AD3XXR detailed architecture

Detailed Description
--------------------------------------------------------------------------------

The top module instantiates:

* The axi_ad3552r interface module
* The axi_ad3552r core module
* The axi_ad35xxr interface module
* The axi_ad35xxr core module
* The AXI handling interface

The axi_ad3552r_if has the state machine that controls the quad SPI interface.
The axi_ad3552r_core module instantiates 2 axi_ad3552r channel modules.
The axi_ad35xxr_if has the state machine that controls the SPI interface,
which can be Single SPI (Classic), Dual SPI, and Quad SPI.
The axi_ad35xxr_core module instantiates 2 ad35xxr channel modules even for
the ad35x1r cases. For the single channel and 12 bit accuracy cases, consider
the 16 LSBs -- The 4 LSBs of this word are 0's for the 12-bit accuracy.


Register Map
--------------------------------------------------------------------------------

For the AXI_AD3552R control used registers from DAC Common are:
For the AXI_AD3XXR control used registers from DAC Common are:

.. hdl-regmap::
:name: AXI_AD3552R_DAC_COMMON


For the AXI_AD3552R control used registers from DAC Channel are:
For the AXI_AD35XXR control used registers from DAC Channel are:

.. hdl-regmap::
:name: AXI_AD3552R_DAC_CHANNEL
Expand All @@ -163,7 +178,7 @@ For reference, all the register map templates are:
Design Guidelines
--------------------------------------------------------------------------------

The control of the chip is done through the AXI_AD3552R IP.
The control of the chip is done through the AXI_AD35XXR IP.

The *DAC interface* must be connected to an IO buffer.

Expand All @@ -190,8 +205,11 @@ Software Support
References
--------------------------------------------------------------------------------

* HDL IP core at :git-hdl:`library/axi_ad3552r`
* HDL project at :git-hdl:`projects/ad3552r_evb`
* HDL IP core at :git-hdl:`dev_ad3542r:library/axi_ad35xxr`
* HDL project at :git-hdl:`dev_ad3542r:projects/ad35xxr_evb`
* :adi:`AD3552R`
* :adi:`AD3551R`
* :adi:`AD3542R`
* :adi:`AD3541R`
* :xilinx:`Zynq-7000 SoC Overview <support/documentation/data_sheets/ds190-Zynq-7000-Overview.pdf>`
* :xilinx:`Zynq-7000 SoC Packaging and Pinout <support/documentation/user_guides/ug865-Zynq-7000-Pkg-Pinout.pdf>`
Loading

0 comments on commit ad359bf

Please sign in to comment.