ADRV9029
Recommended for New Designs
The ADRV9029 is a highly integrated, radio frequency (RF) agile transceiver offering four independently controlled transmitters, dedicated observation...
Datasheet
ADRV9029 on Analog.com
I ran DPD on my board and it came out as below.
CLI debug > dpd status DPD Status dpdErrorCode : 0x0 dpdPercentComplete : 0 dpdIterCount : 32 dpdUpdateCount : 0 dpdSyncStatus : 4 dpdModelTable : 0 dpdStatistics.dpdMeanTuPower : 0.000000 dpdStatistics.dpdPeakTuPower : 0.000000 dpdStatistics.dpdMeanTxPower : 0.000000 dpdStatistics.dpdPeakTxPower : 0.000000 dpdStatistics.dpdMeanOrxPower : 0.000000 dpdStatistics.dpdPeakOrxPower : 0.000000 dpdStatistics.dpdDirectEvm : 0.000000 dpdStatistics.dpdIndirectEvm : 0.000000 dpdStatistics.dpdSelectError : 0.000000 dpdStatistics.dpdIndirectError : 0.000000 dpdErrorStatus0.dpdMetricsMask : 0x0 dpdErrorStatus0.dpdActionMask : 0x0 dpdErrorStatus1.dpdMetricsMask : 0x0 dpdErrorStatus1.dpdActionMask : 0x0 dpdPersistentErrorStatus0.dpdMetricsMask : 0x0 dpdPersistentErrorStatus0.dpdActionMask : 0x0 dpdPersistentErrorStatus1.dpdMetricsMask : 0x0 dpdPersistentErrorStatus1.dpdActionMask : 0x0 dpdPerformanceMetric : 0 reservedPM : 0 reservedTP : 0 reservedPR : 0
This is a question about the above.
1) dpdErrorCode comes out as 0, only dpdIterCount is incremented, dpdUpdateCount is not incremented. Could you please advise on what parts I need to check in this regard.
2) There are no dpdStatistics related contents, please advise which part should be checked. Please let me know if you have any related needs.
3) “4” is displayed in dpd sync status, please advise on this part. (ADI_ADRV9025_TRACKINGCAL_SYNC_TARG_CAL_NOT_ENABLED)
I look forward to your advice.
thank you.
Please make sure that you follow the DPD bring up sequence as mentioned in the DPD user guide.
Have you enabled the carrier at all as the statistics does not show up any powers being read?
Please make sure that the Tx-ORX mapping is correct and TX channel is connected to the configured ORX channel.
Are you loading a DPD model file?
If you are checking in TDD mode, try to check in FDD mode once.
Have you enabled the carrier at all as the statistics does not show up any powers being read?
The above RECOMMENDED SEQUENCE FOR ENABLING THE DPD TRACKING CALIBRATION has been applied, but the difference is as follows.
- Step 4: Measure the external path delay using adi_adrv9025_InitCalsRun. But the two functions are not used. (adi_adrv9025_ExternalPathDelaySet(), adi_adrv9025_ClgcExternalPathDelaySet())
- step 11: As it is optional, it was not used in this step.
- step 12: CLGC is not used.
- step 15: CLGC was not used.
Have you enabled the carrier at all as the statistics does not show up any powers being read?
LTE20M 9FA was activated and used.
Please make sure that the Tx-ORX mapping is correct and TX channel is connected to the configured ORX channel.
Tx-ORx mapping checked. I also checked the Orx input level with rxDecPowerGet().
Are you loading a DPD model file?
DPD model file was loaded and used.
If you are checking in TDD mode, try to check in FDD mode once.
Currently only using FDD mode.
Please help.
Can you check the respective ORX power by using RXdecpowerget API?
Hope the external path delay cal mask is set as described in the UG
Can you please send us the DPD tracking config. parameters?
Can you please send us the Spectrum plot at the TRX out and PA out as well?
Can you check the respective ORX power by using RXdecpowerget API?
Please make sure that the Tx-ORX mapping is correct and TX channel is connected to the configured ORX channel.Tx-ORx mapping checked. I also checked the Orx input level with rxDecPowerGet().
Hope the external path delay cal mask is set as described in the UG
devicePostMcsInitInst.initCals.calMask = ADI_ADRV9025_EXTERNAL_PATH_DELAY;
retval = adi_adrv9025_InitCalsRun(adrv9025_device, &devicePostMcsInitInst.initCals);
Can you please send us the DPD tracking config. parameters?
adi_adrv9025_DpdTrackingConfig_t dpdTrackingConfigInst;
float FULL_SCALE_CODE = 32768;
int32_t MThreshold_dBFS = -40;
int16_t DpdLowPowerThreshold_dBFS = -46;
int16_t DpdLowPowerThresholdORx_dBFS = -36;
float temp = powf(10, (MThreshold_dBFS / 20.0)) * FULL_SCALE_CODE;
uint32_t dpdMThreshold_val = pow(temp, 2);
uint16_t minAvgSignalLevel_val = pow(10, (DpdLowPowerThreshold_dBFS / 20.0)) * FULL_SCALE_CODE;
uint16_t minAvgSignalLevelOrx_val = pow(10, (DpdLowPowerThresholdORx_dBFS / 20.0)) * FULL_SCALE_CODE;
dpdTrackingConfigInst.txChannelMask = ADI_ADRV9025_TX2;
dpdTrackingConfigInst.dpdIndirectRegularizationValue = 20;
dpdTrackingConfigInst.dpdDirectRegularizationValue = 20;
dpdTrackingConfigInst.dpdSamples = 16384;
dpdTrackingConfigInst.dpdMThreshold = dpdMThreshold_val;
dpdTrackingConfigInst.dpdPeakSearchWindowSize = 65535;
dpdTrackingConfigInst.dpdUpdateMode = ADI_ADRV9025_DPD_TRACKING_UPDATE_MODE_2;
dpdTrackingConfigInst.minAvgSignalLevel = minAvgSignalLevel_val;
dpdTrackingConfigInst.dpdMu = 50
dpdTrackingConfigInst.minAvgSignalLevelOrx = minAvgSignalLevelOrx_val;
dpdTrackingConfigInst.dpdFilterSel = 1;
dpdTrackingConfigInst.enableDirectLearning = 1;
dpdTrackingConfigInst.dpdIndirectRegularizationLowPowerValue = 20;
retval = adi_adrv9025_DpdTrackingConfigSet(adrv9025_device, &dpdTrackingConfigInst);
printf(" DPD Tracking Config Set Result : %d\n", retval);
Please help.
On the sequence, it looks like the DPD reset with LUT restore step is missing after loading the model file and before full DPD reset (Between Step 8 and 9 ). Can you add this and let me know? Below is the typical seq (in brief)
On the sequence, it looks like the DPD reset with LUT restore step is missing after loading the model file and before full DPD reset (Between Step 8 and 9 ). Can you add this and let me know? Below is the typical seq (in brief)
Hi Ramarao/Justin. I am experience same behavior and all looks. How did you solve this?
Thanks in advance.
Its a DPD sequence related issue. Please make sure that the recommended DPD sequence is followed?
Whats the RX channel mask configured? Is it FDD/ TDD; SPI/Pin mode?
Do you get any DPD statistics? Can you share more details?