DPDcontrol Application
The application DPDcontrol is a command-line application dedicated to LimeSDR QPCIe and LimeSDR-PCIe-5G boards.
Once the test waveforms are played, the DPDcontrol
application can be started.
Warning
It is not allowed to use the DPDcontrol application and DPDViewer at the same time. Therefore, before starting the DPDcontrol, close the DPDViewer.
Note
It is possible to linearize PAs using DPDcontrol, and then, after closing the DPDcontrol, open LimeSuiteGUI, its DPDViewer window, and check the spectrum of the PA output signals. The relevant signal is signal x which is a measure of PA output.
Note
The LMS3 is used as DPD monitoring path. Clock for the LMS3 analog interfaces should be set to 61.44 MHz. The clock configuration is provided via LimeSuiteGUI CDCM6208 window.
Open Modules → CDCM6208
Check the Y6 and Y7 CDCM outputs (for LMS#3 ADCs) in the Frequency planning box.
Enter frequency of 61.44 in the Frequency requested boxes. Click Calculate.
Click Write All to write the new configuration into the CDCM6208 chip.
Note
open Modules → LMS#1 CFR controls window
please verify that following boxes are checked: ResetN, LMS1 txen, DPD cap.en., LMS3 mon.path, DPD/CFR enable
Note
In LimeSuiteGUI, for selected LMS3 chip, please verify:
SXR tab → Enable SXR/SXT module is checked
SXT tab → Enable SXR/SXT module is unchecked
The very basic DPDcontrol operations are explained through steps 1-7.
Open the terminal in following folder, which belongs the LimeSuiteGUI installation:
<LimeSuite install folder>/LimeSuite/src/DPD_CommandMode/
Compile the DPDcontrol application:
make
Start the application with sudo:
sudo ./DPDcontrol
Note
If the application DPDcontrol is started without any argument, the DPD
nonlinearity order QADPD_M is defined by the value which is last stored in
DPDcontrol configuration file. Please, find the description of
storeConfigDPD
command below.
Note
If the application is started with an argument, the argument represents the
DPD nonlinearity order - QADPD_M, which is an integer value in the range from
1 to 3. This parameter should be stored into DPDcontrol configuration file.
Use storeConfigDPD
command after DPD is being calibrated.
To calibrate DPD parameters (calculate DPD digital gain and ND delay):
calibrateDPD {1, 2, all}
Note
The argument all refers to both transmitting channels; available arguments are 1, 2 or all, particularly for first channel A, second channel named B, or both channels.
Note
Expected values for delay ND are in the range [74 – 85].
If in consecutive DPD calibration procedures, different, random values for ND are obtained, which are out of specified range, there is an RF reflection or interference.
To solve this, check the RF cables. The cable dedicated for DPD monitoring path (from PA’s coupling output to board) must have strong shield. Else, place 10dBm-20dBm RF attenuator at board receive port, dedicated to DPD monitoring input, rather than at PA’s coupling output.
The other option is to press in LimeSuiteGUI, for LMS3 chip, in SXR tab, Calculate, Tune.
Note
The DPD digital gain should be in range [1.0-3.0], otherwise change the LMS3 LMS7002M receiver gain settings. Open LimeSuiteGUI, select the LMS3 chp, in tab RFE modify LNA; in tab RBB modify PGA gain settings.
Note
When running the LTE stack, the DPD calibration procedure requires that the data payload is generated by connecting mobile phones to BTS and executing MagicIperf application on both phones.
When DPD is calibrated, the DPD training operation is started by:
startDPD {1, 2, all}
Note
Again, like in previous commands, the argument all refers to both transmitting channels; available arguments are 1, 2 or all, particularly for first channel A, second channel B or both channels.
Note
DPD training operation is performed periodically for both transmitting channels, the calculation period is equal to four seconds, just in a few iterations PAs get linearized.
Note
The information about calculation errors obtained by training process
can be useful. Moreover, the DPDcontrol automatically measures and displays the ACPR results.
The ACPR parameters are configured via commands ChannelSpacing
and ChannelBandwidth
explained below.
The information is displayed or disabled by successive entering the character “l” in command line.
To stop DPD training operation use:
stopDPD {1, 2, all}
To stop the application:
quit
The application DPDcontrol has some additional useful commands which are explained below:
The entire command set provided by:
help
To store the DPD parameters into DPDcontrol configuration file (DPD digital gain and ND delay, which are previously determined by calibrateDPD; and DPD nonlinearity order – QADPD_M, defined by DPDcontrol application argument), use:
saveConfigDPD {1, 2, all}
The DPD parameters (DPD digital gain, ND delay and QADPD_M) are loaded from configuration file using:
loadConfigDPD {1, 2, all}
Note
When the application DPDcontrol is started, the parameters DPD digital gain and ND delay are automatically loaded from DPDcontrol configuration file.
When application is started without arguments, the DPD nonlinearity order QADPD_M is read from configuration file. When DPDcontrol is started with an argument, the argument value is the new value for QADPD_M.
There is an option to store all calculated DPD coefficients (after training process is stopped with stopDPD command) into application’s configuration file.
saveCoeffDPD {1, 2, all}
To read the DPD coefficients from configuration file:
loadCoeffDPD {1, 2, all}
To read current status of DPD parameters (DPD digital gain, ND delay and QADPD_M), or status of the PAs and DCDCs for both transmitting channels, use the following command:
readConfigDPD {1, 2, all}
To reset all DPD coefficients:
resetDPD {1, 2, all}
Note
The result of this command is the same as DPD is bypassed.
DPDcontrol automatically measures the ACPR which parameters ChannelSpacing and ChannelBandwidth are configured via:
setChannelSpacing {1, 2, all} <[1.0 .. 20.0]> setChannelBandwidth {1, 2, all} <[1.0 .. 20.0]>