Skip to content

Commit ab9d192

Browse files
ranechitabuha
authored andcommitted
projects: ad9081: add README for ad9081 project
Added documentation for the AD9081 project, specifying the various build modes and documenting the latest updates of the source code as well. Signed-off-by: Ramona Alexandra Nechita <ramona.nechita@analog.com>
1 parent ab4716c commit ab9d192

File tree

3 files changed

+257
-0
lines changed

3 files changed

+257
-0
lines changed

doc/sphinx/source/projects/ad9081.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.. include:: ../../../../projects/ad9081/README.rst

doc/sphinx/source/projects_doc.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ ANALOG TO DIGITAL CONVERTERS
2525

2626
projects/ad9467
2727

28+
projects/ad9081
29+
2830
ADC / DAC
2931
==========
3032
.. toctree::

projects/ad9081/README.rst

Lines changed: 254 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,254 @@
1+
ad9081 no-OS Example Project
2+
============================
3+
4+
.. no-os-doxygen::
5+
6+
Supported Evaluation Boards
7+
---------------------------
8+
9+
* `EVAL-AD9081 <https://www.analog.com/en/resources/evaluation-hardware-and-software/evaluation-boards-kits/eval-ad9081.html>`_
10+
* `Quad MxFE <https://www.analog.com/en/resources/evaluation-hardware-and-software/evaluation-boards-kits/quad-mxfe.html>`_
11+
12+
Supported Carriers
13+
------------------
14+
15+
.. list-table::
16+
:widths: 35 35 30
17+
:header-rows: 1
18+
19+
* - Evaluation board
20+
- Carrier
21+
- FMC slot
22+
* - `AD9081-FMCA-EBZ <https://www.analog.com/en/resources/evaluation-hardware-and-software/evaluation-boards-kits/eval-ad9081.html>`_
23+
- `VCK190 <https://www.xilinx.com/VCK190>`_
24+
- FMC0
25+
* -
26+
- `VCU118 <https://www.xilinx.com/VCU118>`_
27+
- FMC+
28+
* -
29+
- `VCU128 <https://www.xilinx.com/VCU128>`_
30+
- FMC+
31+
* -
32+
- `ZCU102 <https://www.xilinx.com/ZCU102>`_
33+
- FMC HPC0
34+
* -
35+
- `ZC706 <https://www.xilinx.com/ZC706>`_
36+
- FMC HPC
37+
38+
.. list-table::
39+
:widths: 35 35 30
40+
:header-rows: 1
41+
42+
* - Evaluation board
43+
- Carrier
44+
- FMC slot
45+
* - `QUAD-MXFE <https://www.analog.com/en/resources/evaluation-hardware-and-software/evaluation-boards-kits/quad-mxfe.html>`_
46+
- `VCU118 <https://www.xilinx.com/VCU118>`_
47+
- FMC+
48+
49+
Overview
50+
--------
51+
52+
The AD9081 is a highly integrated, multi-channel mixed-signal front-end (MxFE™)
53+
device designed to deliver a complete radio solution for a wide range of applications,
54+
including 5G wireless infrastructure, broadband communication, and defense electronics.
55+
It combines multiple high-speed ADCs and DACs, a digital up-converter (DUC) and
56+
digital down-converter (DDC), and integrated digital signal processing (DSP) blocks.
57+
58+
The Quad-MxFE System Development Platform contains four MxFE™ software defined,
59+
direct RF sampling transceivers, as well as associated RF front-ends, clocking,
60+
and power circuitry. The target application is phased array radars, electronic
61+
warfare, and ground-based SATCOM, specifically a 16 transmit/16 receive channel
62+
direct sampling phased array at L/S/C band (0.1 GHz to ~5GHz). The Rx & Tx RF
63+
front-end has drop-in configurations that allow for customized frequency ranges,
64+
depending on the user’s application.
65+
66+
Prerequisites
67+
-------------
68+
69+
Prior to building the project, the environment for the development of Xilinx
70+
projects must be set up. These are presented in the *Build Prerequisites*
71+
section of no-OS build guide available :dokuwiki:`here <resources/no-os/build>`.
72+
73+
Reference Input Requirements
74+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
75+
76+
For the AD9081-EVALZ, the board can either use an external clock source or the
77+
internal one.
78+
79+
.. note::
80+
The following rework is required:
81+
- In order to avoid using an external clock source and fully rely on the
82+
HMC7044 clock chip, rotate the C6D/C4D caps in C5D/C3D position
83+
(Please note: In the latest version of the board, this is now the default
84+
configuration, so this configuration step might not be needed anymore)
85+
- If LEDS V1P0_LED and VINT_LED are not on please depopulate R22M and populate R2M
86+
87+
For the Quad-MxFE, an additional 500MHz Reference Oscillator or Waveform Generator
88+
is required.
89+
90+
Building and Running the Project
91+
--------------------------------
92+
93+
The steps indicated have to be followed for building the project, for debugging,
94+
and running.
95+
96+
#. Open a terminal and navigate to this project directory (if building on
97+
Windows, `Git Bash` has to be used).
98+
#. Make sure that the environment is set up for building Xilinx projects.
99+
#. Make sure you have copied the corresponding `system_top.xsa` file of your project to the
100+
`projects/ad9081/` directory, because it is necessary for the build process.
101+
#. Make sure that the `Makefile` is configured correctly for your platform.
102+
The default configuration is for the `AD9081-FMCA-EBZ` evaluation board, with
103+
the profile specified in profiles/vcu118_ad9081_m8_l4/app_config.h:
104+
.. code-block:: bash
105+
106+
JESD_MODE=8B10B \ #JESD204B, subclass 1
107+
TX_MODE=9 \
108+
RX_MODE=10 \
109+
RX_LANE_RATE_KHZ=10000000 \
110+
TX_LANE_RATE_KHZ=10000000 \
111+
RX_JESD_M=8 \
112+
RX_JESD_L=4 \
113+
RX_JESD_F=4 \
114+
RX_JESD_K=32 \
115+
RX_JESD_S=1 \
116+
RX_JESD_NP=16 \
117+
RX_NUM_LINKS=1 \
118+
TX_JESD_M=8 \
119+
TX_JESD_L=4 \
120+
TX_JESD_F=4 \
121+
TX_JESD_K=32 \
122+
TX_JESD_S=1 \
123+
TX_JESD_NP=16 \
124+
TX_NUM_LINKS=1 \
125+
126+
#. If you want to use the `Quad-MxFE` you can do so with one of the available
127+
profiles in the `profiles` directory, or you can create your own profile
128+
by copying one of the existing ones and modifying it. To build the project
129+
this way you can run the following command:
130+
131+
.. code-block:: bash
132+
133+
make -j QUAD_MXFE=y PROFILE=vcu118_quad_ad9081_204b_txmode_9_rxmode_10_revc
134+
#. Otherwise, type ``make -j`` in order to build the project.
135+
136+
A successful build should end with the following terminal output:
137+
138+
.. code-block:: bash
139+
140+
[14:15:11] Creating archive with files
141+
text data bss dec hex filename
142+
240676 2092 1057008 1299776 13d540 /home/ramona/workspace/no-OS/projects/ad9081/build/ad9081.elf
143+
[14:14:38] Done (build/ad9081.elf)
144+
145+
Available profiles:
146+
* vcu118_ad9081_m8_l4 - default profile
147+
* vcu118_quad_ad9081_204b_txmode_9_rxmode_10_revc - Quad-MxFE profile
148+
.. code-block:: bash
149+
150+
JESD_MODE=8B10B \ #JESD204B, subclass 1
151+
TX_MODE=9 \
152+
RX_MODE=10 \
153+
RX_LANE_RATE_KHZ=10000000 \
154+
TX_LANE_RATE_KHZ=10000000 \
155+
RX_JESD_M=8 \
156+
RX_JESD_L=4 \
157+
RX_JESD_F=4 \
158+
RX_JESD_K=32 \
159+
RX_JESD_S=1 \
160+
RX_JESD_NP=16 \
161+
RX_NUM_LINKS=4 \
162+
TX_JESD_M=8 \
163+
TX_JESD_L=4 \
164+
TX_JESD_F=4 \
165+
TX_JESD_K=32 \
166+
TX_JESD_S=1 \
167+
TX_JESD_NP=16 \
168+
TX_NUM_LINKS=4 \
169+
* vcu118_quad_ad9081_204c_txmode_11_rxmode_4_revc - Quad-MxFE profile
170+
.. code-block:: bash
171+
172+
JESD_MODE=64B66B \ #JESD204C, subclass 1
173+
TX_MODE=11 \
174+
RX_MODE=4 \
175+
RX_LANE_RATE_KHZ=16500000 \
176+
TX_LANE_RATE_KHZ=16500000 \
177+
RX_JESD_M=8 \
178+
RX_JESD_L=2 \
179+
RX_JESD_F=8 \
180+
RX_JESD_K=32 \
181+
RX_JESD_S=1 \
182+
RX_JESD_NP=16 \
183+
RX_NUM_LINKS=4 \
184+
TX_JESD_M=16 \
185+
TX_JESD_L=4 \
186+
TX_JESD_F=8 \
187+
TX_JESD_K=32 \
188+
TX_JESD_S=1 \
189+
TX_JESD_NP=16 \
190+
TX_NUM_LINKS=4 \
191+
192+
These profiles correspond some of the possible HDL configurations. For creating
193+
a profile for your specific project needs, please visit
194+
:git-hdl:`QUAD-MxFE hdl <projects/ad_quadmxfe1_ebz>` or
195+
:git-hdl:`QUAD-MxFE hdl <projects/ad9081_fmca_ebz>`
196+
documentation files for your platform, as well as `the AD9081 user guide <https://www.analog.com/media/en/technical-documentation/user-guides/ad9081-ad9082-ug-1578.pdf>`
197+
198+
Fore more details about the available make rules, check out
199+
:dokuwiki:`this page <resources/no-os/make>`.
200+
201+
.. note::
202+
The QUAD-MXFE project is configured for rev C boards, in case of older revisions,
203+
please check out older releases.
204+
205+
Running the Project
206+
-------------------
207+
Once the project is built, you can run it on your target platform. You can either
208+
run using Vitis or by using the command line:
209+
... code-block:: bash
210+
211+
make run
212+
213+
No-OS Supported Examples
214+
------------------------
215+
216+
The various example modes can be selected via Makefile, or when running the make
217+
command while buidling the project
218+
219+
.. code-block:: bash
220+
221+
# Select the example you want to enable by choosing y for enabling and n for disabling
222+
IIOD ?= n
223+
QUAD_MXFE = n
224+
225+
# Uncomment to select the profile:
226+
#PROFILE = vcu118_quad_ad9081_204c_txmode_11_rxmode_4_revc
227+
#PROFILE = vcu118_quad_ad9081_204b_txmode_9_rxmode_10_revc
228+
PROFILE = vcu118_ad9081_m8_l4
229+
230+
or
231+
.. code-block:: bash
232+
233+
make run IIOD=y QUAD_MXFE=y PROFILE=vcu118_quad_ad9081_204b_txmode_9_rxmode_10_revc
234+
235+
AD9081 example
236+
^^^^^^^^^^^^^^
237+
The AD9081 example is a simple application that initializes the AD9081 device,
238+
in case IIOD is enabled, it will also configure the IIO interface and you can
239+
use `libiio <https://wiki.analog.com/resources/tools-software/linux-software/libiio>`_ command line tools / `IIO-Oscilloscope <https://github.com/analogdevicesinc/iio-oscilloscope/releases>`_ / `Scopy2 v2 <https://github.com/analogdevicesinc/scopy/releases/tag/v2.0.0>`_ to control the device.
240+
241+
QUAD-MXFE example
242+
^^^^^^^^^^^^^^^^^
243+
In this example all four AD9081 devices are initialized and configured, in order
244+
to be able to fully use the eval board.
245+
246+
.. important::
247+
248+
The QUAD-MXFE project is configured for rev C boards and later, which implies
249+
the use of specific HMC7043 channels (as opposed to the rev B boards), along
250+
with some specific pin configurations for AD9081.
251+
252+
Just like in the case of single MxFE, if IIOD is enabled, it will also provide
253+
the iio support so that the board can be used with any of the ADI iio tools:
254+
`libiio <https://wiki.analog.com/resources/tools-software/linux-software/libiio>`_ command line tools / `IIO-Oscilloscope <https://github.com/analogdevicesinc/iio-oscilloscope/releases>`_ / `Scopy v2 <https://github.com/analogdevicesinc/scopy/releases/tag/v2.0.0>`_ to control the device.

0 commit comments

Comments
 (0)