ADRV9029 DPD error troubleshooting
ADI_ADRV9025_DPD_NO_PATHDELAY_ERROR
Root cause: Error code to convey that the external path delay calibration was not run prior to enabling DPD tracking cal.
Recommended recovery actions
Sanity check to ensure that PA is turned on. Also, ensure that the PA current consumption in standby condition (Iq) matches the specification.
Ensure that the external Tx to ORx routing matches the Tx to ORx mapping setup during init.
Ensure that there exists a valid signal path from Tx to ORx.
Run the external path delay init cal with mask value 0x200000 and enable the DPD tracking cal post successful execution of the external path delay init cal.
ADI_ADRV9025_DPD_ORX_SIGNAL_TOO_SMALL_ERROR
Root cause: Error code to convey that post PA data fed back into ORx has a very low signal to noise ratio for DPD tracking cal to perform correlations with Tx data and therefore adaptation will not be performed.
Recommended recovery actions
Sanity check to ensure that PA is turned on. Also, ensure that the PA current consumption in standby condition (Iq) matches the specification.
Increase ORx gain to see if this error disappears.
Decrease Tx front end attenuation/baseband digital backoff if the error persists despite ORx gain adjustment.
A combination of both (Tx atten and ORx gain adjustment) of the above.
ADI_ADRV9025_DPD_ORX_SIGNAL_SATURATING_ERROR
Root cause: Error code to convey that the ORx signal received by DPD is saturating.
Recommended recovery actions
Increase front end Tx attenuation.
Decrease ORx front end gain.
Adjust digital backoff if required.
A combination of both of the above.
ADI_ADRV9025_DPD_TX_SIGNAL_TOO_SMALL_ERROR
Root cause: Error code to convey that the Tx signal is too small to perform DPD adaptation.
Recommended recovery actions
Increase digital baseband power.
Verify CFR settings if ADRV9029 CFR is turned on.
Review CLGC or DPD reported Tx power.
ADI_ADRV9025_DPD_TX_SIGNAL_SATURATING_ERROR
Root cause: Error code to convey that the Tx signal exceeds the maximum ADC code and could be potentially clipped causing spectral distortion.
Recommended recovery actions
Decrease digital baseband power.
Verify CFR settings to ensure that a high PAR is not causing the DAC to overrange.
Review DPD reported Tx power via adi_adrv9010_DpdStatusGet() API.
ADI_ADRV9025_DPD_AM_AM_OUTLIERS_ERROR
Root cause: Error code to convey that the DPD adaptation has encountered too many AM-AM outliers (i.e. big difference in Tx and ORx samples). This could be caused due to memory effect of the PA or Tx attenuation and ORx gain settings. A misalignment in Tx and ORx samples due to a bad path delay estimation could also cause this error.
Recommended recovery actions
Ensure that path delay value is correct. Disable DPD tracking and execute path delay init cal via InitCalsRun() to re-calibrate the delay and enable DPD tracking cal. If the error persists proceed to next step.
Ensure that the ORx ADC and Tx DAC are not saturating by decreasing the Tx front end gain via TxAttenSet() API, increasing ORx front end attenuation via RxGainSet() API or both. If the error persists, proceed to next step. Fine tune Tx attenuation and ORx gain settings to see if the AM-AM errors persist.
Ensure that ORx DC offset calibration is functioning correctly by reading back the ORx DC offset calibration status via TrackingCalStatusGet() API. If the ORx DC offset calibration is enabled and the error persists, proceed to next step.
Disable DPD tracking till the signal is steady.
If there were other cals that were enabled at the same time as DPD, add some delay interval between enabling other cals (QEC/LO Leakage) and DPD.
Investigate the AM-AM and AM-PM graphs of the PA at that power level.
Ensure that other cals like TxLOL, TxQEC are functioning correctly (sometimes image performance can cause AM-AM issues).
Turn off DPD and see if the AM-AM issues persist.
ADI_ADRV9025_DPD_ACT_I_ASSIGNMENT_CONFLICT_ERROR
Root cause: The DPD model supplied to guide the internal DPD adaptation via DpdModelConfigSet() contains memory terms that cannot be accommodated due to hardware limitations.
Recommended recovery actions: Please refer to the DPD actuator LUT limitations in the ADRV9029 user guide while generating DPD models.
ADI_ADRV9025_DPD_ACT_K_ASSIGNMENT_EXCEED_LIMIT_ERROR
Root cause: The degree of non-linearity for the DPD model supplied to guide the internal DPD adaptation via DpdModelConfigSet() cmd cannot be synthesized into the actuator Look Up Tables.
Recommended recovery actions: Please refer to the DPD actuator LUT limitations in the ADRV9029 user guide while generating prior DPD models to guide adaptation.
ADI_ADRV9025_DPD_ACT_MULTIPLIER_ROW_ASSIGNMENT_CONFLICT_ERROR
Root cause: The DPD model supplied to guide internal DPD adaptation via DpdModelConfigSet() violates the restrictions imposed by the DPD actuator hardware for memory (i) and cross terms (i).
Recommended recovery actions: Please refer to the DPD actuator LUT limitations in the ADRV9029 user guide while generating prior DPD models to guide adaptation.
ADI_ADRV9025_DPD_ACT_LUT_OUT_OF_RANGE_ERROR
Root cause: The DPD model supplied to guide internal DPD adaptation via DpdModelConfigSet() violates the restrictions imposed by the DPD actuator hardware for LUT usage.
Recommended recovery actions: Please refer to the DPD actuator LUT limitations in the ADRV9029 user guide while generating prior DPD models to guide adaptation.
ADI_ADRV9010_DPD_ACT_NO_FREE_MULTIPLIER_ERROR
Root cause: The DPD model supplied to guide internal DPD adaptation via DpdModelConfigSet() violates the restrictions imposed by the DPD actuator hardware for roaming LUTs.
Recommended recovery actions: Please refer to the DPD actuator LUT limitations in the ADRV9029 user guide while generating prior DPD models to guide adaptation.
ADI_ADRV9025_DPD_ADP_WRITE_LUT_ERROR
Root cause: Error code to convey that the firmware could not update the DPD actuator look up tables. This could be due to other transactions in the system which have occupied the AHB bus and as a result the transaction cannot be performed.
Recommended recovery actions
Disable DPD tracking cal via TrackingCalsEnableSet() command and reset DPD via DpdReset() command to put the actuator in unity gain mode.
Might require a full firmware reset if error persists despite DPD reset.
ADI_ADRV9025_DPD_HARDWARE_IN_USE_ERROR
Root cause: Error code to convey that the DPD hardware is in use by another feature. Typical root cause of this error might be due to correlators being in use by another hardware. This error should not occur since the scheduler in the firmware takes care of scheduling various tracking cals competing for resources.
Recommended recovery actions
Full DPD reset.
Might require a full firmware reset if the error persists despite DPD reset.
ADI_ADRV9025_DPD_DATA_CAPTURE_ERROR
Root cause: Error code to convey that there was a DPD data capture failure. This might be caused due to Tx/ORx signal paths not being enabled to capture data OR the capture engine paused due to other systemic issues.
Recommended recovery actions
Sanity check to ensure that PA is turned on. Also, ensure that the PA current consumption in standby condition (Iq) matches the specification.
Disable other cals and see if issue persists (in case other cals are hogging the datapath/scheduler).
Full reset DPD.
Enable DPD tracking cal.
Might require a full system reset if the error persists.
ADI_ADRV9025_DPD_DATA_XACC_ERROR
Root cause: Error code to convey that the cross correlation caused an error due to a timeout in the hardware correlator. This is typically observed when there is not enough headroom in the signal to perform DPD adaptation.
Recommended recovery actions
Sanity check to ensure that PA is turned on. Also, ensure that the PA current consumption in standby condition (Iq) matches the specification.
Disable other cals and see if issue persists (in case other cals are hogging the datapath/scheduler).
Full reset DPD.
Enable DPD tracking cal.
Might require a full system reset if the error persists.
ADI_ADRV9025_DPD_STABILITY_ERROR
Root cause: The DPD algorithm has encountered one or more of the following:
The Direct EVM (ORx and pre-DPD actuator data) and Indirect EVM (ORx and post-DPD actuator data) has exceeded the limits. By default, a 5% limit on direct EVM and an 8% limit on indirect EVM is imposed.
An underflow OR overflow of pre-DPD Tx RMS power/post-DPD Tx RMS power/ORx RMS power has occurred. The threshold is configurable via adi_adrv9010_DpdFaultConditionsSet() API.
An underflow OR overflow of pre-DPD Tx peak power/post-DPD Tx peak power/ORx peak power has occurred. The threshold is configurable via adi_adrv9010_DpdFaultConditionsSet() API.
Recommended recovery actions
For EVM errors, please ensure that there is no interference in the ORx path such that it could cause a large enough error between the Tx and ORx samples.
The DPD stability statistics can be retrieved via adi_adrv9010_DpdStatusGet() API for examination.
The stability fault conditions including EVM errors and power level thresholds for triggering a stability error is configurable via adi_adrv9010_DpdFaultConditionsSet() API. The thresholds can be relaxed to see if DPD recovers from the error condition.
Finally, the recovery actions on occurrence of fault conditions is configurable via adi_adrv9010_DpdRecoveryActionSet() API.
ADI_ADRV9025_DPD_TRACK_CLGC_SYNC_ERROR
Root cause: A semaphore based synchronization mechanism was introduced between DPD and CLGC algorithms in SW 3.0 to ensure that there is no race condition between the two. With the synchronization mechanism, CLGC is always guaranteed to finish execution before DPD. The DPD-CLGC synchronization error indicates that DPD and CLGC semaphores were not exchanged successfully causing this error.
Recommended recovery actions
Allow for a few DPD update iterations before taking any actions to see if the algorithms synchronize themselves.
Disable CLGC and re-enable CLGC.
If error persists, disable both CLGC and DPD and re-enable them again.
If the error still persists, a full firmware reset is required.
ADI_ADRV9025_DPD_ACT_LUT_ENTRY_SAT_ERROR
Root cause: This error occurs when the degree of GMP polynomial (especially the power term ‘k’) plus the Tx sample magnitude is high causing an overflow of the calculated LUT entry.
Recommended recovery actions: The user can try modifying the DPD model programmed via DpdModelConfigSet() command to reduce the number of Sum of Product terms in the GMP polynomial used to model the PA (DPD Model) assigned to a LUT.
ADI_ADRV9025_DPD_MESSAGE_WAIT_TIMEOUT_ERROR
Root cause: This error occurs when the inter-processor communication between ARM-C to ARM-D fails.
Recommended recovery actions
Ensure that ARM-D has booted up correctly and is still alive. One way to check is to verify that the DPD iteration count retrieved via adi_adrv9025_DpdStatusGet() is incrementing.
If ARM-D has crashed, a full system reset might be necessary.
ADI_ADRV9025_DPD_MUTEX_CREATION_ERROR
Root cause: This error occurs when DPD and CLGC are both enabled. The DPD and CLGC tracking cals are internally synchronized through a semaphore mechanism.
Recommended recovery actions
Disable CLGC tracking calibration via TrackingCalsEnableSet() cmd and re-enable CLGC tracking. If the error is not resolved move to next step.
Disable CLGC tracking and DPD tracking via TrackingCalsEnableSet() cmd and enable DPD tracking cal only. If the DPD updates are happening correctly, enable CLGC tracking. If the error persists move to next step.
Disable all tracking calibrations via TrackingCalsEnableSet() cmd and bring up one cmd at a time. If the error persists a full system reset might be required.
ADI_ADRV9025_DPD_DATA_CAPTURE_TIMEOUT_ERROR
Root cause: Error to convey that the DPD capture has timed out waiting for 1 second or more for a scheduled DPD capture to finish.
Recommended recovery actions
Review the test vector to make sure there are no discrepancies.
Ensure that there are no peaks in the last 4096 samples of the test vector before Tx EN goes low in TDD mode.
ADI_ADRV9025_DPD_CHOL_SOLVER_ERROR
Root cause: Error to convey that the coefficient decomposition hardware is unable to resolve coefficients from auto-correlation/cross-correlation outputs during DPD adaptation.
Recommended recovery actions
Ensure that the path delay value is correct. Run path delay calibration again if required.
Reduce the degree of the polynomial in the DPD model by reducing the value of ‘k’.
ADI_ADRV9025_DPD_UNKNOWN_RPC_ERROR
Root cause: It is very unlikely that the transceiver gets into this state and ARM entered into an unknown error state.
Recommended recovery actions
Reset the transceiver which means complete re-initialization of the system.