diff --git a/docs/projects/adv7511/adv7511_bd.svg b/docs/projects/adv7511/adv7511_bd.svg new file mode 100644 index 0000000000..467a6ee9d1 --- /dev/null +++ b/docs/projects/adv7511/adv7511_bd.svg @@ -0,0 +1,2619 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + MEMORY INTERCONNECT + + ZC702/ZC706/Zed + +   + + + + AXI_HDMI_ DMA + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Transmit path + + + + + + + + + + + + + + Ethernet + UART + DDRx + SPI + I2C + Interrupts + Zynq + Timer + + +   +   + + SPDIF_Clk=12.288MHz + HDMI_Clk=148.48MHz + Sys_Clk=100MHz + + AXI_HDMI_CORE + + +   + + + + + + + + + CSC + + bypass + + + + + DataClipping + + + + + + + + + + + + + + + + Chroma subsampling  + + + + + + + + + + + + + + + Data interleaving + + + + + + + + + SyncSignals + + HDMI_CLK + + + + DATA_24 + DATA_16 + DATA_36 + DATA_16_ES + HSYNC/VSYNC/DE + HDMI_OUT_CLK + + + + + + + + + + EmbededSync + + + + + + + + + + + + + + + + + bypass + + + HDMI_Clk=148.48MHz + + + + + 24 + + + + 24 + + 24 + + + 16 + + + (8b luma/green & 8b Cb/blue) + + + 24 + + + + + + + + + + + + + + FIFO + + + + + TPG + + + + + 24 + + 24 + + + + + + + + + + + + AXI_SPDIF_TX_CORE + 64 + 32 + + 64 + + + + 24 + + + 24 + + diff --git a/docs/projects/adv7511/adv7511_internal.svg b/docs/projects/adv7511/adv7511_internal.svg new file mode 100644 index 0000000000..da41f30e0d --- /dev/null +++ b/docs/projects/adv7511/adv7511_internal.svg @@ -0,0 +1,2576 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + HDCP AND EDIDMICROCONTROLLER + ADV7511 + + + I2C MASTER + + + + + TMDSOUTPUTS + HDCPENCRYPTION + + I2C SLAVE + REGISTERSANDCONFIG.LOGIC + 4:4:4ANDCOLORSPACECONVERTER + + + + + + + + + 4:2:2 + + HDCP KEYS + + + VIDEODATACAPTURE + AUDIODATACAPTURE + + + CEC CONTROLLER/BUFFER + ARC + + + TX0+ + + + + + + + + + + + + + + + + + + TX0- + TX1+ + TX1- + TX2+ + TX2- + TXC+ + TXC- + DDCSDA + DDCSCL + SCL + SDA + INT + HPD + + + + + + + + + + + + + + + + + + CLK + DE + HSYNC + VSYNC + D[35:0] + DSD_CLK + SCLK + LRCLK + MCLK + DSD[5:0] + I2S[3:0] + SPDIF_OUT + SPDIF + HEAC- + HEAC+ + + + + + + CEC + CEC_CLK + + + + + + + + + + + diff --git a/docs/projects/adv7511/index.rst b/docs/projects/adv7511/index.rst new file mode 100644 index 0000000000..9167756132 --- /dev/null +++ b/docs/projects/adv7511/index.rst @@ -0,0 +1,241 @@ +.. _adv7511: + +ADV7511 HDL project +=============================================================================== + +Oveview +------------------------------------------------------------------------------- + +The :adi:`ADV7511` is a 225 MHz High-Definition Multimedia Interface (HDMI®) transmitter, +which is ideal for home entertainment products including DVD players/recorders, digital +set top boxes, A/V receivers, gaming consoles, and PCs. + +The digital video interface contains an HDMI 1.4- and a DVI 1.0-compatible transmitter, +and supports all HDTV formats (including 1080p with 12-bit Deep Color). The :adi:`ADV7511` +supports the HDMI 1.4-specific features, HEAC (ARC), and 3D video. In addition to these features, +the :adi:`ADV7511` supports x.v.Color™, high bit rate audio, and programmable AVI InfoFrames. +With the inclusion of HDCP, the :adi:`ADV7511` allows the secure transmission of protected content +as specified by the HDCP 1.4 protocol. + +The :adi:`ADV7511` supports both S/PDIF and 8-channel I2S audio. Its high fidelity 8-channel I2S +can transmit either stereo or 7.1 surround audio up to 768 kHz. The S/PDIF can carry compressed +audio including Dolby® Digital, DTS®, and THX®. Fabricated in an advanced CMOS process, the :adi:`ADV7511` +is provided in a 100-lead LQFP surface-mount plastic package and is specified over the 0°C to ++70°C temperature range. + +Supported boards +------------------------------------------------------------------------------- + +- :adi:`ADV7511` + +Supported devices +------------------------------------------------------------------------------- + +- :adi:`ADV7511` + +Supported carriers +------------------------------------------------------------------------------- + +- :xilinx:`ZC702` +- :xilinx:`ZC706` +- :xilinx:`ZedBoard ` + +Block design +------------------------------------------------------------------------------- + +The reference design uses HDL-related HDMI cores in order to interface the :adi:`ADV7511` +IC into the ZC702/ZC706/Zed evaluation kits. + +Block diagram +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The data path and clock domains when interfacing the :adi:`ADV7511` IC with the FPGA SoCs, +and the internal HDL-related components are illustrated below: + +ADV7511 Block Diagram +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. image:: adv7511_bd.svg + :width: 800 + :align: center + :alt: ADV7511 block diagram + +ADV7511 internal components +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. image:: adv7511_internal.svg + :width: 800 + :align: center + :alt: ADV7511 internal components + +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 :ref:`architecture`). + +======================== =========== +Instance Address +======================== =========== +axi_iic_main 0x4160_0000 +axi_sysid_0 0x4500_0000 +axi_hdmi_clkgen 0x7900_0000 +axi_hdmi_dma 0x4300_0000 +axi_hdmi_core 0x70e0_0000 +axi_spdif_tx_core 0x75c0_0000 +axi_i2s_adi * 0x7760_0000 +axi_iic_fmc * 0x4162_0000 +======================== =========== + +.. admonition:: Legend + :class: note + + - ``*`` instantiated only for Zed carrier + +GPIO +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The Software GPIO number is calculated as follows: + +- Zynq-7000: if PS7 EMIOs are used, then offset is 54 + +.. list-table:: + :widths: 25 25 25 25 + :header-rows: 2 + + * - GPIO signal + - Direction + - HDL GPIO EMIO + - Software GPIO + * - + - (from FPGA view) + - + - Zynq-7000 + * - gpio_bd[31:0] * + - INOUT + - 31:0 + - 85:54 + * - gpio_bd[14:0] ** + - INOUT + - 14:0 + - 68:54 + * - gpio_bd[15:0] \*** + - INOUT + - 15:0 + - 69:54 + +.. admonition:: Legend + :class: note + + - ``*`` instantiated only for Zed carrier + - ``**`` instantiated only for ZC706 carrier + - ``***`` instantiated only for ZC702 carrier + +Interrupts +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Below are the Programmable Logic interrupts used in this project. + +=========================== === ============ ============= +Instance name HDL Linux Zynq Actual Zynq +=========================== === ============ ============= +axi_hdmi_dma/irq 15 59 91 +axi_iic_main/iic2intc_irpt 14 58 90 +axi_iic_fmc/iic2intc_irpt* 11 55 87 +=========================== === ============ ============= + +.. admonition:: Legend + :class: note + + - ``*`` instantiated only for Zed carrier + +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 +:dokuwiki:`ADI Kuiper Linux `. +If you want to build the sources, ADI makes them available on the +:git-hdl:`HDL repository `. To get the source you must +`clone `__ +the HDL repository, and then build the project as follows:. + +**Linux/Cygwin/WSL** + +.. code-block:: + :linenos: + + user@analog:~$ cd hdl/projects/adv7511/zed + user@analog:~/hdl/projects/adv7511/zed$ make + +A more comprehensive build guide can be found in the :ref:`build_hdl` +user guide. + +Resources +------------------------------------------------------------------------------- + +Hardware related +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- Product datasheet: :adi:`ADV7511` + +HDL related +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- :git-hdl:`ADV7511 HDL project source code ` + +.. list-table:: + :widths: 30 35 35 + :header-rows: 1 + + * - IP name + - Source code link + - Documentation link + * - AXI_CLKGEN + - :git-hdl:`library/axi_clkgen` + - :ref:`here ` + * - AXI_HDMI_TX + - :git-hdl:`library/axi_hdmi_tx` + - :ref:`here ` + * - AXI_I2S_ADI * + - :git-hdl:`library/axi_i2s_adi` + - --- + * - AXI_SYSID + - :git-hdl:`library/axi_sysid ` + - :ref:`here ` + * - SYSID_ROM + - :git-hdl:`library/sysid_rom ` + - :ref:`here ` + * - AXI_SDDIF_TX + - :git-hdl:`library/axi_spdif_tx` + - --- + * - UTIL_I2C_MIXER * + - :git-hdl:`library/util_i2c_mixer` + - --- +.. admonition:: Legend + :class: note + + - ``*`` instantiated only for Zed carrier + +Software related +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- :git-linux:`ADV7511 driver source code ` + +- :git-linux:`ADV7511 - ZED dtsi source code (arm32) ` + +- :git-linux:`ADV7511 - ZED dts source code (arm32) ` + +- :git-linux:`ADV7511 - ZC706 dtsi source code (arm32) ` + +- :git-linux:`ADV7511 - ZC706 dts source code (arm32) ` + +- :git-linux:`ADV7511 - ZC702 dtsi source code (arm32) ` + +- :git-linux:`ADV7511 - ZC702 dts source code (arm32) ` + +- :dokuwiki:`ADV7511 driver docs ` + +.. include:: ../common/more_information.rst + +.. include:: ../common/support.rst diff --git a/docs/projects/index.rst b/docs/projects/index.rst index 2f580f616a..7949a67b9b 100644 --- a/docs/projects/index.rst +++ b/docs/projects/index.rst @@ -41,6 +41,7 @@ Contents ADAQ7980-SDZ ADRV9026 ADRV904x + ADV7511 CN0363 CN0540 CN0561