Post Go back to editing

ADRV9002 Initial Calibration Failure

Category: Software
Product Number: ADRV9002
Software Version: ADRV9001-SDK v25, v21

We have a custom board using an ADRV9002 using only one channel (RX1A) with internal LO1 (900 MHz) and SPI-controlled manual gain at the moment. Unfortunately, we are experiencing an initial calibration error. We are running linux on our custom board. Our adrv9001.txt log shows the errors from SDKv25 (note some line numbers may slightly differ from the released code due to additional debug printf statements I have added to the code):

1970-01-01 09:26:29: ERROR:Error number 3 (0x00000003), Recovery action -101.In file ../c_src/devices/adrv9001/public/src/adi_adrv9001_arm.c, in function adi_adrv9001_arm_CmdStatus_Wait, in line 700, variable name device.Error message ArmCmdStatusWait() failed due to thrown ARM error. Is device in correct state for calling command?.

1970-01-01 09:26:29: ERROR:Error number 13314 (0x00003402), Recovery action -2.In file ../c_src/devices/adrv9001/private/src/adrv9001_arm.c, in function adrv9001_ArmCmdErrorHandler, in line 2853, variable name mailboxErrCode.Error message Error occurred during an Init Calibration. Check that no signal is being applied to the Rx ports. Check that correct external LOs are applied, and synchronized, where appropriate.

1970-01-01 09:26:29: ERROR:Error number 13314 (0x00003402), Recovery action -2.In file ../c_src/devices/adrv9001/public/src/adi_adrv9001_cals.c, in function adi_adrv9001_cals_InitCals_Run, in line 117, variable name NULL.Error message Error occurred during an Init Calibration. Check that no signal is being applied to the Rx ports. Check that correct external LOs are applied, and synchronized, where appropriate.

We get the same error in SDK v21 and v25.

We have tried a few things from other posts with no change in behavior:

  • Verified swing and frequency of ADRV9002 reference clock (38.4 MHz) single-ended CMOS, clipped-sine. Verified MODEA is 1.8V.
  • Disconnected RX ports from signal sources
  • Terminated all RX, TX, and external LO ports with 50 ohms
  • Checked voltages after initialization but before calibration
  • Modified the board to ground external LO ports

We have run the same code on ADRV9002 evaluation board with ZCU102 with no issues.

We DO NOT get initial calibration issues when disabling ADI_ADRV9001_INIT_CAL_RX_GAIN_PATH_DELAY.

We also successfully ran adi_adrv9001_Utilities_SystemDebugPreCalibrate() after running the auto-generated initialize().

Questions/Requests:

  • Any insight to the specific software error codes would be greatly appreciated and/or any other things to try to resolve our issue.
  • Any additional info into how the RX gain path delay calibration works would be greatly appreciated, such as what frequency we might expect to see on the RX port while this calibration is occurring.

Thanks!



Added note about manual gain over SPI
[edited by: Sloth1234 at 10:39 AM (GMT -5) on 5 Mar 2024]
  • Hi,

    Sorry to hear of the trouble. Calibration error could be caused by many reasons such as incorrect configuration, power supply noise, manufacturing issue, and so on. And it is good to know that the calibration passes if "RX_GAIN_PATH_DELAY" is disabled, but it is still not enough to pinpoint the root cause, and we will have to examine every possible causes. 

    Since your software runs on ADI evaluation board with ZCU102, we may need to focus on hardware. It'd be helpful if you could provide the following information.

    • Do you use your own Linux or IIO driver provided by ADI? Do you generate the C code from TES?
    • Could you share your configuration?
    • Do you have multiple boards and do all of them behave same way? 
    • When checking your power supply during initialization, have you ensured that ripples/glitches are within spec? Please note that power supply is one of the most frequent causes of calibration error.
    • Are you able to check the power supply noise/glitch during calibration as well?
    • Are you able to share the schematic and layout for us to review? I'll see whether I can find resources to review them.

    Regards,

    YH