Wiki

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
resources:eval:user-guides:quadmxfe:quickbringup [14 May 2021 16:22] – [MATLAB Control Overview] Chas Frickresources:eval:user-guides:quadmxfe:quickbringup [10 May 2022 16:45] (current) – [Software Needed] Mike Jones
Line 9: Line 9:
     * https://www.digikey.com/products/en?keywords=744-1699-ND     * https://www.digikey.com/products/en?keywords=744-1699-ND
   * 1x FMC+ Extender    * 1x FMC+ Extender 
 +  * 2x 6" MMCX-to-MMCX cables
   * 3x Board Standoffs   * 3x Board Standoffs
   * 4x Fan/Heat Sinks - **<fc #ff0000>Install Prior to First Use Per [[:resources:eval:user-guides:quadmxfe:boardhardwaredetails#thermal_considerations|Fan Installation Directions]]!!!</fc>**   * 4x Fan/Heat Sinks - **<fc #ff0000>Install Prior to First Use Per [[:resources:eval:user-guides:quadmxfe:boardhardwaredetails#thermal_considerations|Fan Installation Directions]]!!!</fc>**
 +
 +**See unboxing video here: [[adi>en/education/education-library/videos/6257116746001.html | Quad MxFE Unboxing Video]]** 
  
 ==== Equipment Included with Calibration Board Kits (ADQUADMXFE-CAL) ==== ==== Equipment Included with Calibration Board Kits (ADQUADMXFE-CAL) ====
Line 17: Line 20:
     * https://www.digikey.com/products/en?keywords=271-3102-ND     * https://www.digikey.com/products/en?keywords=271-3102-ND
     * https://www.digikey.com/products/en?keywords=TL875-ND     * https://www.digikey.com/products/en?keywords=TL875-ND
-  * 2x MMCX-MMCX cables. Used to connect between Quad MxFE Board & Calibration Board+  * 2x 3" MMCX-MMCX cables. Used to connect between Quad MxFE Board & Calibration Board
     * https://www.samtec.com/products/rf316-03sp1-03sp1-0100     * https://www.samtec.com/products/rf316-03sp1-03sp1-0100
 +    * NOTE that will need to purchase an additional 30 of these to interface to the Calibration Board/Quad MxFE board
   * 4x Board Standoffs   * 4x Board Standoffs
   * 1x PMOD ribbon cable   * 1x PMOD ribbon cable
   * 1x Male to male 0.1" 12 pin header for PMOD cable   * 1x Male to male 0.1" 12 pin header for PMOD cable
  
 +**See unboxing video here: [[adi>en/education/education-library/videos/6257116696001.html | Calibration Board Unboxing]]**
 ==== Required Additional Equipment ==== ==== Required Additional Equipment ====
   * 1x 500MHz Reference Oscillator or Waveform Generator   * 1x 500MHz Reference Oscillator or Waveform Generator
Line 51: Line 56:
   * [[resources:eval:user-guides:quadmxfe:quickbringup#iio_oscilloscopelibiio|IIO Oscilloscope / LibIIO]]   * [[resources:eval:user-guides:quadmxfe:quickbringup#iio_oscilloscopelibiio|IIO Oscilloscope / LibIIO]]
     * [[https://github.com/analogdevicesinc/iio-oscilloscope/releases/latest|Latest IIO Oscilloscope release]]     * [[https://github.com/analogdevicesinc/iio-oscilloscope/releases/latest|Latest IIO Oscilloscope release]]
 +    * [[https://github.com/analogdevicesinc/libiio/releases|Latest Libiio release - Look for the '...-Windows-setup.exe']]
   * [[resources:eval:user-guides:quadmxfe:quickbringup#putty|PuTTY]]   * [[resources:eval:user-guides:quadmxfe:quickbringup#putty|PuTTY]]
   * [[resources:eval:user-guides:quadmxfe:quickbringup#xilinx_software_command_line_tool_xsct|Xilinx Vivado Toolchain]]   * [[resources:eval:user-guides:quadmxfe:quickbringup#xilinx_software_command_line_tool_xsct|Xilinx Vivado Toolchain]]
Line 93: Line 99:
  
 xsct% **cd Desktop/Quad_Mxfe_Files** xsct% **cd Desktop/Quad_Mxfe_Files**
-xsct% **source run.vcu118_quad_ad9081_204b_txmode_9_rxmode_10.tcl** +xsct% **source run.vcu118_quad_ad9081_204c_txmode_11_rxmode_4_revc.tcl** 
 </xterm> </xterm>
 ---- ----
  
-==== MATLAB 2019b or 2020a/b (Optional) ====+==== MATLAB 2019b or 2020a (Optional) ==== 
 +<note important>MATLAB 2020a is the primary version that all the code is tested with. MATLAB 2020b IS NOT SUPPORTED</note>
 MATLAB is used to exercise the board through LibIIO objects and provide higher level application functionality. In order to work with the platform, a number of toolboxes and support packages are required: MATLAB is used to exercise the board through LibIIO objects and provide higher level application functionality. In order to work with the platform, a number of toolboxes and support packages are required:
 Required toolboxes: Required toolboxes:
Line 139: Line 146:
   - Open Putty at the correct COM port and baudrate of 115200. See this section to determine the correct COM port [[/resources/eval/user-guides/quadmxfe/quickbringup#putty] | Putty Configuration]]   - Open Putty at the correct COM port and baudrate of 115200. See this section to determine the correct COM port [[/resources/eval/user-guides/quadmxfe/quickbringup#putty] | Putty Configuration]]
   - Open Xilinx Command Line Tool (XSCT). Open it from the Start Menu under Xilinx --> Xilinx Software Commandline Tool. Once the prompt is open, type: <code>cd Desktop\QuadMxFE</code>If the files were unzipped somewhere else, then change directory to that folder.    - Open Xilinx Command Line Tool (XSCT). Open it from the Start Menu under Xilinx --> Xilinx Software Commandline Tool. Once the prompt is open, type: <code>cd Desktop\QuadMxFE</code>If the files were unzipped somewhere else, then change directory to that folder. 
-  - Run the loading script for the particular build by typing the following (example) in XSCT:<code>source run.vcu118_quad_ad9081_204c_txmode_11_rxmode_4.tcl</code>The statement above will launch the programming of the first build, but the others can be run by changing the name of the particular .tcl file to be loaded+  - Run the loading script for the particular build by typing the following (example) in XSCT:<code>source run.vcu118_quad_ad9081_204c_txmode_11_rxmode_4_revc.tcl</code>The statement above will launch the programming of the first build, but the others can be run by changing the name of the particular .tcl file to be loaded
   - Wait for the programming to finish in XSCT. This should show that the tcfchan#1 was closed as the final step. {{ :resources:eval:user-guides:running_fpgaload.png?400 |}}   - Wait for the programming to finish in XSCT. This should show that the tcfchan#1 was closed as the final step. {{ :resources:eval:user-guides:running_fpgaload.png?400 |}}
   - Wait for the build to boot completely by checking the Putty terminal window. The putty window shows the progress of the Linux image booting. Wait for the login prompt as shown at the bottom. {{ :resources:eval:user-guides:putty_quad_mxfe.png?400 |}} This example output is from the Txmode 11 Rxmode 4 image output. At this point, the image is ready to use in MATLAB or additional debug steps can be performed. To log into the image, the username and password are <code>UN: root    - Wait for the build to boot completely by checking the Putty terminal window. The putty window shows the progress of the Linux image booting. Wait for the login prompt as shown at the bottom. {{ :resources:eval:user-guides:putty_quad_mxfe.png?400 |}} This example output is from the Txmode 11 Rxmode 4 image output. At this point, the image is ready to use in MATLAB or additional debug steps can be performed. To log into the image, the username and password are <code>UN: root 
Line 145: Line 152:
   - At this point the FPGA has booted and all of the blue PLL lights should be illuminated. The FPGA is ready to be controlled from MATLAB or from IIO Oscilloscope.    - At this point the FPGA has booted and all of the blue PLL lights should be illuminated. The FPGA is ready to be controlled from MATLAB or from IIO Oscilloscope. 
   - To work in IIO Oscilloscope, open IIO Oscilloscope and use the GUI   - To work in IIO Oscilloscope, open IIO Oscilloscope and use the GUI
-  - To control through MATLAB, open the script that matches the name of the .tcl file that was run in XSCT. Once this script is open, run the script from the top of the MATLAB editor or hit F5 to run the script.+  - To control through MATLAB, Please refer to the following section. There are a number of example scripts that highlight various aspects of the Quad MxFE.
  
 ---- ----
 ==== MATLAB Control Overview ==== ==== MATLAB Control Overview ====
-The Quad-MxFE Platform can be controlled via MATLAB using example scripts which are available as part of the [[mw>matlabcentral/fileexchange/73080-analog-devices-inc-high-speed-converter-toolbox|Analog Devices, Inc. High Speed Converter Toolbox]] add-on. This add-on can either be manually downloaded or downloaded and installed via MATLAB Add-On Explorer. Please ensure you have installed both the Analog Devices, Inc. High Speed Converter Toolbox as well as the Communications Toolbox Support Package for Xilinx Zynq-Based Radio as shown below.+The Quad-MxFE Platform can be controlled via MATLAB using example scripts which are available as part of the [[repo>HighSpeedConverterToolbox|Analog Devices, Inc. High Speed Converter Toolbox]] add-on. This add-on can either be manually downloaded from the Releases section of the GitHub page or downloaded and installed via MATLAB Add-On Explorer. __NOTE: it's recommended to install via the download from GitHub as this is generally more up to date than the MATLAB Add-On Explorer page__ Please ensure you have installed both the Analog Devices, Inc. High Speed Converter Toolbox as well as the Communications Toolbox Support Package for Xilinx Zynq-Based Radio as shown below ([[mw>matlabcentral/fileexchange/48491-communications-toolbox-support-package-for-xilinx-zynq-based-radio | Zynq-Based Radio Toolbox]]).
  
-{{:resources:eval:user-guides:quadmxfe:matlab_addon.png?800| }} +{{ :resources:eval:user-guides:quadmxfe:github.png |}}
-{{:resources:eval:user-guides:quadmxfe:matlab_addon_adi_high_speed_converter_toolbox.png?800| }}+
 {{:resources:eval:user-guides:quadmxfe:matlab_addon_xilinx_zynqbased_radio_communications_toolbox.png?800| }} {{:resources:eval:user-guides:quadmxfe:matlab_addon_xilinx_zynqbased_radio_communications_toolbox.png?800| }}
  
Line 291: Line 297:
   - Analyze and Post-Process Captured Waveforms   - Analyze and Post-Process Captured Waveforms
  
-More information can be found on the Tx and Rx system objects by typing within the MATLAB Command Window ''help adi.QuadMxFE.Tx'' and/or ''help adi.QuadMxFE.Rx'' and then selecting the 'Documentation for adi.QuadMxFE.Tx' hyperlink. NCO frequencies/phases can be changed real-time using the respective Tx or Rx system object. If, at any point, the user tries to load a different buffer size into the Tx waveforms they will need to first ''release(tx)'' and then call ''tx'' once more. Likewise, if a different sized data capture is needed, then first issue a ''release(rx)'' before changing ''rx.SamplesPerFrame''.+More information can be found on the Tx and Rx system objects by typing within the MATLAB Command Window ''help adi.QuadMxFE.Tx'' and/or ''help adi.QuadMxFE.Rx'' and then selecting the 'Documentation for adi.QuadMxFE.Tx' hyperlink. NCO frequencies/phases can be changed real-time using the respective Tx or Rx system object. If, at any point, the user tries to load a different buffer size into the Tx waveforms they will need to first ''release(tx)'' and then call ''tx'' once more. Likewise, if a different sized data capture is needed, then first issue a ''release(rx)'' before changing ''rx.SamplesPerFrame''. Note that users with their own waveform should inject their own waveform data within the tx() call instead of using the sine array as in the example script.
 ---- ----
 === QuadMxFE_SystemAlignmentFIR.m === === QuadMxFE_SystemAlignmentFIR.m ===
Line 347: Line 353:
 **Figure 1**: The [[adi>ADF4371]] PLL/synthesizer calibration results are shown on the top-left two plots, showing the alignment of each zeroth Tx channel on each MxFE in the platform. The two right plots show the time domain data capture after injecting a CW tone into each Tx channel, the corresponding normalized cross-correlation for each Rx channel after calibration, the FFT of that time domain capture, and the combined 16-channel FFT showing the improved noise floor performance.\\  **Figure 1**: The [[adi>ADF4371]] PLL/synthesizer calibration results are shown on the top-left two plots, showing the alignment of each zeroth Tx channel on each MxFE in the platform. The two right plots show the time domain data capture after injecting a CW tone into each Tx channel, the corresponding normalized cross-correlation for each Rx channel after calibration, the FFT of that time domain capture, and the combined 16-channel FFT showing the improved noise floor performance.\\ 
  
-{{:resources:eval:user-guides:quadmxfe:qmxfe_pll_calibration_and_rf_calibration.png?800}}+{{ :resources:eval:user-guides:quadmxfe:mcs_1.jpg |}}
  
 **Figure 2**: The Tx phase-alignment results are shown using the pulsed baseband waveform in which only one Tx channel is output at a time but still uses the same Tx waveform matrix. After combining all the Tx channels however using the 16Tx/16Rx Calibration Board, and then injecting this signal into the first Rx channel of each MxFE (Rx0, Rx4, Rx8, and Rx12), the [[adi>ADF4371]] phases are adjusted to ensure that the pulse phases of Tx0, Tx4, Tx8, and Tx12 are aligned. The top plots show the time response of received pulse trains, whereas the bottom plots show the cross-correlation of these signals with respect to Rx0.\\  **Figure 2**: The Tx phase-alignment results are shown using the pulsed baseband waveform in which only one Tx channel is output at a time but still uses the same Tx waveform matrix. After combining all the Tx channels however using the 16Tx/16Rx Calibration Board, and then injecting this signal into the first Rx channel of each MxFE (Rx0, Rx4, Rx8, and Rx12), the [[adi>ADF4371]] phases are adjusted to ensure that the pulse phases of Tx0, Tx4, Tx8, and Tx12 are aligned. The top plots show the time response of received pulse trains, whereas the bottom plots show the cross-correlation of these signals with respect to Rx0.\\ 
  
-{{:resources:eval:user-guides:quadmxfe:tx_pulse_phase_alignment_mcs.png?800|}}+{{ :resources:eval:user-guides:quadmxfe:mcs_2.jpg |}}
  
 **Figure 3**: If attached, Figure 3 shows the 16Tx/16Rx Calibration Board's adjacent loopback performance.\\  **Figure 3**: If attached, Figure 3 shows the 16Tx/16Rx Calibration Board's adjacent loopback performance.\\ 
Line 357: Line 363:
 **Figure 4**: A full I/Q band chirp signal is injected into each Tx channel and a corresponding data capture is performed. Then a single-frequency CW signal is injected into each Tx channel and a corresponding data capture is performed. The left side of the figure shows the individual time domain and frequency domain results, as well as the combined Rx performance. The right side shows similar results for the single-frequency CW signal.\\  **Figure 4**: A full I/Q band chirp signal is injected into each Tx channel and a corresponding data capture is performed. Then a single-frequency CW signal is injected into each Tx channel and a corresponding data capture is performed. The left side of the figure shows the individual time domain and frequency domain results, as well as the combined Rx performance. The right side shows similar results for the single-frequency CW signal.\\ 
  
-{{:resources:eval:user-guides:quadmxfe:combined_rx_improvements_quadmxfe_mcs.png?800}}+{{ :resources:eval:user-guides:quadmxfe:mcs_3.jpg |}}
  
 **Figure 5**: The MCS results from running the script are shown. The left-most plot shows the comparison between the new (solid dots) and baseline (open circles) Rx NCO phase offsets. The second-from-the-left plot shows the comparison between the new (solid dots) and baseline (open circles) Tx NCO phase offsets. If MCS is functioning as expected the solid dots should be inside the open circles. The second-from-the-right plot shows the phase adjustment applied to each [[adi>ADF4371]] PLL/synthesizer IC on the system and the corresponding thermal gradients measured for each MxFE and PLL chip. The right-most plot shows the SYSREF phase stability at different portions of the script's execution.\\  **Figure 5**: The MCS results from running the script are shown. The left-most plot shows the comparison between the new (solid dots) and baseline (open circles) Rx NCO phase offsets. The second-from-the-left plot shows the comparison between the new (solid dots) and baseline (open circles) Tx NCO phase offsets. If MCS is functioning as expected the solid dots should be inside the open circles. The second-from-the-right plot shows the phase adjustment applied to each [[adi>ADF4371]] PLL/synthesizer IC on the system and the corresponding thermal gradients measured for each MxFE and PLL chip. The right-most plot shows the SYSREF phase stability at different portions of the script's execution.\\ 
  
-{{:resources:eval:user-guides:quadmxfe:quadmxfe_mcs_comparison.png?800|}}+{{ :resources:eval:user-guides:quadmxfe:mcs_4.jpg|}}
 ---- ----
  
resources/eval/user-guides/quadmxfe/quickbringup.1621002162.txt.gz · Last modified: 14 May 2021 16:22 by Chas Frick