Skip to content

Commit b525a0d

Browse files
committed
docs/ltc2378: Add documentation
Signed-off-by: Pop Ioan Daniel <[email protected]>
1 parent 7f2b74d commit b525a0d

File tree

3 files changed

+2565
-0
lines changed

3 files changed

+2565
-0
lines changed

docs/projects/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ Contents
9595
FMCOMMS8 <fmcomms8/index>
9696
FMCOMMS11 <fmcomms11/index>
9797
JUPITER-SDR <jupiter_sdr/index>
98+
LTC2378-FMC <ltc2378_fmc/index>
9899
M2K <m2k/index>
99100
MAX96724 <max96724/index>
100101
PLUTO <pluto/index>
Lines changed: 283 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,283 @@
1+
.. _ltc2378_fmc:
2+
3+
LTC2378-FMC HDL project
4+
================================================================================
5+
6+
Overview
7+
--------------------------------------------------------------------------------
8+
9+
The :adi:`LTC2378-20` is a low noise, low power, high speed 20-bit successive
10+
approximation register (SAR) ADC. Operating from a 2.5V supply, the
11+
:adi:`LTC2378-20` has a ±VREF fully differential input range with VREF ranging
12+
from 2.5V to 5.1V. The :adi:`LTC2378-20` consumes only 21mW and achieves ±2ppm
13+
INL maximum, no missing codes at 20 bits with 104dB SNR.
14+
15+
The :adi:`LTC2378-20` has a high speed SPI-compatible serial interface that
16+
supports 1.8V, 2.5V, 3.3V and 5V logic while also featuring a daisy-chain mode.
17+
The fast 1Msps throughput with no cycle latency makes the :adi:`LTC2378-20`
18+
ideally suited for a wide variety of high speed applications. An internal
19+
oscillator sets the conversion time, easing external timing considerations.
20+
The :adi:`LTC2378-20` automatically powers down between conversions, leading to
21+
reduced power dissipation that scales with the sampling rate.
22+
23+
The :adi:`LTC2378-20` features a unique digital gain compression (DGC) function,
24+
which eliminates the driver amplifier's negative supply while preserving the
25+
full resolution of the ADC. When enabled, the ADC performs a digital scaling
26+
function that maps zero-scale code from 0V to 0.1 x VREF and full-scale code
27+
from VREF to 0.9 x VREF. For a typical reference voltage of 5V, the full-scale
28+
input range is now 0.5V to 4.5V, which provides adequate headroom for powering
29+
the driving amplifier from a single 5.5V supply.
30+
31+
Applications:
32+
33+
* Medical Imaging
34+
* High Speed Data Acquisition
35+
* Portable or Compact Instrumentation
36+
* Industrial Process Control
37+
* Low Power Battery-Operated Instrumentation
38+
* ATE
39+
40+
Supported boards
41+
-------------------------------------------------------------------------------
42+
43+
TO BE ADDED
44+
45+
Supported devices
46+
-------------------------------------------------------------------------------
47+
48+
- :adi:`LTC2378-20`
49+
- :adi:`LTC2377-20`
50+
- :adi:`LTC2376-20`
51+
- :adi:`LTC2370-16`
52+
- :adi:`LTC2369-18`
53+
- :adi:`LTC2368-16/18`
54+
- :adi:`LTC2367-16/18`
55+
- :adi:`LTC2364-16/18`
56+
- :adi:`LTC2380-16`
57+
- :adi:`LTC2379-18`
58+
- :adi:`LTC2378-16/18`
59+
- :adi:`LTC2377-16/18`
60+
- :adi:`LTC2376-16/18`
61+
- :adi:`LTC2338-18`
62+
63+
Supported carriers
64+
-------------------------------------------------------------------------------
65+
66+
- :xilinx:`ZedBoard <products/boards-and-kits/1-8dyf-11.html>` on FMC slot
67+
68+
Block design
69+
-------------------------------------------------------------------------------
70+
71+
Block diagram
72+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
73+
74+
The data path and clock domains are depicted in the below diagram:
75+
76+
.. image:: ltc2378_spi_engine_hdl.svg
77+
:width: 800
78+
:align: center
79+
:alt: LTC2378_FMC block diagram
80+
81+
CPU/Memory interconnects addresses
82+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
83+
84+
The addresses are dependent on the architecture of the FPGA, having an offset
85+
added to the base address from HDL (see more at :ref:`architecture cpu-intercon-addr`).
86+
87+
========================= ===========
88+
Instance Zynq
89+
========================= ===========
90+
spi_ltc2378_axi_regmap 0x44A0_0000
91+
ltc2378_dma 0x44A3_0000
92+
spi_clkgen 0x44A7_0000
93+
ltc2378_trigger_gen 0x44B0_0000
94+
========================= ===========
95+
96+
I2C connections
97+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
98+
99+
.. list-table::
100+
:widths: 20 20 20 20 20
101+
:header-rows: 1
102+
103+
* - I2C type
104+
- I2C manager instance
105+
- Alias
106+
- Address
107+
- I2C subordinate
108+
* - PL
109+
- iic_fmc
110+
- axi_iic_fmc
111+
- 0x4162_0000
112+
- ---
113+
* - PL
114+
- iic_main
115+
- axi_iic_main
116+
- 0x4160_0000
117+
- ---
118+
119+
SPI connections
120+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
121+
122+
.. list-table::
123+
:widths: 25 25 25 25
124+
:header-rows: 1
125+
126+
* - SPI type
127+
- SPI manager instance
128+
- SPI subordinate
129+
- CS
130+
* - PL
131+
- axi_spi_engine
132+
- ltc2378
133+
- 0
134+
135+
GPIOs
136+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
137+
138+
The Software GPIO number is calculated as follows:
139+
140+
- Zynq-7000: if PS7 is used, then offset is 54
141+
142+
.. list-table::
143+
:widths: 25 25 25 25
144+
:header-rows: 2
145+
146+
* - GPIO signal
147+
- Direction
148+
- HDL GPIO EMIO
149+
- Software GPIO
150+
* -
151+
- (from FPGA view)
152+
-
153+
- Zynq-7000
154+
* - ltc2378_dcgn
155+
- INOUT
156+
- 33
157+
- 87
158+
* - ltc2378_chain
159+
- INOUT
160+
- 32
161+
- 86
162+
163+
Interrupts
164+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
165+
166+
Below are the Programmable Logic interrupts used in this project.
167+
168+
=================== === ========== ===========
169+
Instance name HDL Linux Zynq Actual Zynq
170+
=================== === ========== ===========
171+
ltc2378_dma 13 57 89
172+
spi_ltc2378 12 56 88
173+
=================== === ========== ===========
174+
175+
Building the HDL project
176+
-------------------------------------------------------------------------------
177+
178+
The design is built upon ADI's generic HDL reference design framework.
179+
ADI distributes the bit/elf files of these projects as part of the
180+
:dokuwiki:`ADI Kuiper Linux <resources/tools-software/linux-software/kuiper-linux>`.
181+
If you want to build the sources, ADI makes them available on the
182+
:git-hdl:`HDL repository </>`. To get the source you must
183+
`clone <https://git-scm.com/book/en/v2/Git-Basics-Getting-a-Git-Repository>`__
184+
the HDL repository, and then build the project as follows:.
185+
186+
**Linux/Cygwin/WSL**
187+
188+
.. shell::
189+
190+
$cd hdl/projects/ltc2378_fmc/zed
191+
$make
192+
193+
A more comprehensive build guide can be found in the :ref:`build_hdl`
194+
user guide.
195+
196+
Resources
197+
-------------------------------------------------------------------------------
198+
199+
Hardware related
200+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
201+
202+
- Product datasheets:
203+
204+
- :adi:`LTC2378-20`
205+
- :adi:`LTC2377-20`
206+
- :adi:`LTC2376-20`
207+
- :adi:`LTC2370-16`
208+
- :adi:`LTC2369-18`
209+
- :adi:`LTC2368-16/18`
210+
- :adi:`LTC2367-16/18`
211+
- :adi:`LTC2364-16/18`
212+
- :adi:`LTC2380-16`
213+
- :adi:`LTC2379-18`
214+
- :adi:`LTC2378-16/18`
215+
- :adi:`LTC2377-16/18`
216+
- :adi:`LTC2376-16/18`
217+
- :adi:`LTC2338-18`
218+
219+
HDL related
220+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
221+
222+
- :git-hdl:`LTC2378_FMC HDL project source code <projects/ltc2378_fmc>`
223+
224+
.. list-table::
225+
:widths: 30 35 35
226+
:header-rows: 1
227+
228+
* - IP name
229+
- Source code link
230+
- Documentation link
231+
* - AD_EDGE_DETECT
232+
- :git-hdl:`library/common/ad_edge_detect.v`
233+
- ---
234+
* - AXI_CLKGEN
235+
- :git-hdl:`library/axi_clkgen`
236+
- :ref:`axi_clkgen`
237+
* - AXI_DMAC
238+
- :git-hdl:`library/axi_dmac`
239+
- :ref:`axi_dmac`
240+
* - AXI_HDMI_TX
241+
- :git-hdl:`library/axi_hdmi_tx`
242+
- :ref:`axi_hdmi_tx`
243+
* - AXI_I2S_ADI
244+
- :git-hdl:`library/axi_i2s_adi`
245+
- ---
246+
* - AXI_PWM_GEN
247+
- :git-hdl:`library/axi_pwm_gen`
248+
- :ref:`axi_pwm_gen`
249+
* - AXI_SPDIF_TX
250+
- :git-hdl:`library/axi_spdif_tx`
251+
- ---
252+
* - AXI_SYSID
253+
- :git-hdl:`library/axi_sysid`
254+
- :ref:`axi_sysid`
255+
* - AXI_SPI_ENGINE
256+
- :git-hdl:`library/spi_engine/axi_spi_engine`
257+
- :ref:`spi_engine axi`
258+
* - SPI_ENGINE_EXECUTION
259+
- :git-hdl:`library/spi_engine/spi_engine_execution`
260+
- :ref:`spi_engine execution`
261+
* - SPI_ENGINE_INTERCONNECT
262+
- :git-hdl:`library/spi_engine/spi_engine_interconnect`
263+
- :ref:`spi_engine interconnect`
264+
* - SPI_ENGINE_OFFLOAD
265+
- :git-hdl:`library/spi_engine/spi_engine_offload`
266+
- :ref:`spi_engine offload`
267+
* - SYSID_ROM
268+
- :git-hdl:`library/sysid_rom`
269+
- :ref:`axi_sysid`
270+
* - UTIL_I2C-MIXER
271+
- :git-hdl:`library/util_i2c_mixer`
272+
- ---
273+
274+
- :ref:`SPI Engine Framework documentation <spi_engine>`
275+
276+
Software related
277+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
278+
279+
TO BE ADDED
280+
281+
.. include:: ../common/more_information.rst
282+
283+
.. include:: ../common/support.rst

0 commit comments

Comments
 (0)