diff --git a/docs/library/axi_ad7616/axi_ad7616.svg b/docs/library/axi_ad7616/axi_ad7616.svg new file mode 100644 index 0000000000..56ed59f84d --- /dev/null +++ b/docs/library/axi_ad7616/axi_ad7616.svg @@ -0,0 +1,1139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + DFMT + + Channel 0 + Channel 1 + ... + Channel 15 + + + + + + PARALLELINTERFACE + AXI_AD7616 + + + uP CHANNEL + + + + uP COMMON + + + + uP (AXI) + + + + ... + + + + DB_O + + BUSY + + + WR_N + + RD_N + + CS_N + DATA + + ADC_CONFIG + + + DB_I + DB_T + DATA_F + + TRIGGER + + + diff --git a/docs/library/axi_ad7616/block_diagram.svg b/docs/library/axi_ad7616/block_diagram.svg deleted file mode 100644 index b73c3a3951..0000000000 --- a/docs/library/axi_ad7616/block_diagram.svg +++ /dev/null @@ -1,487 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - DB[15:0]WRn/RDn - - - - - INPUT - OUTPUT - - - - - - - - S_AXI_LITE - WR_FIFO - - REGISTERMAP - - - CONTROL  - PARALLEL INTERFACE - - BUSY - - burst_length - - - - - - - - 15:0 - adc_data - adc_valid - adc_sync - - diff --git a/docs/library/axi_ad7616/index.rst b/docs/library/axi_ad7616/index.rst index fc75470dae..6426cbc934 100644 --- a/docs/library/axi_ad7616/index.rst +++ b/docs/library/axi_ad7616/index.rst @@ -11,6 +11,9 @@ FPGA. The core has a AXI Memory Map interface for configuration, supports the parallel data interface of the device, and has a simple FIFO interface for the DMAC. +More about the generic framework interfacing ADCs, that contains the +``up_adc_channel`` and ``up_adc_common modules``, can be read in :ref:`axi_adc`. + Files -------------------------------------------------------------------------------- @@ -21,15 +24,17 @@ Files - Description * - :git-hdl:`library/axi_ad7616/axi_ad7616.v` - Verilog source for the AXI AD7616. - * - :git-hdl:`library/axi_ad7616/axi_ad7616_control.v` - - Verilog source for the AXI AD7616 control. * - :git-hdl:`library/axi_ad7616/axi_ad7616_pif.v` - Verilog source for the AXI AD7616 parallel interface. + * - :git-hdl:`library/common/up_adc_common.v` + - Verilog source for the ADC Common regmap. + * - :git-hdl:`library/common/up_adc_channel.v` + - Verilog source for the ADC Channel regmap. Block Diagram -------------------------------------------------------------------------------- -.. image:: block_diagram.svg +.. image:: axi_ad7616.svg :alt: AXI AD7616 block diagram Configuration Parameters @@ -61,18 +66,93 @@ Interface - End of conversion signal * - adc_valid - Shows when a valid data is available on the bus - * - adc_data - - Data bus - * - adc_sync - - Shows the first valid beat on a sequence + * - adc_data_* + - Channel ADC data + * - adc_enable_* + - ADC enable signal for each channel + * - adc_clk + - ADC clock + * - adc_reset + - ADC reset + * - adc_dovf + - ADC data overflow signaling * - s_axi - Standard AXI Slave Memory Map interface Register Map -------------------------------------------------------------------------------- +The register map of the core contains instances of several generic register maps +like ADC common, ADC channel or PWM Generator. The following table presents the +base addresses of each instance, after that can be found the detailed +description of each generic register map. + +.. hdl-regmap:: + :name: COMMON + :no-type-info: + +.. hdl-regmap:: + :name: ADC_COMMON + :no-type-info: + .. hdl-regmap:: - :name: AXI_AD7616 + :name: ADC_CHANNEL + :no-type-info: + +Theory of operation +-------------------------------------------------------------------------------- + +The axi_ad7616 IP can be configured in various operation modes, this feature +being integrated in the device register map. Thus, to be able to configure the +operation mode and any other features available through the mentioned register +map, **adc_config_ctrl** signal, that is available in the *up_adc_common* +module, is used in this way: bit 1 - RD request to the device register map('b1), +bit 0 - WR request to the device register map('b1). Also, **adc_custom_control** +signal, that is available in the *up_adc_common* module, controls burst_length. + +Software Parallel Mode Channel Conversion Setting +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. wavedrom:: + + {signal: [ + {name: 'RESET_N', wave:'101................'}, + {name: 'CNVST', wave:'0....10..........1.'}, + {name: 'BUSY', wave:'0....1.0.........1.'}, + {name: 'CS_N', wave:'1.....01..........010101..............', "period" :0.5}, + {name: 'WR_N', wave:'1.....01..............01..............', "period" :0.5}, + {name: 'RD_N', wave:'1.................0101................', "period" :0.5}, + {name: 'DB[0:15]', wave:'z.....=.z.........=.=.=.z.........|.....', data: ['CHx',"A0","B0","CHy"], "period" :0.45} + ], + foot: {text: + ['tspan', 'CHx CONVERSION START'] + } + } + +Parallel Read Timing Diagram +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. wavedrom:: + + {signal: [ + {name: 'CNVST', wave:'010..........10....'}, + {name: 'BUSY', wave:'0..1......0................1......0...', "period" :0.5}, + {name: 'CS_N', wave:'1..........0..1..0..1..............0..', "period" :0.5}, + {name: 'RD_N', wave:'1......................01........01................................01.', "period" :0.25}, + {name: 'DB[0:15]', wave:'z.....=.z=.z.......', data: ['CONVA',"CONVB","B0","CHy"], "period" :1,"phase":-0.1} + ] + } + +Parallel Write Timing Diagram +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. wavedrom:: + + {signal: [ + {name: 'CNVST', wave:'0..........................1..0', "period" :0.5}, + {name: 'CS_N', wave:'1......0.....1.....0.....1.....', "period" :0.5}, + {name: 'WR_N', wave:'1......0...1.......0...1......', "period" :0.5,"phase":-0.5}, + {name: 'DB[0:15]', wave:'z..=.z.=.z.', data: ['WRITE REG 1',"WRITE REG 2","B0","CHy"], "period" :1.3,"phase":0.7} + ] + } + Software Support -------------------------------------------------------------------------------- diff --git a/docs/projects/ad7616_sdz/ad7616_parallel_hdl.svg b/docs/projects/ad7616_sdz/ad7616_parallel_hdl.svg index a1e53bcd12..9ca134c804 100644 --- a/docs/projects/ad7616_sdz/ad7616_parallel_hdl.svg +++ b/docs/projects/ad7616_sdz/ad7616_parallel_hdl.svg @@ -1,13 +1,13 @@ @@ -45,7 +45,7 @@ inkscape:connector-curvature="0" id="path2456" d="M 5.77,0 -2.88,5 V -5 Z" - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" transform="scale(0.4)" /> @@ -135,7 +135,7 @@ @@ -150,7 +150,7 @@ inkscape:stockid="TriangleInM"> @@ -166,7 +166,7 @@ inkscape:stockid="TriangleOutM"> @@ -182,7 +182,7 @@ inkscape:stockid="TriangleInM"> @@ -198,7 +198,7 @@ inkscape:stockid="TriangleOutM"> @@ -215,7 +215,7 @@ inkscape:connector-curvature="0" id="path16078" d="M 5.77,0 -2.88,5 V -5 Z" - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" transform="scale(-0.8)" /> + + + + + + + + + + + + + + + + + + + + + + type="xygrid" + spacingy="1" + spacingx="1" + units="px" + visible="true" /> @@ -1188,7 +1297,6 @@ image/svg+xml - @@ -1198,12 +1306,12 @@ inkscape:groupmode="layer" inkscape:label="Layer 1"> + style="display:inline;opacity:1;fill:#000000;fill-opacity:0;fill-rule:nonzero;stroke:#000000;stroke-width:1.51598;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;shape-rendering:crispEdges;enable-background:new" /> FMC CONNECTOR + style="opacity:1;fill:#f9f9f9;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.62271;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" /> @@ -1482,33 +1590,33 @@ sodipodi:nodetypes="cc" inkscape:connector-curvature="0" id="path1206-1-0" - d="M 498.48353,71.123518 H 677.41759" - style="display:inline;opacity:1;fill:none;stroke:#000000;stroke-width:1.99313998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1216-0-3);shape-rendering:crispEdges;enable-background:new" /> + d="M 533.02356,71.767535 H 712.06159" + style="display:inline;opacity:1;fill:none;stroke:#000000;stroke-width:1.99314;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1216-0-3);shape-rendering:crispEdges;enable-background:new" /> + d="m 533.02356,165.8827 179.03364,-0.161" + style="display:inline;opacity:1;fill:none;stroke:#000000;stroke-width:1.98635;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1216-0-3-1-2);shape-rendering:crispEdges;enable-background:new" /> AXI AD7616 RX_WR_N + style="display:inline;fill:#e5e5e5;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.55709;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal;shape-rendering:crispEdges;enable-background:new" /> AD7616PARALLELINTERFACE - + d="m 80.827055,130.26684 -18.091052,0.0805" + style="display:inline;opacity:1;fill:none;stroke:#000000;stroke-width:2.00017;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker10933-1);marker-end:url(#marker1216-9-9-6-3-5);shape-rendering:crispEdges;enable-background:new" /> + d="m 533.17506,118.57745 178.77502,0.22769" + style="display:inline;opacity:1;fill:none;stroke:#000000;stroke-width:1.99314;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1216-0-3-1-2-0);shape-rendering:crispEdges;enable-background:new" /> RX_DB_0[15:0] + d="M 717.84618,93.646726 H 537.9823" + style="display:inline;opacity:1;fill:none;stroke:#000000;stroke-width:1.97469;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1216-0-3-9-7);shape-rendering:crispEdges;enable-background:new" /> + RX_DB_I[15:0] RX_DB_T + d="m 532.87207,141.11807 h 50.33878 l 128.84641,0.11385" + style="display:inline;opacity:1;fill:none;stroke:#000000;stroke-width:1.99314;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1216-0-3-1-2-0-6);shape-rendering:crispEdges;enable-background:new" /> RX_RD_N + d="M 533.07555,185.38135 H 712.07019" + style="display:inline;opacity:1;fill:none;stroke:#000000;stroke-width:1.99314;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1216-0-3-75);shape-rendering:crispEdges;enable-background:new" /> + d="M 717.68554,278.93514 H 554.1611" + style="display:inline;opacity:1;fill:none;stroke:#000000;stroke-width:1.90176;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1216-0-3-9-7-8);shape-rendering:crispEdges;enable-background:new" /> RX_CS_N RX_BUSY + style="display:inline;opacity:1;fill:#e5e5e5;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.74916;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal;shape-rendering:crispEdges;enable-background:new" /> + d="M 551.86284,-21.558571 H 711.06618" + style="display:inline;opacity:1;fill:none;stroke:#000000;stroke-width:1.98635;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1216-0-3-1-2-6);shape-rendering:crispEdges;enable-background:new" /> RX_CNVST AXI PWM GEN + style="display:inline;opacity:1;fill:#e5e5e5;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.74916;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal;shape-rendering:crispEdges;enable-background:new" /> SYNC BITS + style="display:inline;opacity:1;fill:#e5e5e5;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.95052;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal;shape-rendering:crispEdges;enable-background:new" /> EDGE DETECT trigger - - - AXI CLKGEN - spi_clk = 100MHz - - - - + style="display:inline;fill:none;fill-opacity:1;stroke:#3f4b55;stroke-width:1.98857;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.98857, 5.96574;stroke-dashoffset:0;stroke-opacity:1;shape-rendering:crispEdges;enable-background:new" /> AD7616_DMA + + + AD7616_PACK + sys_clk = 100MHz + id="tspan673-8-9"> sys_clk = 100MHz + + ... + style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.8;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.67501;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.673913" /> + style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.67501;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.673913" /> + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5506;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.067;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> @@ -1965,9 +2045,9 @@ inkscape:connector-curvature="0" id="path8426" d="M 406.04958,433.33004 H 404.6091" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.06700003;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.067;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> @@ -1975,9 +2055,9 @@ inkscape:connector-curvature="0" id="path8430" d="M 406.04958,437.86003 H 404.6091" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.06700003;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.067;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> @@ -1985,9 +2065,9 @@ inkscape:connector-curvature="0" id="path8434" d="M 406.04958,442.34471 H 404.6091" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.06700003;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.067;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> @@ -1995,14 +2075,14 @@ inkscape:connector-curvature="0" id="path8438" d="M 406.04958,446.82944 H 404.6091" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.06700003;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.067;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.067;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> @@ -2012,14 +2092,14 @@ id="g8892" style="display:inline;shape-rendering:crispEdges;enable-background:new"> @@ -2029,17 +2109,17 @@ style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-opacity:1"> + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.973;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.308598;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.308598;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.308598;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.308598;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2.41103;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2.41103;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2.41103;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2.41103;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2.41103;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> 64b + sodipodi:role="line">64 + 256b + d="m -75.365667,828.98681 -1.703605,3.40721 -0.678571,1.35714 -2.617824,5.23565" + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + sodipodi:nodetypes="cccc" /> 16b + V0A + + + 16b + V1A + + + 16b + V7A + + + 16b + V0B + + + 16b + V1B + + + 16b + V7B + + ... diff --git a/docs/projects/ad7616_sdz/ad7616_serial_hdl.svg b/docs/projects/ad7616_sdz/ad7616_serial_hdl.svg index 8e1795d221..048191d280 100644 --- a/docs/projects/ad7616_sdz/ad7616_serial_hdl.svg +++ b/docs/projects/ad7616_sdz/ad7616_serial_hdl.svg @@ -1,7 +1,7 @@ + type="xygrid" + spacingy="1" + spacingx="1" + units="px" + visible="true" /> @@ -1362,21 +1366,12 @@ - + style="display:inline;opacity:1;fill:none;fill-opacity:1;stroke:#3f4b55;stroke-width:1.90762;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.90762, 5.72286;stroke-dashoffset:0;stroke-opacity:1;shape-rendering:crispEdges;enable-background:new" /> sys_clk = 100MHz + id="tspan673"> sys_clk = 100MHz AXI PWM GEN - - AXI CLKGEN - spi_clk = 100MHz - - - - ` IP core +- the serial interface is controlled by the :ref:`SPI_Engine ` + Framework +- data is written into memory by a DMA (:ref:`axi_dmac core `) +- all the control pins of the device are driven by GPIOs Block diagram ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -78,21 +80,21 @@ AD7616_SDZ parallel interface Configuration modes ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The SER_PAR_N configuration parameter defines the interface type (Serial or -Parallel). By default it is set to 1. Depending on the required interface mode, +The INTF configuration parameter defines the interface type (Serial or +Parallel). By default it is set to Parallel (0). Depending on the required interface mode, some hardware modifications need to be done on the board and/or make command: In case of the **PARALLEL** interface: .. shell:: bash - $make SER_PAR_N=0 + $make INTF=0 In case of the **SERIAL** interface: .. shell:: bash - $make SER_PAR_N=1 + $make INTF=1 .. note:: @@ -129,7 +131,6 @@ added to the base address from HDL(see more at :ref:`architecture cpu-intercon-a Instance Zynq ======================== =========== axi_ad7616_dma 0x44A3_0000 -spi_clkgen 0x44A7_0000 ad7616_pwm_gen 0x44B0_0000 spi_ad7616_axi_regmap ** 0x44A0_0000 axi_ad7616 * 0x44A8_0000 @@ -138,8 +139,8 @@ axi_ad7616 * 0x44A8_0000 .. admonition:: Legend :class: note - - ``*`` instantiated only for SER_PAR_N=0 (parallel interface) - - ``**`` instantiated only for SER_PAR_N=1 (serial interface) + - ``*`` instantiated only for INTF=0 (parallel interface) + - ``**`` instantiated only for INTF=1 (serial interface) I2C connections ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -231,7 +232,7 @@ The Software GPIO number is calculated as follows: .. admonition:: Legend :class: note - - ``**`` instantiated only for SER_PAR_N=1 (serial interface) + - ``**`` instantiated only for INTF=1 (serial interface) Interrupts ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -249,8 +250,8 @@ axi_ad7616 * 10 54 87 .. admonition:: Legend :class: note - - ``*`` instantiated only for SER_PAR_N=0 (parallel interface) - - ``**`` instantiated only for SER_PAR_N=1 (serial interface) + - ``*`` instantiated only for INTF=0 (parallel interface) + - ``**`` instantiated only for INTF=1 (serial interface) Building the HDL project ------------------------------------------------------------------------------- @@ -268,18 +269,20 @@ the HDL repository, and then build the project as follows:. .. shell:: $cd hdl/projects/ad7616_sdz/zed - $make SER_PAR_N=0 + $make INTF=0 + +The default configuration is Parallel Mode (0). The result of the build, if parameters were used, will be in a folder named by the configuration used: if the following command was run -``make SER_PAR_N=0`` +``make INTF=0`` then the folder name will be: -``SERPARN0`` +``INTF0`` A more comprehensive build guide can be found in the :ref:`build_hdl` user guide. @@ -291,7 +294,7 @@ Connections and hardware changes **The following hardware changes are required:** (**Please note:** Because of the **SDP-I-FMC** the level of the **VADJ** in - the carrier board needs to be set to **3.3V**. + the carrier board needs to be set to **3.3V**.) Depending on the required interface mode, some hardware modifications need to be done. @@ -326,9 +329,6 @@ HDL related * - AXI_AD7616 - :git-hdl:`library/axi_ad7616` * - :ref:`axi_ad7616` - * - AXI_CLKGEN - - :git-hdl:`library/axi_clkgen` - - :ref:`axi_clkgen` * - AXI_DMAC - :git-hdl:`library/axi_dmac` - :ref:`axi_dmac` @@ -364,13 +364,16 @@ HDL related - --- * - SYSID_ROM - :git-hdl:`library/sysid_rom` - - :ref:`axi_sysid` + - :ref:`here ` + * - UTIL_CPACK2 + - :git-hdl:`library/util_pack/util_cpack2` * + - :ref:`here ` .. admonition:: Legend :class: note - - ``*`` instantiated only for SER_PAR_N=0 (parallel interface) - - ``**`` instantiated only for SER_PAR_N=1 (serial interface) + - ``*`` instantiated only for INTF=0 (parallel interface) + - ``**`` instantiated only for INTF=1 (serial interface) - :ref:`SPI Engine Framework documentation `