46
i R R a a d d i i o o 4 4 2 2 0 0 X X Perseus Examples November 2014

Perseus Examples Radio420

Embed Size (px)

DESCRIPTION

Perseus Examples Radio420

Citation preview

  • i

    RRaaddiioo442200XX

    PPeerrsseeuuss EExxaammpplleess

    NNoovveemmbbeerr 22001144

  • ii

    Revision History

    Revision Date Comments

    1.0 December 2012 First released revision

    1.1 February 2013 Page layout and linguistic revision

    1.2 February 2013 Section change

    1.3 March 2013 Added Linux examples

    1.4 March 2013 Modifications following comments from Support

    1.5 June 2013 Added MIMO 4x4 Gigabit Ethernet support and PCI Express Record/Playback and streaming examples

    1.6 September 2013 Merge Linux and Windows example and simplified example

    1.7 June 2014 Added PicoSDR setup section

    1.8 November 2014 Added sudo prefix to Linux shell calls

    Up to date for Software Tools Release 6.6

  • iii

    Table of Contents

    1 Radio420 Loopback Example (BSP) ................................................................................... 1 1.1 Requirements................................................................................................................................................ 2

    1.1.1 Software requirements ...................................................................................................................... 2 1.1.2 Hardware requirements .................................................................................................................... 2

    1.2 Setup ............................................................................................................................................................. 3 1.2.1 Setup for execution on a PicoSDR ..................................................................................................... 3 1.2.2 Setup for execution in a MicroTCA chassis ........................................................................................ 4 1.2.3 Signal generator setup ....................................................................................................................... 4

    1.3 Procedure ..................................................................................................................................................... 4 1.4 Expected Results with the Stand-Alone Application ..................................................................................... 9 1.5 Clock disciplining with PPS Sync module .................................................................................................... 10 1.6 Executing the Calibration ............................................................................................................................ 11 1.7 Modifying the Example ............................................................................................................................... 11

    2 Radio420 RTDEx Record/Playback Example (BSDK) for Windows 7 (64 Bits) and Linux (32 and 64 Bits) on Gigabit Ethernet and PCI Express ........................................................... 14 2.1 Pass-through test ........................................................................................................................................ 15 2.2 DDS test ...................................................................................................................................................... 15 2.3 Record test .................................................................................................................................................. 16 2.4 Playback test ............................................................................................................................................... 16 2.5 Streaming to host test ................................................................................................................................ 16 2.6 Streaming from host test ............................................................................................................................ 16 2.7 Requirements.............................................................................................................................................. 17

    2.7.1 Software requirements .................................................................................................................... 17 2.7.2 Hardware requirements .................................................................................................................. 17

    2.8 Setup ........................................................................................................................................................... 18 2.8.1 Setup for execution on a PicoSDR on an external PC ...................................................................... 18 2.8.2 Setup for execution on a PicoSDR on its embedded PC .................................................................. 19 2.8.3 Setup for execution in a MicroTCA chassis ...................................................................................... 20 2.8.4 Setup for execution in a MicroTCA chassis on an embedded PC .................................................... 21 2.8.5 Setup for execution of MIMO 4x4 example on a PicoSDR4x4 ......................................................... 21 2.8.6 Signal generator setup ..................................................................................................................... 22

    2.9 Generating the FPGA configuration file ...................................................................................................... 22 2.10 PCI Express link validation .......................................................................................................................... 22 2.11 Procedure with Visual Studio on Windows ................................................................................................. 22 2.12 Procedure with Makefile on Linux .............................................................................................................. 24 2.13 Procedure with the Nutaq Command-Line Interface on Windows ............................................................ 25 2.14 Procedure with the Nutaq Command-Line Interface on Linux ................................................................... 26 2.15 Expected Results with Visual Studio and Makefile ..................................................................................... 27

    2.15.1 PPS Sync results ............................................................................................................................... 30 2.15.2 Calibration results ............................................................................................................................ 31 2.15.3 Pass-through results ........................................................................................................................ 32 2.15.4 DDS results ....................................................................................................................................... 32 2.15.5 Record results .................................................................................................................................. 33 2.15.6 Playback results ............................................................................................................................... 34 2.15.7 Streaming to host results................................................................................................................. 34

  • iv

    2.15.8 Streaming from host results ............................................................................................................ 37 2.16 Expected Results with Nutaq's Command Line Interface ........................................................................... 39

    2.16.1 Record results .................................................................................................................................. 39 2.16.2 Playback results ............................................................................................................................... 39 2.16.3 RF calibration results ....................................................................................................................... 40 2.16.4 PPS Sync results ............................................................................................................................... 40

  • v

    List of Figures

    Figure 1-1 Radio420X loopback example diagram ........................................................................................................ 1 Figure 1-2 PicoSDR with an external PC ......................................................................................................................... 3 Figure 1-3 Perseus in a MicroTCA chassis, with an external PC ..................................................................................... 4 Figure 1-4 Workspace Launcher dialog box .................................................................................................................. 5 Figure 1-5 Project Explorer tab ..................................................................................................................................... 5 Figure 1-6 Xilinx Board Support Package dialog box ..................................................................................................... 5 Figure 1-7 Import Projects dialog box ........................................................................................................................... 6 Figure 1-8 Acquisition Project menu ............................................................................................................................. 7 Figure 1-9 Program FPGA dialog box ............................................................................................................................ 7 Figure 1-10 Debug Configurations dialog box ............................................................................................................... 8 Figure 1-11 ChipScope Pro window .............................................................................................................................. 9 Figure 1-12 Sample acquisition ................................................................................................................................... 10 Figure 2-1 Radio420X record/playback diagram ......................................................................................................... 14 Figure 2-2 Radio420X RTDEx streaming diagram ........................................................................................................ 15 Figure 2-3 PicoSDR with an external PC ....................................................................................................................... 18 Figure 2-4 PicoSDR with an its embedded PC .............................................................................................................. 19 Figure 2-5 Perseus in a MicroTCA chassis, with an external PC ................................................................................... 20 Figure 2-6 Perseus in a MicroTCA chassis, with an external PC ................................................................................... 21 Figure 2-7 Perseus in a MicroTCA chassis, with an external PC ................................................................................... 21 Figure 2-8: Example start ............................................................................................................................................. 27 Figure 2-9: SISO radio initialization .............................................................................................................................. 27 Figure 2-10: MIMO initialization .................................................................................................................................. 28 Figure 2-11: MIMO 4x4 Initialialization ....................................................................................................................... 29 Figure 2-12: PPS Sync failure ....................................................................................................................................... 30 Figure 2-13: PPS Sync success ...................................................................................................................................... 30 Figure 2-14: SISO calibration results ............................................................................................................................ 31 Figure 2-15: MIMO calibration results ......................................................................................................................... 31 Figure 2-16: MIMO 4x4 Calibration results .................................................................................................................. 31 Figure 2-17: Pass-through expected results ................................................................................................................ 32 Figure 2-18: DDS expected results ............................................................................................................................... 32 Figure 2-19: Record expected results .......................................................................................................................... 33 Figure 2-20: Matlab plot for record test ...................................................................................................................... 33 Figure 2-21: Playback expected results ....................................................................................................................... 34 Figure 2-22: Streaming to host SISO expected results ................................................................................................. 34 Figure 2-23: Streaming to host MIMO expected results.............................................................................................. 34 Figure 2-24: Streaming to host MIMO 4x4 expected results ....................................................................................... 35 Figure 2-25: Streaming to host stats ............................................................................................................................ 35 Figure 2-26: Matlab plot for streaming to host test .................................................................................................... 36 Figure 2-27: Streaming from host SISO expected results ............................................................................................ 37 Figure 2-28: Streaming from host MIMO expected results ......................................................................................... 37 Figure 2-29: Streaming from host MIMO 4x4 expected results .................................................................................. 37 Figure 2-30: Streaming from host stats ....................................................................................................................... 38 Figure 2-31 CLI record expected results ..................................................................................................................... 39 Figure 2-32 CLI playback expected results .................................................................................................................. 39 Figure 2-33 CLI RF calibrate expected results ............................................................................................................. 40 Figure 2-34: CLI PPS Sync expected results .................................................................................................................. 40

  • vi

  • Radio420Perseus Examples

    1

    1 Radio420 Loopback Example (BSP)

    This example aims to illustrate how to interface the Perseus with the Radio420X FMC. It demonstrates an RF loopback performed at various frequencies, viewing the TX and RX data signals in ChipScope Pro. The example handles either a SISO configuration (Radio420s) or a MIMO configuration (Radio420m).

    Custom Register 1 selects the operating mode of LimeDataMux. When 0, the ADC data is sent back to the DAC, when 1, the DDS 1 output data is sent to the DAC and finally when 4, the sum of DDS1 and DDS2 outputs is sent to the DAC.

    Custom Register 0 and Custom Register 2 must be used to set DDS frequencies.

    ChipScope Wrapper is used to demultiplex ADC and DAC IQ data. The generated ChipScope user clock is half the rate of the radio design clock and is used to display I and Q data on different ChipScope channels.

    FMC 1

    FMC 2

    Chipscope

    ADC I

    ADC Q

    DAC I

    DAC Q

    UserClkRadio420 FMC 1

    ADC

    DAC

    IQSel

    IQSel

    Data

    Data

    DesignClkOutput

    ChipscopeChipscope

    Wrapper

    ADC I

    ADC Q

    DAC I

    DAC Q

    UserClkRadio420 FMC 2

    ADC

    DAC

    IQSel

    IQSel

    Data

    Data

    DesignClkInput

    Chipscope

    Wrapper

    LimeDataMux

    DDS frequency 1

    DDS frequency 2

    Mux selector

    Clk

    ADC data

    ADC IQSel

    DAC data

    DAC IQSel

    Custom

    Register 1

    Custom

    Register 2

    Custom

    Register 0

    LimeDataMux

    DDS frequency 1

    DDS frequency 2

    Mux selector

    Clk

    ADC data

    ADC IQSel

    DAC data

    DAC IQSel

    Legend :

    Chipscope User Clk

    Signals on Chipscope User Clk

    Signals on Axi Clk

    Radio Design Clk

    Signals on Radio Design Clk

    Figure 1-1 Radio420X loopback example diagram

  • 2

    1.1 Requirements

    1.1.1 Software requirements

    These are the software requirements to compile and run the example.

    Windows example

    Xilinxs Platform Studio 13.4

    ADP Software Tools TCA edition

    1.1.2 Hardware requirements

    These are the hardware requirements to run the examples depending on the setup used.

    PicoSDR Perseus in a TCA chassis SISO

    Perseus in a TCA chassis MIMO

    1 PicoSDR (any version)

    1 FPGA JTAG pod

    2 MMCX to SMA or MMCX to BNC cables

    1 MMCX to MMCX cable

    1 spectrum analyzer of up to 3.8 GHz

    1 signal generator of up to 3.8 GHz

    1 PC running Xilinx Platform Studio and handling the JTAG connection

    1 Perseus

    1 Radio420s

    1 MicroTCA chassis with its TCA Carrier Hub (MCH)

    2 MMCX to SMA or MMCX to BNC cables

    1 FPGA JTAG pod

    1 PC running Xilinx Platform Studio and handling the JTAG connection

    1 spectrum analyzer of up to 3.8 GHz

    1 signal generator of up to 3.8 GHz

    1 Perseus

    1 Radio420m

    1 MicroTCA chassis with its TCA Carrier Hub (MCH)

    2 MMCX to SMA or MMCX to BNC cables

    1 MMCX to MMCX cable

    1 PC running Xilinx Platform Studio and handling the JTAG connection

    1 spectrum analyzer of up to 3.8 GHz

    1 signal generator of up to 3.8 GHz

    Setup to run the example Setup to run the example Setup to run the example

  • 3

    1.2 Setup

    1.2.1 Setup for execution on a PicoSDR

    PicoDigitizer

    JTAG

    Radio420

    2

    Signal

    Generator

    MMCX to SMA (RX)

    MMCX to SMA (TX) Spectrum

    analyzer

    MMCX to SMA (TX)

    MMCX to SMA (RX)Radio420

    1

    Rout

    Rin

    Figure 1-2 PicoSDR with an external PC

    The following procedure must be performed to execute the examples on a PicoSDR system with an external PC.

    To set up the example:

    1. Connect the FPGA JTAG pod to the computer and then the PicoSDR back panel.

    Refer to the PicoSDR Users Guide documents for details about performing this operation.

  • 4

    1.2.2 Setup for execution in a MicroTCA chassis

    Chassis

    Perseus

    MCH

    JTAGSignal

    Generator

    MMCX to SMA (TX) Spectrum

    analyzer

    MMCX to SMA (RX)Radio420

    1

    SISO

    configuration

    Chassis

    Perseus

    MCH

    JTAG

    Radio420

    2

    Signal

    Generator

    MMCX to SMA (RX)

    MMCX to SMA (TX) Spectrum

    analyzer

    MMCX to SMA (TX)

    MMCX to SMA (RX)Radio420

    1

    Rout

    Rin

    MIMO

    configuration

    Figure 1-3 Perseus in a MicroTCA chassis, with an external PC

    1. If not already done, install the Radio420 card on the Perseus.

    2. If not already done, connect the FPGA JTAG pod to the computer and then to the Perseus.

    Refer to the FPGA JTAG pod documentation for details about performing this operation.

    3. If not already done, insert the Perseus into the TCA chassis.

    1.2.3 Signal generator setup

    To setup the example:

    1. Connect a MMCX to SMA (or MMCX to BNC) cable between the FMCRadio RX connector and the signal generator.

    2. Connect a MMCX to SMA (or MMCX to BNC) cable between the FMCRadio TX connector and the spectrum analyzer.

    3. If in MIMO configuration, connect the MMCX to MMCX cable between the Radio #1 FMC Rout connector and the Radio #2 FMC Rin connector.

    This allows the two cards to use the same clock reference.

    4. Turn on the TCA chassis or the PicoSDR.

    1.3 Procedure

    To perform the test:

    1. Open the Platform Studio project file in the ..\perseus6010_radio420x_loopback\edk\ folder.

    2. In Platform Studio, on the Project menu, click Project Options. Under General tab select your Target Device matching your Perseus.

    3. In Platform Studio, on the Hardware menu, click Generate Bitstream.

    4. On the Project menu, click Export Hardware Design to SDK.

    5. In the Export to SDK/Launch SDK dialog box, click Export & Launch SDK.

    6. In the Workspace Launcher dialog box, next to Workspace, click the Browse button and select [ADPROOT]\\examples_perseus6010\perseus6010_radio420x_loopback\sdk\workspace.

  • 5

    Figure 1-4 Workspace Launcher dialog box

    7. Click OK.

    8. In Xilinx SDK, on the Project Explorer tab, there should be a hardware platform specification project named edk_hw_platform.

    Figure 1-5 Project Explorer tab

    9. In the Xilinx SDK main window, on the File menu click New and click Xilinx Board Support Package.

    10. In the Project name box, type the name of the new board support package:

    For example, radio420_bsp.

    11. In the Hardware Platform list, make sure that the radio420 hardware platform is selected.

    Figure 1-6 Xilinx Board Support Package dialog box

    12. Click Finish to create the board support package.

    13. In the Board Support Package Settings dialog box, click OK for now to close the settings.

    14. Verify that the BSP has built successfully.

  • 6

    15. In Xilinx SDK, on the File menu, click Import.

    16. In the Import dialog box, in the list, click the General folder, and click Existing Projects into Workspace.

    17. Click Next.

    18. Select Select root directory and click the Browse button.

    19. In the Browse for Folder dialog box, select [ADPROOT]\examples_perseus6010\perseus6010_radio420x_loopback \sdk\workspace and click OK.

    Figure 1-7 Import Projects dialog box

    20. Under Projects, make sure that the FMCRadioInit project is selected.

    21. Click Finish.

    The elf file is generated automatically.

    At this point it is possible the build fails.

    If so, on the Project Explorer tab, right-click the FmcRadioInit project and select Change Referenced BSP. Select your Xilinx Board Support Package as the reference. The FMCRadioInit project will rebuild.

  • 7

    Figure 1-8 Acquisition Project menu

    22. The following success message should be displayed in the console window:

    ELF file: FMCRadioInit.elf

    elfcheck passed.

    Finished building: FMCRadioInit.elf.elfcheck

    23. By default, the example application configures the Radio420X acquisition clock at 40 MHz and the RF carrier clock at 943 MHz and 953 MHz for reception and transmission.

    24. Start the Perseus card.

    25. In the Xilinx main window, on the Tools menu, click Program FPGA.

    26. In the Program FPGA dialog box, click the Program button.

    Figure 1-9 Program FPGA dialog box

    27. In the main window, in the Project Explorer pane, right-click FMCRadioInit .elf [microblaze/be] (under FMCRadioInit> Binaries).

    28. On the contextual menu, point to Debug as and click Debug configurations.

    29. In the Debug Configurations dialog box, in the left pane, double-click Xilinx C/C++ ELF.

  • 8

    Figure 1-10 Debug Configurations dialog box

    30. In the right pane, click the STDIO Connection tab.

    31. Select the Connect STDIO to Console check box.

    32. In the Port list, select JTAG UART and click Apply.

    33. Click the Debug button.

    The elf file is downloaded automatically.

    34. If the Confirm Perspective Switch dialog box opens, select the Remember my decision check box and click Yes.

  • 9

    35. In the main window, on the Run menu, click Resume.

    In the Console, the following message should appear.

    Radio420s standalone SISO test

    Bottom FMC: Radio420 AXI FPGA core is present

    Bottom FMC: Radio420 set as REV D...

    Bottom Radio420 setup:

    Resetting Hardware

    Configuring PLL

    - Reference frequency: 30720000 Hz

    - Acquisition frequency: 40000000 Hz

    - Lime frequency: 30720000 Hz

    PLL is locked

    Configuring Gain

    Configuring Lime PLL

    - RX Carrier Frequency: 943 MHz

    - TX Carrier Frequency: 953 MHz

    - Low band is used

    Configuration done!

    Do you want to perform Radio clock disciplining with PPS Sync module? A GPS Pulse-per-

    second signal must be connected to the PPS in connector on the Radio420 front panel

    1.4 Expected Results with the Stand-Alone Application

    To get the expected results:

    1. Start ChipScope Pro.

    Figure 1-11 ChipScope Pro window

    2. In the top left corner of the screen, click Open Cable/Search JTAG chain and click OK.

    3. On the File menu, click Open Project.

    4. When ChipScope Pro prompts you to save the existing project, click No.

    5. Browse to the ChipScope Pro project file in the \perseus6010_radio420x_loopback\chipscope folder, select radio420m_loopback.cpj (for MIMO) or radio420s_loopback.cpj (for SISO), and click Open.

    6. Connect a signal generator to the RX connector, at 944 MHz and 0 dBm.

    7. Connect the TX connector to a spectrum analyzer.

    8. The spectrum analyzer should display a tone at 954 MHz (953 MHz LO + 1 MHz DDS).

    9. Click the Trigger Now and Display the Buffered Samples button (the T! button).

  • 10

    Alternately, on the Trigger Setup menu, click Trigger Immediate. Chipscope triggers the acquisition of samples and displays them in the bus plot.

    Figure 1-12 Sample acquisition

    The Chipscope window should display a 1MHz tone for the ADC signals since the RX LO frequency is at 943 MHz. The DAC signals are from the internal DDS configured at 1 MHz.

    Note:

    To trigger another acquisition of samples, click the T! button again. You may connect different antennas or modify the distance between the antennas, and then repeat the test as many times as you need.

    1.5 Clock disciplining with PPS Sync module

    Once Radio initialization is done, the user is prompted with the option to discipline the radio acquisition clock to a GPS Pulse-Per-Second signal, using the PPS sync module. Enter 'y' to execute the synchronization. A PPS signal must be connected to the Radio420 PPS in connector. If no signal is present, the synchronization fails.

    PPS-SYNC initialize.

    Failed to detect PPS pulse : 0xc0740003

    The following illustrates a successful PPS synchronization:

    PPS-SYNC initialize.

    Waiting for VCXO locked to GPS...

    tick= 39999979 cte= 21 ppb=525 dac=38603 lock=0

    tick= 39999990 cte= 31 ppb=250 dac=38891 lock=0

    tick= 39999995 cte= 36 ppb=125 dac=39035 lock=0

    tick= 39999998 cte= 38 ppb= 50 dac=39092 lock=0

    tick= 39999998 cte= 40 ppb= 50 dac=39150 lock=0

    tick= 40000000 cte= 40 ppb= 0 dac=39150 lock=0

    tick= 40000000 cte= 40 ppb= 0 dac=39150 lock=0

    tick= 40000000 cte= 40 ppb= 0 dac=39150 lock=0

    tick= 40000000 cte= 0 ppb= 0 dac=39150 lock=0

    tick= 39999999 cte= 0 ppb= 0 dac=39150 lock=0

    tick= 40000001 cte= 0 ppb= 0 dac=39150 lock=0

    tick= 40000000 cte= 0 ppb= 0 dac=39150 lock=0

    tick= 40000001 cte= 0 ppb= 0 dac=39150 lock=0

    tick= 40000001 cte= 0 ppb= 0 dac=39150 lock=0

    tick= 40000001 cte= 0 ppb= 0 dac=39150 lock=0

    tick= 40000001 cte= 0 ppb= 0 dac=39150 lock=0

    tick= 40000001 cte= 0 ppb= 0 dac=39150 lock=0

    tick= 40000001 cte= 0 ppb= 0 dac=39150 lock=0

  • 11

    tick= 40000001 cte= 0 ppb= 0 dac=39150 lock=0

    tick= 40000000 cte= 0 ppb= 0 dac=39150 lock=1

    VCXO locked to GPS

    The information is displayed upon lock.

    Tick is the current ADC/DAC clock count per second.

    cte is the cumulative sample error since the start of the algorithm

    ppb is the current error in parts per billion

    dac is the current dac value

    lock is the current lock state (1 means locked)

    1.6 Executing the Calibration

    To execute the calibration:

    1. Press Enter in the test console as prompted to start the calibration.

    2. The calibrations executed are the LO Leakage calibration and the Single Side Band calibration

    3. The console should show the following:

    Bottom Radio420 RF Calibration:

    Calibrating to minimize LO leakage...

    DONE

    Calibrating IQ gain and phase...

    DONE

    Calibrating RF Front-End DC offset...

    DONE

    Reconfiguring PLL

    PLL is locked

    Reconfiguring Lime PLL

    - Low band is used

    Reconfiguring Gain

    Done.

    4. You may now check the calibrated signal with a spectrum analyzer.

    1.7 Modifying the Example

    To modify the example:

    1. To set the example for a MIMO configuration, uncomment the MIMO definition and comment the SISO definition in the main.c header.

    When running the example, the console output should be the following:

    Radio420m standalone MIMO test

    Bottom FMC: Radio420 AXI FPGA core is present

    Top FMC: Radio420 AXI FPGA core is present

    Bottom FMC: Radio420 set as REV D...

    Top FMC: Radio420 set as REV D...

    Bottom Radio420 setup:

    Resetting Hardware

    Configuring PLL

    - Reference frequency: 30720000 Hz

    - Acquisition frequency: 40000000 Hz

    - Lime frequency: 30720000 Hz

    PLL is locked

    Configuring Gain

    Configuring Lime PLL

    - RX Carrier Frequency: 943 MHz

    - TX Carrier Frequency: 953 MHz

    - Low band is used

    Configuration done!

    Top Radio420 setup:

    Resetting Hardware

    Configuring PLL

    - Reference frequency: 30720000 Hz

  • 12

    - Acquisition frequency: 40000000 Hz

    - Lime frequency: 30720000 Hz

    PLL is locked

    Configuring Gain

    Configuring Lime PLL

    - RX Carrier Frequency: 943 MHz

    - TX Carrier Frequency: 953 MHz

    - Low band is used

    Configuration done!

    2. Check with a spectrum analyzer to see the signal without calibration.

    3. Press enter to compensate the signal IQ gain and phase imbalance, RX RF front-end DC offset, and LO leakage.

    4. To change the FMC hardware revision used, modify the BOTTOMREV and TOPREV definitions in the main.c header.

    5. To change the carrier frequency, modify the carrier frequency declarations at the beginning of the main function in the main.c

    For example change

    unsigned tx_carrier_frequency = (unsigned) 953e6;

    to

    unsigned tx_carrier_frequency = (unsigned) 650e6;

    The expected console result is:

    Bottom Radio420 setup:

    Resetting Hardware

    Configuring PLL

    - Reference frequency: 30720000 Hz

    - Acquisition frequency: 40000000 Hz

    - Lime frequency: 30720000 Hz

    PLL is locked

    Configuring Gain

    Configuring Lime PLL

    - RX Carrier Frequency: 943 MHz

    - TX Carrier Frequency: 650 MHz

    Configuration done!

  • 13

    6. To change the Radio frequency from low band to high band, change the carrier frequency from

    unsigned tx_carrier_frequency = (unsigned) 953e6;

    to

    unsigned tx_carrier_frequency = (unsigned) 2200e6;

    The expected console result is:

    Bottom Radio420 setup:

    Resetting Hardware

    Configuring PLL

    - Reference frequency: 30720000 Hz

    - Acquisition frequency: 40000000 Hz

    - Lime frequency: 30720000 Hz

    PLL is locked

    Configuring Gain

    Configuring Lime PLL

    - RX Carrier Frequency: 943 MHz

    - TX Carrier Frequency: 2200 MHz

    - High band is used

    Configuration done!

    7. To change the Radio acquisition frequency, modify the acquisition_frequency declaration at the beginning of the main function in the main.c.

    For example change

    acquisition_frequency = (unsigned) 40e6;

    to

    acquisition_frequency = (unsigned) 10.24e6;

    A list of valid values for this field can be found in the description of the E_FMCRADIO_DATARATE_REF_30_72MHZ enum in the fmc_radio_defines.h file.

    Note:

    The frequency configure by this parameter is the operating frequency of the RF chip of the Radio420. Since the I and Q samples are interleaved, if you want a specific sampling frequency for I and Q signals, the Radio420 operating frequency must be configured twice as fast.

    The expected console result is:

    Bottom Radio420 setup:

    Resetting Hardware

    Configuring PLL

    - Reference frequency: 30720000 Hz

    - Acquisition frequency: 10240000 Hz

    - Lime frequency: 30720000 Hz

    PLL in bypass

    Configuring Gain

    Configuring Lime PLL

    - RX Carrier Frequency: 943 MHz

    - TX Carrier Frequency: 953 MHz

    Configuration done!

  • 14

    2 Radio420 RTDEx Record/Playback Example (BSDK) for Windows 7 (64 Bits) and Linux (32 and 64 Bits) on Gigabit Ethernet and PCI Express

    The Radio420X RTDEX and Record/Playback example illustrates how to record data from the Radio420X ADC and how to playback data on the Radio420X DAC. The example handles either a SISO or a MIMO configuration. Figure 2-1 and 2-2 illustrate the example setup.

    Gigabit

    Ethernet or

    PCIe

    RTDEx

    Radio420 core

    Record/ Playback

    Record

    ADC Data

    DAC Data

    Radio420 core

    ADC Data

    DAC Data

    Playback

    I

    Q

    I

    Q

    I

    Q

    Bottom

    FMC

    Top

    FMC

    Mem to

    Host

    Host to

    Mem

    Channel 0

    TX

    Channel 0

    RX

    To and from

    Host

    DDS

    Generator

    IQ Mux

    I

    Q

    I

    Q

    I Q

    Sync

    Sync

    Figure 2-1 Radio420X record/playback diagram

  • 15

    Gigabit

    Ethernet or

    PCIe

    RTDEx

    Radio420 core

    ADC Data

    DAC Data

    Radio420 core

    ADC Data

    DAC Data

    I

    Q

    I

    QRadio 1

    Radio 2

    Channel 1

    TX

    Channel 1

    RX

    To and from

    Host

    IQ Mux

    Channel 2

    TX

    I

    Q

    I

    Q

    I

    Q

    Channel 2

    RX

    I

    Q

    Sync

    Sync

    Figure 2-2 Radio420X RTDEx streaming diagram

    The synchronization blocks allow the user to synchronize the transmitter and receiver channels. On the PicoSDR4x4, up to 4 TX and 4 RX channels can synchronized through AMC port 14. The blocks make sure the radio data is written to memory or read from memory at the same time for all four channels.

    A write of 1 to custom register 3 (address 0x71000024 of the MicroBlaze AXI-bus) will enable writes to the memory on all channels, making sure the first sample written to the memory was sampled at the same time on all channels.

    Custom register 4 (address 0x71000028 of the MicroBlaze AXI-bus) handles the synchronization of the transmitters. The TX synchronization block verifies that all transmitters have data to send. To disable the synchronization, write 0 to the register. To enable a MIMO 2x2 sync on a Radio420m stack, write 1 to the register. To enable a MIMO4x4 synchronization on the PicoSDR4x4, write 2 to the register.

    The MIMO 4x4 example is only supported on the PicoSDR and with GIgabit Ethernet RTDEx.

    2.1 Pass-through test

    The pass-through test routes all data acquired on the Radio ADCs directly to the Radio DACs.

    2.2 DDS test

    A DDS generator core generates a tone which is sent to both Radio420X DACs. The tone is configurable in frequency and in amplitude. When a record is done in the example, the user can select 4 different sources for Radio420X DACs.

    DDS output

    DDS output -3 dB

    DDS output -6 dB

  • 16

    Dual tone DDS

    2.3 Record test

    The RF signal is acquired and is stored to memory by the Record module. The RTDEx modules (RTDEx or PCI Express) is then used to retrieve the data from the host, where it is stored in a binary file.

    2.4 Playback test

    A waveform is written in Perseus memory and played back on the Radio DACs by the Record/Playback module

    2.5 Streaming to host test

    Radio ADC data is streamed directly on the host where it is stored in a binary file.

    2.6 Streaming from host test

    A waveform is streamed to the Perseus by the RTDEx module (RTDEx or PCI Express). The data is routed to the Radio DACs

  • 17

    2.7 Requirements

    2.7.1 Software requirements

    These are the software requirements to run and compile the example depending of the operating system used.

    Windows example Linux example (Fedora or Ubuntu)

    Xilinxs Platform Studio 13.4 Xilinx Platform Studio 13.4

    Visual Studio 2008 SP1 ADP software tools TCA edition for Linux

    ADP Software Tools TCA edition

    2.7.2 Hardware requirements

    These are the hardware requirements to run the examples depending on the setup used.

    PicoSDR with external PC

    PicoSDR with embedded CPU

    Perseus in a TCA chassis with External PC

    Perseus and embedded PC in a

    TCA chassis

    1 PicoSDR (any version)

    1 PC with a Gigabit Ethernet network card (jumbo frame capable)

    1 Gigabit Ethernet cable

    1 PCI Express extension cable (for PCIe example)

    1 FPGA JTAG pod

    2 MMCX to SMA or MMCX to BNC cables

    1 MMCX to MMCX cable

    1 spectrum analyzer of up to 3.8 GHz

    1 signal generator of up to 3.8 GHz

    1 PicoSDR2x2-E

    1 computer Xilinx Impact (to operate the FPGA JTAG pod)

    1 FPGA JTAG pod

    2 MMCX to SMA or MMCX to BNC cables

    1 MMCX to MMCX cable

    1 spectrum analyzer of up to 3.8 GHz

    1 signal generator of up to 3.8 GHz

    1 Perseus

    1 Radio420s or Radio420m

    1 MicroTCA chassis with its TCA Carrier Hub (MCH)

    1 computer with a Gigabit Ethernet network card (jumbo frame capable)

    1 Gigabit Ethernet cable

    1 FPGA JTAG pod

    2 MMCX to SMA or MMCX to BNC cables

    1 MMCX to MMCX cable

    1 spectrum analyzer of up to 3.8 GHz

    1 signal generator of up to 3.8 GHz

    1 1-GHz oscilloscope

    1 Perseus

    1 Radio420s or Radio420m

    1 embedded PC running Linux Fedora or Ubuntu

    1 MicroTCA chassis with its TCA Carrier Hub (MCH)

    1 FPGA JTAG pod1 computer with Xilinx Impact (to operate the FPGA JTAG pod)

    2 MMCX to SMA or MMCX to BNC cables

    1 MMCX to MMCX cable

    1 spectrum analyzer of up to 3.8 GHz

    1 signal generator of up to 3.8 GHz

    Setup to run the example Setup to run the example Setup to run the example Setup to run the example

  • 18

    2.8 Setup

    2.8.1 Setup for execution on a PicoSDR on an external PC

    PicoSDR

    JTAG GigE

    Radio420

    2

    Signal

    Generator

    MMCX to SMA (RX)

    MMCX to SMA (TX) Spectrum

    analyzer

    MMCX to SMA (TX)

    MMCX to SMA (RX)Radio420

    1

    Rout

    Rin

    PCIe

    Figure 2-3 PicoSDR with an external PC

    The following procedure must be performed to execute the examples on a PicoSDR system with an external PC.

    To set up the example:

    1. Connect the FPGA JTAG pod to the external PC and then the PicoSDR back panel.

    Refer to the PicoSDR Users Guide documents for details about performing this operation.

    2. Connect the Gigabit Ethernet cable between the external PC and the PicoSDR back panel.

    3. Connect the PCI Express extension cable between the external PC and the PicoSDR back panel.

  • 19

    2.8.2 Setup for execution on a PicoSDR on its embedded PC

    PicoSDR

    JTAG

    Embedded PC

    GigE

    or

    PCIe

    Perseus

    Radio420

    2

    Signal

    Generator

    MMCX to SMA (RX)

    MMCX to SMA (TX) Spectrum

    analyzer

    MMCX to SMA (TX)

    MMCX to SMA (RX)Radio420

    1

    Rout

    Rin

    Figure 2-4 PicoSDR with an its embedded PC

    The PicoSDR2x2-E contains an embedded PC and a Perseus. The following procedure must be performed to execute the examples on a PicoSDR system with its embedded PC.

    To set up the example:

    1. Connect the FPGA JTAG pod to the computer and then the PicoSDR back panel.

    Refer to the PicoSDR Users Guide documents for details about performing this operation.

  • 20

    2.8.3 Setup for execution in a MicroTCA chassis

    JTAG

    Chassis

    Perseus

    MCH

    GigE

    GigE

    Signal

    Generator

    MMCX to SMA (TX) Spectrum

    analyzer

    MMCX to SMA (RX)Radio420

    1

    SISO

    configuration

    JTAG

    Chassis

    Perseus

    MCH

    GigE

    GigERadio420

    2

    Signal

    Generator

    MMCX to SMA (RX)

    MMCX to SMA (TX) Spectrum

    analyzer

    MMCX to SMA (TX)

    MMCX to SMA (RX)Radio420

    1

    Rout

    Rin

    MIMO

    configuration

    Figure 2-5 Perseus in a MicroTCA chassis, with an external PC

    1. If not already done, install the Radio420s or Radio420m card on the Perseus.

    2. If not already done, connect the FPGA JTAG pod to the computer and then to the Perseus.

    Refer to the FPGA JTAG pod documentation for details about performing this operation.

    3. Connect the Gigabit Ethernet cable between the MCHs front panel Ethernet connector and your PCs Gigabit Ethernet network card.

    4. If not already done, insert the Perseus into the TCA chassis.

  • 21

    2.8.4 Setup for execution in a MicroTCA chassis on an embedded PC

    JTAG

    Chassis

    Perseus

    MCH

    GigE

    Or PCIe

    GigE

    Or

    PCIESignal

    Generator

    MMCX to SMA (TX) Spectrum

    analyzer

    MMCX to SMA (RX)Radio420

    1

    SISO

    configuration

    Embedded PC

    JTAG

    Chassis

    Perseus

    MCH

    GigE

    Or PCIe

    GigE

    Or

    PCIESignal

    Generator

    MMCX to SMA (TX) Spectrum

    analyzer

    MMCX to SMA (RX)Radio420

    1

    MIMO

    configurationEmbedded PC

    Radio420

    2

    MMCX to SMA (RX)

    MMCX to SMA (TX)

    Rout

    Rin

    Figure 2-6 Perseus in a MicroTCA chassis, with an external PC

    1. If not already done, install the ADAC250 card on the Perseus.

    2. If not already done, connect the FPGA JTAG pod to the computer and then to the Perseus.

    Refer to the FPGA JTAG pod documentation for details about performing this operation.

    3. If not already done, insert the Perseus into the TCA chassis.

    2.8.5 Setup for execution of MIMO 4x4 example on a PicoSDR4x4

    Perseus A

    PicoSDR 4x4

    JTAG

    GigE

    or

    PCIe

    Radio420

    2

    Signal

    Generator

    MMCX to SMA (RX)

    MMCX to SMA (TX) Spectrum

    analyzer

    MMCX to SMA (TX)

    MMCX to SMA (RX)Radio420

    1

    Rout

    Rin

    Perseus B

    Radio420

    2

    MMCX to SMA (RX)

    MMCX to SMA (TX)

    MMCX to SMA (TX)

    MMCX to SMA (RX)Radio420

    1

    Rout

    Rin

    Rout

    Rin

    Figure 2-7 Perseus in a MicroTCA chassis, with an external PC

  • 22

    2.8.6 Signal generator setup

    To setup the test:

    1. Connect a MMCX to SMA cable between the FMCRadio RX connector and the signal generator.

    2. Connect a MMCX to SMA cable between the FMCRadio TX connector and the spectrum analyzer.

    3. If in MIMO configuration, connect the MMCX to MMCX cable between Radio #1's FMC ROUT connector and the Radio #2's FMC RIN connector.

    This allows the two cards to use the same clock reference.

    4. If in MIMO 4x4 configuration, connect MMCX to MMCX cables between Radio #2's FMC ROUT connector and the Perseus B's Radio #1' FMC RIN connector and between Perseus B's Radio #1 FMC ROUT connector and Perseus B Radio #2 FMC RIN connector.

    This allows the four cards to use the same clock reference.

    5. Turn on the TCA chassis or the PicoSDR.

    2.9 Generating the FPGA configuration file

    1. To compile the Gigabit Ethernet RTDEx example, open the Platform Studio project file in the \perseus6010_radio420x_rtdex_record_playback\edk_gige\ folder.

    2. In Platform Studio, on the Project menu, click Project Options. Under General tab select your Target Device matching your Perseus.

    3. In Platform Studio, on the Hardware menu, click Generate Bitstream.

    4. On the Device Configuration menu, click Download Bitstream.

    2.10 PCI Express link validation

    If the PCI Express medium is used, follow this procedure to validate the PCI Express link.

    1. Once the Perseus is configured and has booted, power cycle the PC to allow it to enumerate the Perseus PCI Express device.

    2. Validate the PCI Express link presence. Follow the instructions given in the Installing the PCI Express Drivers.pdf document at the /documentation/pdf/Perseus location.

    3. Install the PCI Express driver on the host PC. Follow the instructions given in the Installing the PCI Express Drivers.pdf document at the /documentation/pdf/Perseus location.

    2.11 Procedure with Visual Studio on Windows

    To perform the example with Visual Studio:

    1. Start Microsoft Visual Studio.

    2. On the File menu, point to Open and click Project/Solution.

    3. Browse to the ..\ perseus6010_radio420x_rtdex_record_playback \host\prj_win\ folder and select the file named perseus6010_radio420x_rtdex_record_playback.sln.

    The host software project opens and the hierarchy of the project appears in the Solution Explorer panel. If the Solution Explorer panel is not visible, on the View menu click Solution Explorer.

    4. Select the Release, x64 build configuration.

    5. On the Build menu, click Build Solution.

    6. Specify the necessary application parameters for the host software in the Launch_radio420x_rtdex_record_playback.bat file in the ADPROOT\examples_perseus6010\ perseus6010_radio420x_rtdex_record_playback\host\prj_win\ folder.

    The application parameters are specific to the hardware used:

  • 23

    Argument 1 is the IP address of the Perseus

    Argument 2 is the number of radios used in the test (enter 1 for a SISO test, 2 for a MIMO test and 4 for a MIMO 4x4 test).

    Argument 3 is the record file path and name

    Argument 4 is the number of samples per channel which will be recorded

    Argument 5 is present if test is MIMO 4x4. It is the IP address of Perseus B

    The IP_ADDR_PERSEUS parameter contains the IP address of the Perseus port 0 (for example, 192.168.0.101). The bytes of this address must be separated by periods.

    For the example value above, the combined argument would be: SET IP_ADDR_PERSEUS=192.168.0.101.

    Notes

    The values presented here are for the example purposes; it is important to specify addresses for the hardware actually used.

    7. Save and close the file.

    8. Set the signal generator to generate a 944-MHz sine.

    The receiver being configured at 943 MHz, therefore a 1-MHz sine signal is expected to be acquired.

    9. Set the spectrum analyzer at 953 MHz.

    10. Double-click Launch_radio420x_rtdex_record_playback.bat.

    The test starts automatically.

  • 24

    2.12 Procedure with Makefile on Linux

    To perform the example:

    1. In the Linux installation, browse to /opt/Nutaq/ADP/ADP_MicroTCA/sdk/examples/perseus6010_radio420x_rtdex_record_playback /host/prj_linux

    2. To build the example, run the following command in the Linux terminal.

    sudo ./build_demo.sh

    3. Edit the Launch_radio420x_rtdex_record_playback.sh file.

    4. Specify the necessary application parameters for the host software in the Launch_radio420x_rtdex_record_playback.sh. Change the IP address to match the address of the Perseus.

    The application parameters are specific to the hardware used:

    Argument 1 is the IP address of the Perseus

    Argument 2 is the number of radios used in the test (enter 1 for a SISO test, 2 for a MIMO test and 4 for a MIMO 4x4 test).

    Argument 3 is the record file path and name

    Argument 4 is the number of samples per channel which will be recorded

    Argument 5 is present if test is MIMO 4x4. It is the IP address of Perseus B

    5. Save and close the file.

    6. Set the signal generator to generate a 944-MHz sine at 0 dBm.

    The receiver being configured at 943 MHz, therefore a 1-MHz sine signal is expected to be acquired.

    7. To start the example, run the following command in the Linux terminal.

    sudo ./Launch_radio420x_rtdex_record_playback.sh

    The test starts automatically.

  • 25

    2.13 Procedure with the Nutaq Command-Line Interface on Windows

    To perform the example using Nutaq Command-Line interface:

    1. Browse to the ADPROOT\examples_perseus6010\perseus6010_radio420x_rtdex_record_playback\host\cli\ folder.

    The folder contains multiple CLI scripts that can be used to test the Radio420X hardware and to record and playback data. The following scripts can be run.

    Test SISO script MIMO script

    Radio configuration with RF calibration radio420s_rf_calibrate_demo radio420m_rf_calibrate_demo

    Data record radio420s_record radio420m_record

    Data playback radio420s_playback radio420m_playback

    PPS Sync radio420x_ppssync radio420x_ppssync

    Table 1 CLI script list

    2. Before running a script, open the associated .txt file (that is, radio420x_siso_record.txt) and replace the Perseus IP address with a value that is compatible with your system configuration.

    This is to allow the system to communicate with the Perseus.

    3. To start the example, double-click associated batch file (that is, launch_radio420s_record.bat).

  • 26

    2.14 Procedure with the Nutaq Command-Line Interface on Linux

    To perform the example using Nutaq Command-Line interface:

    1. Browse to the /opt/Nutaq/ADP/ADP_MicroTCA/sdk/examples/perseus6010_radio420x_rtdex_record_playback /host/cli folder.

    The folder contains multiple CLI scripts that can be used to test the Radio420X hardware and to record and playback data. The following scripts can be run.

    Test SISO script MIMO script

    Radio configuration with RF calibration radio420s_rf_calibrate_demo radio420m_rf_calibrate_demo

    Data record radio420s_record radio420m_record

    Data playback radio420s_playback radio420m_playback

    PPS Sync radio420x_ppssync radio420x_ppssync

    Table 2 CLI script list

    2. Before running a script, open the associated .txt file (that is, radio420x_siso_record.txt) and replace the Perseus IP address with a value that is compatible with your system configuration.

    This is to allow the system to communicate with the Perseus.

    3. To start the example, launch the associated shell file (that is, launch_radio420s_record.sh) using the sudo prefix

    Example: sudo ./launch_radio420s_record.sh

  • 27

    2.15 Expected Results with Visual Studio and Makefile

    As the example starts, the connection to the Perseus is established and the user is prompted with the test choice. Information is also displayed in the console, such as the number of cards used (SISO, MIMO or MIMO4x4) and the RTDEx Media detected in the FPGA configuration.

    Figure 2-8: Example start

    The user must choose which test to execute. Once the choice is done, the Radio420 FMCs will be initialized.

    Figure 2-9: SISO radio initialization

  • 28

    Figure 2-10: MIMO initialization

  • 29

    Figure 2-11: MIMO 4x4 Initialialization

    Information on the used acquisition and RF frequencies used is displayed.

  • 30

    2.15.1 PPS Sync results

    Once Radio initialization is done, the user is prompted with the option to discipline the radio acquisition clock to a GPS Pulse-Per-Second signal, using the PPS sync module. Enter 'y' to execute the synchronization. A PPS signal must be connected to the Radio420 PPS in connector. If no signal is present, the synchronization fails.

    Figure 2-12: PPS Sync failure

    The following illustrates a successful pps synchronization:

    Figure 2-13: PPS Sync success

    The information is displayed upon lock.

    Tick is the current ADC/DAC clock count per second.

    cte is the cumulative sample error since the start of the algorithm

    ppb is the current error in parts per billion

    dac is the current dac value

    lock is the current lock state (1 means locked)

  • 31

    2.15.2 Calibration results

    The user is then prompted with the option of calibrating the Radio transmitters. Enter 'y' to calibrate.

    Figure 2-14: SISO calibration results

    Figure 2-15: MIMO calibration results

    Figure 2-16: MIMO 4x4 Calibration results

    Once calibration is done (or skipped), the test previously chosen will execute.

  • 32

    2.15.3 Pass-through results

    For the Pass-through test, the following equipment setup should be used:

    Signal generator: 0 dBm signal at 944 MHz

    Spectrum analyzer: 953 MHz center frequency

    Figure 2-17: Pass-through expected results

    After the test has run, the user can verify that a tone is present at 954MHz on the spectrum analyzer on all initialized radios.

    2.15.4 DDS results

    For the Pass-through test, the following equipment setup should be used:

    Spectrum analyzer: 953 MHz center frequency

    The DDS test send a FPGA generated tone on the radio DACs.

    Figure 2-18: DDS expected results

    After the test has run, the user can verify that a tone is present at 954MHz on the spectrum analyzer on all initialized radios. If RF calibration was executed, the power ratio between the tone signal (at 954MHz) and both the local oscillator (at 953MHz) and the lower side band signal (at 952MHz) should be close to 48 dB.

  • 33

    2.15.5 Record results

    For the Record test, the following equipment setup should be used:

    Signal generator: 0 dBm signal at 944 MHz

    Figure 2-19: Record expected results

    Data is saved to the specified file in the batch or shell file, here called record.bin. In MIMO 4x4, data from each Perseus is stored within a different file (record.binA and record.binB).

    Plotting the recorded data in Matlab, the user should see a 1 MHz tone in the displayed FFT for all initialized radios which were inputted the 944MHz signal.

    To plot the received data using Matlab:

    1. In Matlab, set the current directory to:

    %ADPROOT%\examples_perseus6010\perseus6010_radio420x_rtdex_record_playback\bin.

    2. Use the command bintofft to plot the data.

    For example:

    bintofft('record.bin', 4, 'int16', 65536, 40000000/2); record.bin: is the recorded file.

    4: is the number of channels (i.e. I and Q channels for both Radios). Even if the test is in SISO, the FPGA always acquires IQ data for two radios, therefore the number of channels must be 4.

    'int16': indicates that each sample is recorded on 16 bits integers.

    65536: is the number of recorded samples per channel.

    40000000/2: is the sampling rate. (In the example, the ADC frequency is set at 40 MHz.)

    For this specific example, the results for a channel are:

    Figure 2-20: Matlab plot for record test

  • 34

    2.15.6 Playback results

    For the Playback test, the following equipment setup should be used:

    Spectrum analyzer: 953 MHz center frequency

    The playback test uses file playback_sinewave.bin which holds a generated sine waveform of 1MHz when sampled at 40MHz (20MHz I and 20MHz Q).

    Figure 2-21: Playback expected results

    When the continuous playback is selected, a tone should appear on the spectrum analyzer at 954 MHz. If RF calibration was executed, the power ratio between the tone signal (at 954MHz) and both the local oscillator (at 953MHz) and the lower side band signal (at 952MHz) should be close to 48 dB.

    2.15.7 Streaming to host results

    For the streaming to host test, the following equipment setup should be used:

    Signal generator: 0 dBm signal at 944 MHz for SISO and MIMO test

    Signal generator: 0 dBm signal at 943.25 MHz for MIMO 4x4 test

    Figure 2-22: Streaming to host SISO expected results

    Figure 2-23: Streaming to host MIMO expected results

  • 35

    Figure 2-24: Streaming to host MIMO 4x4 expected results

    Data is saved to the specified file in the batch or shell file, here called record.bin. The streaming rate for each radio is displayed in the console. The streaming test uses different rates depending on the configuration.

    Using Gigabit Ethernet as the RTDEx medium, the default sampling frequencies used are:

    SISO: 16 Msps

    MIMO: 8 Msps

    MIMO 4x4: 5,12 Msps

    Using PCI Express as the RTDEx medium, the default sampling frequencies used are:

    SISO: 64 Msps

    MIMO: 64 Msps

    The displayed rates should correspond to the rates listed above.

    Once the specified amount of data has been written to file, the Data Saved! indication will appear. Press enter to terminate the test.

    Figure 2-25: Streaming to host stats

    The streaming stats will be displayed.

    Plotting the recorded data in Matlab, the user should see a 1 MHz tone in the displayed FFT for all initialized radios which were inputted the 944MHz signal.

    To plot the received data using Matlab:

    1. In Matlab, set the current directory to:

    %ADPROOT%\examples_perseus6010\perseus6010_radio420x_rtdex_record_playback\bin.

    2. Use the command bintofft to plot the data.

    For example:

    bintofft('record.bin', 4, 'int16', 65536, 8000000/2); record.bin: is the recorded file.

  • 36

    4: is the number of channels (i.e. I and Q channels for both Radios).

    'int16': indicates that each sample is recorded on 16 bits integers.

    65536: is the number of recorded samples per channel.

    16000000/2: is the sampling rate. (In the example, the ADC frequency is set at 8 MHz.)

    To plot the SISO test data, use bintofft('record.bin', 2, 'int16', 65536, 16000000/2);

    To plot the MIMO test data, use bintofft('record.bin', 4, 'int16', 65536, 8000000/2);

    To plot the MIMO 4x4 test data, use bintofft('record.bin', 8, 'int16', 65536, 5120000/2);

    For this specific example, the results for a channel are:

    Figure 2-26: Matlab plot for streaming to host test

  • 37

    2.15.8 Streaming from host results

    For the streaming from host test, the following equipment setup should be used:

    Spectrum analyzer: 953 MHz center frequency

    The test uses files streaming_sinewave.bin and streaming_sinewave_pcie.bin which holds a generated sine waveform of 1MHz.

    streaming_sinewave.bin is used for Gigabit Ethernet tests. When streaming the file, the resulting tone on depends on the set sampling frequency.

    In SISO, the sampling clock is 16 MHz, which places the generated tone at 1MHz

    in MIMO, the sampling clock is 8 MHz, which places the generated tone at 0,5 MHz

    in MIMO 4x4, the sampling clock is 5,12 MHz, which places the generated tone at 0,32 MHz

    streaming_sinewave_pcie.bin is used for PCI Express tests. The resulting tone is 1MHz sampled at 64MHz

    Figure 2-27: Streaming from host SISO expected results

    Figure 2-28: Streaming from host MIMO expected results

    Figure 2-29: Streaming from host MIMO 4x4 expected results

    The streaming rate for each radio is displayed in the console. The streaming test uses different rates depending on the configuration.

    Using Gigabit Ethernet as the RTDEx medium, the default sampling frequencies used are:

  • 38

    SISO: 16 Msps

    MIMO: 8 Msps

    MIMO 4x4: 5,12 Msps

    Using PCI Express as the RTDEx medium, the default sampling frequencies used are:

    SISO: 64 Msps

    MIMO: 64 Msps

    The displayed rates should correspond to the rates listed above.

    On the spectrum analyzer, a tone should appear at a frequency which depends on the configuration used:

    Using Gigabit Ethernet as the RTDEx medium, the expected

    SISO: Tone at 954 MHz

    MIMO: Tone at 953,5 MHz

    MIMO 4x4: Tone at 953,32 MHz

    Using PCI Express as the RTDEx medium, the sampling frequencies used are:

    SISO: Tone at 954 MHz

    MIMO: Tone at 954 MHz

    If RF calibration was executed, the power ratio between the tone signal and both the local oscillator (at 953MHz) and the lower side band signal should be close to 48 dB.

    Press enter to terminate the streaming. The streaming stats will appear:

    Figure 2-30: Streaming from host stats

  • 39

    2.16 Expected Results with Nutaq's Command Line Interface

    The following is expected when executing the CLI scripts.

    2.16.1 Record results

    For the Record test, the following equipment setup should be used:

    Signal generator: 0 dBm at 943 MHz

    Figure 2-31 CLI record expected results

    To plot the SISO test data, use bintofft('radio420s_record_data.bin', 4, 'int16', 65536, 40000000/2);

    To plot the MIMO test data, use bintofft('radio420m_record_data.bin', 4, 'int16', 65536, 40000000/2);

    A 1 MHz tone should appear on all initialized and connected channels.

    2.16.2 Playback results

    For the Playback test, the following equipment setup should be used:

    Spectrum analyzer: 953 MHz center frequency

    The playback test uses file playback_sinewave.bin which holds a generated sine waveform of 1MHz when sampled at 40MHz (20MHz I and 20MHz Q).

    Figure 2-32 CLI playback expected results

  • 40

    A tone at 954 MHz should appear on the spectrum analyzer.

    2.16.3 RF calibration results

    For the RF calibration test, the following equipment setup should be used:

    Spectrum analyzer: 953 MHz center frequency

    A DDS signal is configured to generate a 1MHz tone sampled at 40MHz.

    Figure 2-33 CLI RF calibrate expected results

    A tone should appear at 954 MHz. After calibration has run, the power ratio between the tone signal (at 954MHz) and both the local oscillator (at 953MHz) and the lower side band signal (at 952MHz) should be close to 48 dB.

    2.16.4 PPS Sync results

    For the PPS Sync, the following equipment setup should be used:

    PPS Signal on the PPS in connector on the Radio420 front panel.

    Figure 2-34: CLI PPS Sync expected results