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]