From 9694b0245f1436e4fc834c57c14396445b581fa7 Mon Sep 17 00:00:00 2001 From: Serban Tiution Date: Tue, 31 Mar 2026 17:17:39 +0300 Subject: [PATCH 1/2] initial commit Signed-off-by: Serban Tiution --- .../eval-ad5766-sdz/ad5766_no-os.rst | 181 ++++++++++++++++++ .../eval-ad5766-sdz/ad5766_sdz_analog.png | 3 + .../eval-ad5766-sdz/ad5766_sdz_logic.png | 3 + .../eval-ad5766-sdz/index.rst | 128 +++++++++++++ 4 files changed, 315 insertions(+) create mode 100644 docs/solutions/reference-designs/eval-ad5766-sdz/ad5766_no-os.rst create mode 100644 docs/solutions/reference-designs/eval-ad5766-sdz/ad5766_sdz_analog.png create mode 100644 docs/solutions/reference-designs/eval-ad5766-sdz/ad5766_sdz_logic.png create mode 100644 docs/solutions/reference-designs/eval-ad5766-sdz/index.rst diff --git a/docs/solutions/reference-designs/eval-ad5766-sdz/ad5766_no-os.rst b/docs/solutions/reference-designs/eval-ad5766-sdz/ad5766_no-os.rst new file mode 100644 index 00000000000..736bf4d6f19 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5766-sdz/ad5766_no-os.rst @@ -0,0 +1,181 @@ +AD5766 - No-OS Driver +===================== + +Supported Devices +----------------- + +- :adi:`AD5766` +- :adi:`AD5767` + +Overview +-------- + +The :adi:`AD5766`/:adi:`AD5767` are 16-channel, 16-/12-bit, voltage output Digital-to-Analog Converters (DAC). The DAC generates output voltage ranges from an external 2.5 V reference. Depending on the span selected, the mid-point of the output span can be adjusted allowing for a minimum output voltage as low as −20 V or a maximum output voltage of up to +14 V. + +The :adi:`AD5766`/:adi:`AD5767` have integrated output buffers which can sink or source up to 20 mA. This makes the :adi:`AD5766`/:adi:`AD5767` suitable for Indium Phosphide Mach Zehnder Modulator (InP-MZM) biasing applications. + +The part incorporates a power-on reset circuit that ensures that the DAC outputs +power up to 0V and remain at this level until the output range of the DAC is +configured. The outputs of all DACs are updated through register configuration, +with the added functionality of user-selectable DAC channels to be +simultaneously updated. + +The :adi:`AD5766`/:adi:`AD5767` require four power supplies. AVCC is the analog supply for the low voltage DAC circuitry. AVDD and AVSS are the positive and negative high voltage power supplies for the output amplifiers. A VLOGIC supply pin is provided to set the logic levels for the digital interface pins. + +The :adi:`AD5766`/:adi:`AD5767` utilize a versatile 4-wire serial interface that operates at clock rates of up to 50 MHz for write mode and up to 10MHz for readback and daisy-chain mode, and is compatible with SPIR, QSPI., MICROWIRE. and DSP interface standards. + +The :adi:`AD5766`/:adi:`AD5767` are available in a 4mm x 4mm WLCSP package and operates at the range of -40C to +105C. + +Applications: + +- Mach Zehnder Modulator Bias Control +- Analog Output Modules +- Process Control + +Driver Description +------------------ + +Functions Declarations +~~~~~~~~~~~~~~~~~~~~~~ + ++---------------------------------------------------------------------------------------+--------------------------------------------------------+ +| Function | Description | ++=======================================================================================+========================================================+ +| ``int32_t ad5766_spi_cmd_write(ad5766_dev *dev, uint8_t cmd, uint16_t data);`` | SPI command write to device. | ++---------------------------------------------------------------------------------------+--------------------------------------------------------+ +| ``int32_t ad5766_spi_readback_reg(ad5766_dev *dev, ad5766_dac dac, uint32_t *data);`` | SPI readback register from device. | ++---------------------------------------------------------------------------------------+--------------------------------------------------------+ +| ``int32_t ad5766_set_sw_ldac(ad5766_dev *dev, uint16_t setting);`` | Set software LDAC for the selected channels. | ++---------------------------------------------------------------------------------------+--------------------------------------------------------+ +| ``int32_t ad5766_set_clr_span(ad5766_dev *dev, ad5766_clr clr, ad5766_span span);`` | Set clear code and span settings. | ++---------------------------------------------------------------------------------------+--------------------------------------------------------+ +| ``int32_t ad5766_set_pwr_dac(ad5766_dev *dev, uint16_t setting);`` | Power down the selected channels. | ++---------------------------------------------------------------------------------------+--------------------------------------------------------+ +| ``int32_t ad5766_set_pwr_dither(ad5766_dev *dev, uint16_t setting);`` | Power down the dither block for the selected channels. | ++---------------------------------------------------------------------------------------+--------------------------------------------------------+ +| ``int32_t ad5766_set_dither_signal(ad5766_dev *dev, uint32_t setting);`` | Enable the dither signal for the selected channels. | ++---------------------------------------------------------------------------------------+--------------------------------------------------------+ +| ``int32_t ad5766_set_inv_dither(ad5766_dev *dev, uint16_t setting);`` | Invert the dither signal for the selected channels. | ++---------------------------------------------------------------------------------------+--------------------------------------------------------+ +| ``int32_t ad5766_set_dither_scale(ad5766_dev *dev, uint32_t setting);`` | Enable the dither scaling for the selected channels. | ++---------------------------------------------------------------------------------------+--------------------------------------------------------+ +| ``int32_t ad5766_do_soft_reset(ad5766_dev *dev);`` | Do a software reset. | ++---------------------------------------------------------------------------------------+--------------------------------------------------------+ +| ``int32_t ad5766_set_in_reg(ad5766_dev *dev, ad5766_dac dac, uint16_t data);`` | Set the input register for the selected channel. | ++---------------------------------------------------------------------------------------+--------------------------------------------------------+ +| ``int32_t ad5766_set_dac_reg(ad5766_dev *dev, ad5766_dac dac, uint16_t data);`` | Set the DAC register for the selected channel. | ++---------------------------------------------------------------------------------------+--------------------------------------------------------+ +| ``int32_t ad5766_set_dac_reg_all(ad5766_dev *dev, ad5766_dac dac, uint16_t data);`` | Set the DAC register for all channels. | ++---------------------------------------------------------------------------------------+--------------------------------------------------------+ +| ``int32_t ad5766_setup(ad5766_dev **device, ad5766_init_param init_param);`` | Initialize the device. | ++---------------------------------------------------------------------------------------+--------------------------------------------------------+ + +Types Declarations +~~~~~~~~~~~~~~~~~~ + +.. code-block:: c + +:: + + typedef enum { + AD5766_ENABLE, + AD5766_DISABLE, + } ad5766_state; + +:: + + typedef enum { + AD5766_DAC_0, + AD5766_DAC_1, + AD5766_DAC_2, + AD5766_DAC_3, + AD5766_DAC_4, + AD5766_DAC_5, + AD5766_DAC_6, + AD5766_DAC_7, + AD5766_DAC_8, + AD5766_DAC_9, + AD5766_DAC_10, + AD5766_DAC_11, + AD5766_DAC_12, + AD5766_DAC_13, + AD5766_DAC_14, + AD5766_DAC_15, + } ad5766_dac; + +:: + + typedef enum { + AD5766_M_20V_TO_0V, + AD5766_M_16V_TO_0V, + AD5766_M_10V_TO_0V, + AD5766_M_12V_TO_P_14V, + AD5766_M_16V_TO_P_10V, + AD5766_M_5V_TO_P_6V, + AD5766_M_10V_TO_P_10V, + } ad5766_span; + +:: + + typedef enum { + AD5766_ZERO, + AD5766_MID, + AD5766_FULL, + } ad5766_clr; + +:: + + typedef struct { + /* SPI */ + spi_device spi_dev; + /* GPIO */ + gpio_device gpio_dev; + int8_t gpio_reset; + /* Device Settings */ + ad5766_state daisy_chain_en; + } ad5766_dev; + +:: + + typedef struct { + /* SPI */ + uint8_t spi_chip_select; + spi_mode spi_mode; + spi_type spi_type; + uint32_t spi_device_id; + /* GPIO */ + gpio_type gpio_type; + uint32_t gpio_device_id; + int8_t gpio_reset; + /* Device Settings */ + ad5766_state daisy_chain_en; + ad5766_clr clr; + ad5766_span span; + uint16_t pwr_dac_setting; + uint16_t pwr_dither_setting; + uint32_t dither_signal_setting; + uint16_t inv_dither_setting; + uint32_t dither_scale_setting; + } ad5766_init_param; + +Reference Design +---------------- + +.. image:: https://wiki.analog.com/_media/resources/tools-software/uc-drivers/ad5766_sdz_analog.png + :width: 800 + +.. image:: https://wiki.analog.com/_media/resources/tools-software/uc-drivers/ad5766_sdz_logic.png + :width: 800 + +Downloads +--------- + +.. admonition:: Download + :class: download + + + - :git-no-OS:`Implementation of AD5766 Driver. ` + - :git-no-OS:`Header file of AD5766 Driver. ` + - :git-hdl:`HDL Reference Design. ` + - :git-no-OS:`No-OS Reference Design. ` + \ No newline at end of file diff --git a/docs/solutions/reference-designs/eval-ad5766-sdz/ad5766_sdz_analog.png b/docs/solutions/reference-designs/eval-ad5766-sdz/ad5766_sdz_analog.png new file mode 100644 index 00000000000..03fd579c020 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5766-sdz/ad5766_sdz_analog.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:907431873e7236cb5495e879f1b55b574c33d9dd35ae75deff3ee37df31f9738 +size 69027 diff --git a/docs/solutions/reference-designs/eval-ad5766-sdz/ad5766_sdz_logic.png b/docs/solutions/reference-designs/eval-ad5766-sdz/ad5766_sdz_logic.png new file mode 100644 index 00000000000..60384a297d2 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5766-sdz/ad5766_sdz_logic.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3eec8f46d6093be524394cd39ae5a749e2fa7a98d6bba8f8527806f4517bf016 +size 29376 diff --git a/docs/solutions/reference-designs/eval-ad5766-sdz/index.rst b/docs/solutions/reference-designs/eval-ad5766-sdz/index.rst new file mode 100644 index 00000000000..99767308c8e --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5766-sdz/index.rst @@ -0,0 +1,128 @@ +.. imported from: https://wiki.analog.com/resources/tools-software/uc-drivers/ad5766 + +.. _ad5766-sdz: + +AD5766-SDZ User Guide +===================== + +Introduction +------------ + +The :adi:`AD5766`/:adi:`AD5767` are 16-channel, 16-/12-bit, voltage output +digital-to-analog converters (DAC). The DACs generate output voltage ranges +from an external 2.5 V reference. Depending on the span selected, the +mid-point of the output span can be adjusted allowing for a minimum output +voltage as low as -20 V or a maximum output voltage of up to +14 V. + +The :adi:`AD5766`/:adi:`AD5767` have integrated output buffers which can sink +or source up to 20 mA. This makes the devices suitable for Indium Phosphide +Mach Zehnder Modulator (InP-MZM) biasing applications. + +The part incorporates a power-on reset circuit that ensures that the DAC +outputs power up to 0 V and remain at this level until the output range of the +DAC is configured. The outputs of all DACs are updated through register +configuration, with the added functionality of user-selectable DAC channels to +be simultaneously updated. + +The :adi:`AD5766`/:adi:`AD5767` require four power supplies. AVCC is the analog +supply for the low voltage DAC circuitry. AVDD and AVSS are the positive and +negative high voltage power supplies for the output amplifiers. A VLOGIC supply +pin is provided to set the logic levels for the digital interface pins. + +The devices utilize a versatile 4-wire serial interface that operates at clock +rates of up to 50 MHz for write mode and up to 10 MHz for readback and +daisy-chain mode, and is compatible with SPI, QSPI, MICROWIRE, and DSP +interface standards. + +Applications +~~~~~~~~~~~~ + +- Mach Zehnder Modulator Bias Control +- Analog Output Modules +- Process Control + +Supported Devices +----------------- + +- :adi:`AD5766` +- :adi:`AD5767` + +Supported Carriers +------------------ + +- `ZedBoard `__ + +HDL Reference Design +-------------------- + +Block Diagram +~~~~~~~~~~~~~ + +.. figure:: ad5766_sdz_analog.png + :align: center + + AD5766-SDZ analog section block diagram + +.. figure:: ad5766_sdz_logic.png + :align: center + + AD5766-SDZ logic section block diagram + +HDL Source Code +~~~~~~~~~~~~~~~ + +- :git-hdl:`projects/ad5766_sdz` + +HDL Documentation +~~~~~~~~~~~~~~~~~ + +- `AD5766-SDZ HDL project `__ + +Building the HDL Project +~~~~~~~~~~~~~~~~~~~~~~~~ + +The design is built upon ADI's generic HDL reference design framework. ADI +does not distribute pre-built bitstream files, so the project must be built +from source. Clone the HDL repository and, with the correct tools installed, +navigate to the project directory and run ``make``: + +.. code-block:: bash + + cd hdl/projects/ad5766_sdz/zed + make + +A comprehensive build guide is available in the +`HDL User Guide `__. + +Software Support +---------------- + +Linux Device Driver +~~~~~~~~~~~~~~~~~~~ + +- :git-linux:`drivers/iio/dac/ad5766.c` + +No-OS Driver +~~~~~~~~~~~~~ + +The AD5766 No-OS driver provides a platform-independent software layer for +controlling the :adi:`AD5766`/:adi:`AD5767` DACs from bare-metal applications. + +Source code: + +- :git-no-OS:`drivers/dac/ad5766` +- :git-no-OS:`projects/ad5766-sdz` + +More Information +---------------- + +- `ADI Reference Designs HDL User Guide `__ +- :adi:`AD5766 Product Page ` +- :adi:`AD5767 Product Page ` + +Support +------- + +Analog Devices will provide limited online support for anyone using the +reference design with Analog Devices components via the +:ez:`FPGA Reference Designs Forum `. \ No newline at end of file From d6da4be766203e0d571d12e0277e17a5a34c5c4f Mon Sep 17 00:00:00 2001 From: Serban Tiution Date: Tue, 21 Apr 2026 13:14:25 +0300 Subject: [PATCH 2/2] reference-design/eval-ad5766-sdz: Created documentation for the AD5766/5767 project - Wrote the main index - Wrote the prerequisites page - Wrote the User Guide - Wrote the quickstart index - Wrote the quickstart for Zedboard - Zedboard quickstart is incomplete, does not have boot log. Signed-off-by: Serban Tiution --- .../eval-ad5766-sdz/ad5766_no-os.rst | 181 ------------------ .../images/ad5766_block_diagram.png | 3 + .../{ => images}/ad5766_sdz_analog.png | 0 .../{ => images}/ad5766_sdz_logic.png | 0 .../eval-ad5766-sdz/images/ad5767_chip.png | 3 + .../images/eval-ad5766-sd2z.png | 3 + .../images/eval_ad5766_zed_setup.jpg | 3 + .../eval-ad5766-sdz/index.rst | 111 +++++++---- .../eval-ad5766-sdz/prerequisites.rst | 12 ++ .../eval-ad5766-sdz/quickstart/index.rst | 70 +++++++ .../eval-ad5766-sdz/quickstart/zed.rst | 17 ++ .../quickstart/zed_no_os_output.rst | 2 + .../quickstart/zed_no_os_setup.rst | 55 ++++++ .../eval-ad5766-sdz/resources/ad5766_bom.xlsx | 3 + .../resources/ad5766_layouts.zip | 3 + .../resources/ad5766_schematics.zip | 3 + .../eval-ad5766-sdz/user-guide.rst | 147 ++++++++++++++ .../images/zedboard_no_os_jumpers.jpg | 3 + 18 files changed, 396 insertions(+), 223 deletions(-) delete mode 100644 docs/solutions/reference-designs/eval-ad5766-sdz/ad5766_no-os.rst create mode 100644 docs/solutions/reference-designs/eval-ad5766-sdz/images/ad5766_block_diagram.png rename docs/solutions/reference-designs/eval-ad5766-sdz/{ => images}/ad5766_sdz_analog.png (100%) rename docs/solutions/reference-designs/eval-ad5766-sdz/{ => images}/ad5766_sdz_logic.png (100%) create mode 100644 docs/solutions/reference-designs/eval-ad5766-sdz/images/ad5767_chip.png create mode 100644 docs/solutions/reference-designs/eval-ad5766-sdz/images/eval-ad5766-sd2z.png create mode 100644 docs/solutions/reference-designs/eval-ad5766-sdz/images/eval_ad5766_zed_setup.jpg create mode 100644 docs/solutions/reference-designs/eval-ad5766-sdz/prerequisites.rst create mode 100644 docs/solutions/reference-designs/eval-ad5766-sdz/quickstart/index.rst create mode 100644 docs/solutions/reference-designs/eval-ad5766-sdz/quickstart/zed.rst create mode 100644 docs/solutions/reference-designs/eval-ad5766-sdz/quickstart/zed_no_os_output.rst create mode 100644 docs/solutions/reference-designs/eval-ad5766-sdz/quickstart/zed_no_os_setup.rst create mode 100644 docs/solutions/reference-designs/eval-ad5766-sdz/resources/ad5766_bom.xlsx create mode 100644 docs/solutions/reference-designs/eval-ad5766-sdz/resources/ad5766_layouts.zip create mode 100644 docs/solutions/reference-designs/eval-ad5766-sdz/resources/ad5766_schematics.zip create mode 100644 docs/solutions/reference-designs/eval-ad5766-sdz/user-guide.rst create mode 100644 docs/solutions/reference-designs/images/zedboard_no_os_jumpers.jpg diff --git a/docs/solutions/reference-designs/eval-ad5766-sdz/ad5766_no-os.rst b/docs/solutions/reference-designs/eval-ad5766-sdz/ad5766_no-os.rst deleted file mode 100644 index 736bf4d6f19..00000000000 --- a/docs/solutions/reference-designs/eval-ad5766-sdz/ad5766_no-os.rst +++ /dev/null @@ -1,181 +0,0 @@ -AD5766 - No-OS Driver -===================== - -Supported Devices ------------------ - -- :adi:`AD5766` -- :adi:`AD5767` - -Overview --------- - -The :adi:`AD5766`/:adi:`AD5767` are 16-channel, 16-/12-bit, voltage output Digital-to-Analog Converters (DAC). The DAC generates output voltage ranges from an external 2.5 V reference. Depending on the span selected, the mid-point of the output span can be adjusted allowing for a minimum output voltage as low as −20 V or a maximum output voltage of up to +14 V. - -The :adi:`AD5766`/:adi:`AD5767` have integrated output buffers which can sink or source up to 20 mA. This makes the :adi:`AD5766`/:adi:`AD5767` suitable for Indium Phosphide Mach Zehnder Modulator (InP-MZM) biasing applications. - -The part incorporates a power-on reset circuit that ensures that the DAC outputs -power up to 0V and remain at this level until the output range of the DAC is -configured. The outputs of all DACs are updated through register configuration, -with the added functionality of user-selectable DAC channels to be -simultaneously updated. - -The :adi:`AD5766`/:adi:`AD5767` require four power supplies. AVCC is the analog supply for the low voltage DAC circuitry. AVDD and AVSS are the positive and negative high voltage power supplies for the output amplifiers. A VLOGIC supply pin is provided to set the logic levels for the digital interface pins. - -The :adi:`AD5766`/:adi:`AD5767` utilize a versatile 4-wire serial interface that operates at clock rates of up to 50 MHz for write mode and up to 10MHz for readback and daisy-chain mode, and is compatible with SPIR, QSPI., MICROWIRE. and DSP interface standards. - -The :adi:`AD5766`/:adi:`AD5767` are available in a 4mm x 4mm WLCSP package and operates at the range of -40C to +105C. - -Applications: - -- Mach Zehnder Modulator Bias Control -- Analog Output Modules -- Process Control - -Driver Description ------------------- - -Functions Declarations -~~~~~~~~~~~~~~~~~~~~~~ - -+---------------------------------------------------------------------------------------+--------------------------------------------------------+ -| Function | Description | -+=======================================================================================+========================================================+ -| ``int32_t ad5766_spi_cmd_write(ad5766_dev *dev, uint8_t cmd, uint16_t data);`` | SPI command write to device. | -+---------------------------------------------------------------------------------------+--------------------------------------------------------+ -| ``int32_t ad5766_spi_readback_reg(ad5766_dev *dev, ad5766_dac dac, uint32_t *data);`` | SPI readback register from device. | -+---------------------------------------------------------------------------------------+--------------------------------------------------------+ -| ``int32_t ad5766_set_sw_ldac(ad5766_dev *dev, uint16_t setting);`` | Set software LDAC for the selected channels. | -+---------------------------------------------------------------------------------------+--------------------------------------------------------+ -| ``int32_t ad5766_set_clr_span(ad5766_dev *dev, ad5766_clr clr, ad5766_span span);`` | Set clear code and span settings. | -+---------------------------------------------------------------------------------------+--------------------------------------------------------+ -| ``int32_t ad5766_set_pwr_dac(ad5766_dev *dev, uint16_t setting);`` | Power down the selected channels. | -+---------------------------------------------------------------------------------------+--------------------------------------------------------+ -| ``int32_t ad5766_set_pwr_dither(ad5766_dev *dev, uint16_t setting);`` | Power down the dither block for the selected channels. | -+---------------------------------------------------------------------------------------+--------------------------------------------------------+ -| ``int32_t ad5766_set_dither_signal(ad5766_dev *dev, uint32_t setting);`` | Enable the dither signal for the selected channels. | -+---------------------------------------------------------------------------------------+--------------------------------------------------------+ -| ``int32_t ad5766_set_inv_dither(ad5766_dev *dev, uint16_t setting);`` | Invert the dither signal for the selected channels. | -+---------------------------------------------------------------------------------------+--------------------------------------------------------+ -| ``int32_t ad5766_set_dither_scale(ad5766_dev *dev, uint32_t setting);`` | Enable the dither scaling for the selected channels. | -+---------------------------------------------------------------------------------------+--------------------------------------------------------+ -| ``int32_t ad5766_do_soft_reset(ad5766_dev *dev);`` | Do a software reset. | -+---------------------------------------------------------------------------------------+--------------------------------------------------------+ -| ``int32_t ad5766_set_in_reg(ad5766_dev *dev, ad5766_dac dac, uint16_t data);`` | Set the input register for the selected channel. | -+---------------------------------------------------------------------------------------+--------------------------------------------------------+ -| ``int32_t ad5766_set_dac_reg(ad5766_dev *dev, ad5766_dac dac, uint16_t data);`` | Set the DAC register for the selected channel. | -+---------------------------------------------------------------------------------------+--------------------------------------------------------+ -| ``int32_t ad5766_set_dac_reg_all(ad5766_dev *dev, ad5766_dac dac, uint16_t data);`` | Set the DAC register for all channels. | -+---------------------------------------------------------------------------------------+--------------------------------------------------------+ -| ``int32_t ad5766_setup(ad5766_dev **device, ad5766_init_param init_param);`` | Initialize the device. | -+---------------------------------------------------------------------------------------+--------------------------------------------------------+ - -Types Declarations -~~~~~~~~~~~~~~~~~~ - -.. code-block:: c - -:: - - typedef enum { - AD5766_ENABLE, - AD5766_DISABLE, - } ad5766_state; - -:: - - typedef enum { - AD5766_DAC_0, - AD5766_DAC_1, - AD5766_DAC_2, - AD5766_DAC_3, - AD5766_DAC_4, - AD5766_DAC_5, - AD5766_DAC_6, - AD5766_DAC_7, - AD5766_DAC_8, - AD5766_DAC_9, - AD5766_DAC_10, - AD5766_DAC_11, - AD5766_DAC_12, - AD5766_DAC_13, - AD5766_DAC_14, - AD5766_DAC_15, - } ad5766_dac; - -:: - - typedef enum { - AD5766_M_20V_TO_0V, - AD5766_M_16V_TO_0V, - AD5766_M_10V_TO_0V, - AD5766_M_12V_TO_P_14V, - AD5766_M_16V_TO_P_10V, - AD5766_M_5V_TO_P_6V, - AD5766_M_10V_TO_P_10V, - } ad5766_span; - -:: - - typedef enum { - AD5766_ZERO, - AD5766_MID, - AD5766_FULL, - } ad5766_clr; - -:: - - typedef struct { - /* SPI */ - spi_device spi_dev; - /* GPIO */ - gpio_device gpio_dev; - int8_t gpio_reset; - /* Device Settings */ - ad5766_state daisy_chain_en; - } ad5766_dev; - -:: - - typedef struct { - /* SPI */ - uint8_t spi_chip_select; - spi_mode spi_mode; - spi_type spi_type; - uint32_t spi_device_id; - /* GPIO */ - gpio_type gpio_type; - uint32_t gpio_device_id; - int8_t gpio_reset; - /* Device Settings */ - ad5766_state daisy_chain_en; - ad5766_clr clr; - ad5766_span span; - uint16_t pwr_dac_setting; - uint16_t pwr_dither_setting; - uint32_t dither_signal_setting; - uint16_t inv_dither_setting; - uint32_t dither_scale_setting; - } ad5766_init_param; - -Reference Design ----------------- - -.. image:: https://wiki.analog.com/_media/resources/tools-software/uc-drivers/ad5766_sdz_analog.png - :width: 800 - -.. image:: https://wiki.analog.com/_media/resources/tools-software/uc-drivers/ad5766_sdz_logic.png - :width: 800 - -Downloads ---------- - -.. admonition:: Download - :class: download - - - - :git-no-OS:`Implementation of AD5766 Driver. ` - - :git-no-OS:`Header file of AD5766 Driver. ` - - :git-hdl:`HDL Reference Design. ` - - :git-no-OS:`No-OS Reference Design. ` - \ No newline at end of file diff --git a/docs/solutions/reference-designs/eval-ad5766-sdz/images/ad5766_block_diagram.png b/docs/solutions/reference-designs/eval-ad5766-sdz/images/ad5766_block_diagram.png new file mode 100644 index 00000000000..d74f8bdf36e --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5766-sdz/images/ad5766_block_diagram.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3065971e4085be65e611f0ae6408a74de8cc34d9d3ad036b7b985cadd66ee76b +size 24249 diff --git a/docs/solutions/reference-designs/eval-ad5766-sdz/ad5766_sdz_analog.png b/docs/solutions/reference-designs/eval-ad5766-sdz/images/ad5766_sdz_analog.png similarity index 100% rename from docs/solutions/reference-designs/eval-ad5766-sdz/ad5766_sdz_analog.png rename to docs/solutions/reference-designs/eval-ad5766-sdz/images/ad5766_sdz_analog.png diff --git a/docs/solutions/reference-designs/eval-ad5766-sdz/ad5766_sdz_logic.png b/docs/solutions/reference-designs/eval-ad5766-sdz/images/ad5766_sdz_logic.png similarity index 100% rename from docs/solutions/reference-designs/eval-ad5766-sdz/ad5766_sdz_logic.png rename to docs/solutions/reference-designs/eval-ad5766-sdz/images/ad5766_sdz_logic.png diff --git a/docs/solutions/reference-designs/eval-ad5766-sdz/images/ad5767_chip.png b/docs/solutions/reference-designs/eval-ad5766-sdz/images/ad5767_chip.png new file mode 100644 index 00000000000..9eab7eb33dd --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5766-sdz/images/ad5767_chip.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:50119f54bda4985048a406fbba9a0ba9505114a732346e49fe78b1fb8aaa1c0f +size 82530 diff --git a/docs/solutions/reference-designs/eval-ad5766-sdz/images/eval-ad5766-sd2z.png b/docs/solutions/reference-designs/eval-ad5766-sdz/images/eval-ad5766-sd2z.png new file mode 100644 index 00000000000..6f99fb54472 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5766-sdz/images/eval-ad5766-sd2z.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da4dc28f0dcff8598ce2d8531bfc6fd489967269dccba75f084449df970dd0c3 +size 800959 diff --git a/docs/solutions/reference-designs/eval-ad5766-sdz/images/eval_ad5766_zed_setup.jpg b/docs/solutions/reference-designs/eval-ad5766-sdz/images/eval_ad5766_zed_setup.jpg new file mode 100644 index 00000000000..a7817f2c8d0 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5766-sdz/images/eval_ad5766_zed_setup.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b4be7a0e6a942c5e5ede787bf4d6421026712ebfe2c7c64c765f874dad23da4b +size 825296 diff --git a/docs/solutions/reference-designs/eval-ad5766-sdz/index.rst b/docs/solutions/reference-designs/eval-ad5766-sdz/index.rst index 99767308c8e..8d708d55538 100644 --- a/docs/solutions/reference-designs/eval-ad5766-sdz/index.rst +++ b/docs/solutions/reference-designs/eval-ad5766-sdz/index.rst @@ -1,12 +1,15 @@ -.. imported from: https://wiki.analog.com/resources/tools-software/uc-drivers/ad5766 +.. _ad5766: -.. _ad5766-sdz: +EVAL-AD5766-SDZ +=============================================================================== -AD5766-SDZ User Guide -===================== +16-Channel, 16-Bit Voltage Output denseDAC -Introduction ------------- +.. image:: images/ad5767_chip.png + :width: 200 + +Overview +------------------------------------------------------------------------------- The :adi:`AD5766`/:adi:`AD5767` are 16-channel, 16-/12-bit, voltage output digital-to-analog converters (DAC). The DACs generate output voltage ranges @@ -34,65 +37,89 @@ rates of up to 50 MHz for write mode and up to 10 MHz for readback and daisy-chain mode, and is compatible with SPI, QSPI, MICROWIRE, and DSP interface standards. -Applications -~~~~~~~~~~~~ +Features: + +- Complete 16-channel, 12/16-bit DACs +- 8 software-programmable output ranges +- Integrated reference buffers +- Channel monitoring multiplexer +- 1.8 V logic compatibility +- Integrated DAC output buffers + +Applications: - Mach Zehnder Modulator Bias Control - Analog Output Modules - Process Control +- Optical Networking +- Instrumentation +- Industrial Automation +- Data acquisition systems -Supported Devices ------------------ +.. image:: images/eval-ad5766-sd2z.png + :align: center + :width: 400 -- :adi:`AD5766` -- :adi:`AD5767` +.. toctree:: + :hidden: -Supported Carriers ------------------- + user-guide + prerequisites + quickstart/index -- `ZedBoard `__ +Recommendations +------------------------------------------------------------------------------- -HDL Reference Design --------------------- +People who follow the flow that is outlined, have a much better experience with +things. However, like many things, documentation is never as complete as it +should be. If you have any questions, feel free to ask on our +:ref:`EngineerZone forums `, but before that, please make +sure you read our documentation thoroughly. -Block Diagram -~~~~~~~~~~~~~ +To better understand the :adi:`AD5766` / :adi:`AD5767`, we recommend to use +the :adi:`EVAL-AD5766/67-SD2Z ` evaluation board. -.. figure:: ad5766_sdz_analog.png - :align: center +Table of contents +------------------------------------------------------------------------------- - AD5766-SDZ analog section block diagram +#. Using the evaluation board/full stack reference design that we offer: -.. figure:: ad5766_sdz_logic.png - :align: center + #. :ref:`ad5766 user-guide` - what you need to know about the + evaluation board + #. :ref:`ad5766 prerequisites` - what you need to get started with the setup + #. :ref:`ad5766 quickstart`: - AD5766-SDZ logic section block diagram + #. Using the :ref:`ZedBoard ` -HDL Source Code -~~~~~~~~~~~~~~~ +#. Design with the AD5766/AD5767 -- :git-hdl:`projects/ad5766_sdz` + - :ref:`ad5766 block-diagram` -HDL Documentation -~~~~~~~~~~~~~~~~~ + - :adi:`AD5766 product page ` + - :adi:`AD5767 product page ` -- `AD5766-SDZ HDL project `__ + - Resources for designing a custom AD5766/AD5767-based platform software -Building the HDL Project -~~~~~~~~~~~~~~~~~~~~~~~~ + - :external+hdl:ref:`HDL reference design ` + - :external+no-OS:doc:`No-OS reference design ` + - :git-hdl:`HDL project ` + - :git-no-OS:`No-OS project ` + - :git-no-OS:`No-OS driver ` -The design is built upon ADI's generic HDL reference design framework. ADI -does not distribute pre-built bitstream files, so the project must be built -from source. Clone the HDL repository and, with the correct tools installed, -navigate to the project directory and run ``make``: +#. :ref:`Help and Support ` -.. code-block:: bash +.. _ad5766 block-diagram: - cd hdl/projects/ad5766_sdz/zed - make +Block Diagram +~~~~~~~~~~~~~ + +.. image:: images/ad5766_block_diagram.png + :align: center -A comprehensive build guide is available in the -`HDL User Guide `__. +HDL Source Code +~~~~~~~~~~~~~~~ + +- :git-hdl:`projects/ad5766_sdz` Software Support ---------------- diff --git a/docs/solutions/reference-designs/eval-ad5766-sdz/prerequisites.rst b/docs/solutions/reference-designs/eval-ad5766-sdz/prerequisites.rst new file mode 100644 index 00000000000..f62bbbb674a --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5766-sdz/prerequisites.rst @@ -0,0 +1,12 @@ + +.. include-template:: ../template/prerequisites.rst.jinja + + prerequisites_ref: ad5766 prerequisites + chip_name: AD5766 + eval_board: EVAL-AD5766-SD2Z + carriers_ref: ad5766 carriers + has_rf_test_equipment: true + additional_hardware: + - USB-JTAG programmer for FPGA configuration + - SDP to FMC interposer + - External 3V3 voltage source diff --git a/docs/solutions/reference-designs/eval-ad5766-sdz/quickstart/index.rst b/docs/solutions/reference-designs/eval-ad5766-sdz/quickstart/index.rst new file mode 100644 index 00000000000..e882282b7d8 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5766-sdz/quickstart/index.rst @@ -0,0 +1,70 @@ +.. _ad5766 quickstart: + +Quickstart +=============================================================================== + +The Quick start guides provide simple step by step instructions on how to do +an initial system setup for the :adi:`EVAL-AD5766/67-SD2Z` +boards on various FPGA development boards. In these guides, we will discuss how +to program the bitstream, run a no-OS program or boot a Linux distribution. + +.. toctree:: + + On ZedBoard + +.. _ad5766 carriers: + +Supported carriers +------------------------------------------------------------------------------- + +The :adi:`EVAL-AD5766/67-SD2Z `, is, by definition a "FPGA +mezzanine card" (FMC); that means it needs a carrier to plug into. + +The carriers we support are: + +.. list-table:: + :header-rows: 1 + + - - FPGA board + - :adi:`EVAL-AD5766/67-SD2Z ` + - - :xilinx:`ZedBoard` + - FMC + +Supported environments +------------------------------------------------------------------------------- + +The supported OS are: + +.. list-table:: + :header-rows: 1 + + - - FPGA board + - HDL + - Linux software + - No-OS software + - - :xilinx:`ZedBoard` + - Yes + - No + - Yes + +Hardware setup +------------------------------------------------------------------------------- + +.. Describe in general, few words + +On most carriers, the :adi:`EVAL-AD5766/67-SD2Z` boards +connects to the FMC connector (unless otherwise noted). The carrier setup +requires power, UART (115200), Ethernet (if Linux available), HDMI (if available) +and/or JTAG (if no-OS available) connections. A few typical setups are shown +below. + +ZedBoard + EVAL-AD5766/67-SD2Z +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. image:: ../images/eval_ad5766_zed_setup.jpg + :width: 800 + +.. + Link the zynqmp.rst + +Go to :ref:`the setup guide `. diff --git a/docs/solutions/reference-designs/eval-ad5766-sdz/quickstart/zed.rst b/docs/solutions/reference-designs/eval-ad5766-sdz/quickstart/zed.rst new file mode 100644 index 00000000000..c878b4864cc --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5766-sdz/quickstart/zed.rst @@ -0,0 +1,17 @@ +.. include-template:: ../../template/quickstart/zed.rst.jinja + + quickstart_ref: ad5766 zed + eval_board: EVAL-AD5766-SD2Z + has_linux: false + has_no_os: true + no_os_project_path: projects/ad5766-sdz + no_os_project_specific_doc: projects/dac/ad5766-sdz + no_os_additional_hardware: {SDP-FMC Interposer, Oscilloscope, External 3.3V Voltage Source} + no_os_console_output_file: zed_no_os_output.rst + no_os_setup_steps_file: zed_no_os_setup.rst + no_os_setup_image: ../images/eval_ad5766_zed_setup.jpg + hdl_project_doc: ad5766_sdz + prerequisites_ref: ad5766 prerequisites + quickstart_image: ../images/eval_ad5766_zed_setup.jpg + no_os_has_loopback: false + has_vadj_warning: false diff --git a/docs/solutions/reference-designs/eval-ad5766-sdz/quickstart/zed_no_os_output.rst b/docs/solutions/reference-designs/eval-ad5766-sdz/quickstart/zed_no_os_output.rst new file mode 100644 index 00000000000..c56eaf7cfbc --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5766-sdz/quickstart/zed_no_os_output.rst @@ -0,0 +1,2 @@ +:: + \ No newline at end of file diff --git a/docs/solutions/reference-designs/eval-ad5766-sdz/quickstart/zed_no_os_setup.rst b/docs/solutions/reference-designs/eval-ad5766-sdz/quickstart/zed_no_os_setup.rst new file mode 100644 index 00000000000..1a62bf1979c --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5766-sdz/quickstart/zed_no_os_setup.rst @@ -0,0 +1,55 @@ +Steps: + +#. Set the ZedBoard jumpers to No-OS configuration + (all of the configuration jumpers to GND). + + .. image:: ../../images/zedboard_no_os_jumpers.jpg + :width: 400 + +#. Connect the ZedBoard to your desktop with 2 Micro-USB cables. + - One for UART (J14) + - One for JTAG (J17) +#. Connect the barrel jack power supply to the ZedBoard. +#. Make sure the VADJ is set to 2V5. +#. Make sure the jumpers on the evaluation board are set for your desired + configuration. The configuration in this quickstart guide is: + +.. list-table:: + :header-rows: 1 + + - - Jumper + - Position + - - LK1 + - A + - - LK2 + - A + - - LK3 + - A + - - LK4 + - B + - - LK5 + - B + - - LK6 + - B + - - LK7 + - A + - - LK8 + - B + - - LK9 + - A + - - LK10 + - A + - - LK11 + - Set + - - LK12 + - Set + +#. Connect the Evaluation Board to the ZedBoard by using a SDP to FMC interposer + on the FMC connector of the ZedBoard (J1). +#. Connect a 3.3V Voltage Source to the J12 Connector of the Evaluation Board. +#. Connect an oscilloscope to the MUX_OUT Connector of the Evaluation Board. +#. Build the boot files and run the project. You can follow + :external+no-OS:doc:`this guide ` +#. Using the oscilloscope check your output. + +.. image:: ../images/ad5766_sdz_analog.png diff --git a/docs/solutions/reference-designs/eval-ad5766-sdz/resources/ad5766_bom.xlsx b/docs/solutions/reference-designs/eval-ad5766-sdz/resources/ad5766_bom.xlsx new file mode 100644 index 00000000000..5393dbe3deb --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5766-sdz/resources/ad5766_bom.xlsx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8419280fa3296752691a7fb34da4a3ba7e5b6ee5029fbcf0d1b981ade32cceee +size 31165 diff --git a/docs/solutions/reference-designs/eval-ad5766-sdz/resources/ad5766_layouts.zip b/docs/solutions/reference-designs/eval-ad5766-sdz/resources/ad5766_layouts.zip new file mode 100644 index 00000000000..bceaf34dab2 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5766-sdz/resources/ad5766_layouts.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d750a1e453c2dcf74a13dfcd9570d1576f3fafa85c528637b29edfaed9ffd5cb +size 1192910 diff --git a/docs/solutions/reference-designs/eval-ad5766-sdz/resources/ad5766_schematics.zip b/docs/solutions/reference-designs/eval-ad5766-sdz/resources/ad5766_schematics.zip new file mode 100644 index 00000000000..6fcb3f7f375 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5766-sdz/resources/ad5766_schematics.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb21eae7d7ad782e783764f7d44941adf7a79c162b4c0252f3f0b28e57ff63dd +size 138659 diff --git a/docs/solutions/reference-designs/eval-ad5766-sdz/user-guide.rst b/docs/solutions/reference-designs/eval-ad5766-sdz/user-guide.rst new file mode 100644 index 00000000000..b93087f99f5 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad5766-sdz/user-guide.rst @@ -0,0 +1,147 @@ +.. _ad5766 user-guide: + +User Guide +=============================================================================== + +The complete user guide of the evaluation board can be found at +:download:`EVAL-AD5766SD2Z/EVAL-AD5767SD2Z User Guide `. + + +Hardware guide +------------------------------------------------------------------------------- + +.. _ad5766 configuration: + +Hardware configuration +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + - - Jumper + - A + - B + - C / No Link + - - LK1 + - EXT_3.3V + - EXT_AVCC + - --f + - - LK2 + - EXT_3.3V + - EXT_VLOGIC + - -- + - - LK3 + - EXT_3.3V + - EXT_AVCC + - -- + - - LK4 + - EXT_AVDD + - INT_AVDD + - -- + - - LK5 + - EXT_AVSS + - INT_AVSS + - -- + - - LK6 + - Sequenced + - Simultaneous + - Manual + - - LK7 + - ADR4525BRZ + - EXT_VREF + - -- + - - LK8 + - EXT_AVCC + - DEMO_SUPPLY + - EXT_3.3V + - - LK9 + - 1.2MHz Switching Frequency + - 2.4MHz Switching Frequency + - External Clock + - - LK10 + - Slow Slew + - Normal Slew + - Fast Slew + - - LK11 + - Ground + - -- + - -- + - - LK12 + - Ground + - -- + - -- + +This table has been made for the Rev. A of the evaluation board. + +For the Rev. B the following changes have been made: + +- LK6, LK9, LK10 no longer the have the C position, instead those configurations + are obtained by not connecting the jumpers at all. + +- LK11 and LK12 are used to bypass the output filters. + +- LK8 no longer has 3 positions, it can only be linked or not and connects the + EN1 and EN2 pins to EXT_3.3V. + +Power supply +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The :adi:`EVAL-AD5766/67-SD2Z` evaluation board is powered through +the FMC connector. The VADJ should be set to 2.5V. + +The board supports two methods for supplying the DAC parameters (VLOGIC, VACC, +VADD, VASS, etc.): + +- a single external 3.3V supply (EXT_3.3V). +- individually powered supply rails. + +Refer to the :ref:`configuration table ` for setup +instructions. + +The board presents the following connectors for power supply / interface: + +.. list-table:: + :header-rows: 1 + + - - Connector + - Scope + - - J9 + - AVSS and AVDD + - - J10 + - PMOD SPI + - - J11 + - AVCC + - - J12 + - 3.3V Supply + - - J13 + - VLOGIC + +Output +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The output of the DAC can be monitored in 2 ways: + +- Through one of the 16 dedicated channel outputs (VOUT1-VOUT16). +- Through the MUX_OUT connection. + +Schematic, PCB Layout, Bill of Materials +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- :download:`Schematics` +- :download:`PCB Layout` +- :download:`Bill of Materials` + +Software guide +------------------------------------------------------------------------------- + +The evaluation board is supported with the Libiio library. This library is +cross-platform (Windows, Linux, Mac) with language bindings for C, C#, Python, +MATLAB, and others. Two easy examples that can be used with it are: + +- :dokuwiki:`IIO Oscilloscope ` + +Additional resources +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- :adi:`AD5766 / AD5767 datasheet ` +- :adi:`AN-928: Understanding High Speed DAC Testing and Evaluation ` diff --git a/docs/solutions/reference-designs/images/zedboard_no_os_jumpers.jpg b/docs/solutions/reference-designs/images/zedboard_no_os_jumpers.jpg new file mode 100644 index 00000000000..1a09051e6eb --- /dev/null +++ b/docs/solutions/reference-designs/images/zedboard_no_os_jumpers.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e68e288de2315165de77c3a7265d4f37aed19760466fef94f3a3f1c2e51894ed +size 787057