Post Go back to editing

ADRV9002 + ZCU102: Using an external LO

Category: Software
Product Number: ADRV9002BBCZ
Software Version: 2019_R2

We're using the Petalinux build of the 2019_R2 branch, on a ZCU102 system with an ADRV9002 eval board.
We've made a custom profile in TES, using RX1, RX2, and TX1 in TDD mode.

Currently we're encountering some difficulties in using an external LO for our project.
Within TES, a profile has been generated with the LO1 Source set to 'External', with this LO driving RX1/TX1. A divisor of 2 has been set, which matches the divisor the internal LO was using. This profile has been patched into the kernel, with a minor tweak to the driver code to set the initial LO frequency to 350MHz. With a divisor of 2, this means that an expected 700MHz LO frequency is expected.

Setting up the system, a 700MHz sine wave at ~650mV pk-pk is being fed to the EXT_LO1 SMA connection on the eval board prior to boot. On boot a failure, occurs during the driver's initialization:

[    7.600160] adrv9002 spi1.0: [ERROR]: Error number  3 (0x00000003), Recovery action -101.In file drivers/iio/adc/navassa/devices/adrv9001/public/src/adi_adrv9001_arm.c, in function adi_adrv9001_arm_CmdStatus_Wait, in line  651, variable name device.Error message ArmCmdStatusWait() failed due to thrown ARM error. Is device in correct state for calling command?.
[    7.632074] adrv9002 spi1.0: [ERROR]: Error number  13314 (0x00003402), Recovery action -2.In file drivers/iio/adc/navassa/devices/adrv9001/private/src/adrv9001_arm.c, in function adrv9001_ArmCmdErrorHandler, in line  2841, 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.
[    7.671337] adrv9002 spi1.0: [ERROR]: Error number  13314 (0x00003402), Recovery action -2.In file drivers/iio/adc/navassa/devices/adrv9001/public/src/adi_adrv9001_cals.c, in function adi_adrv9001_cals_InitCals_Run, in line  109, 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.
[    7.710246] adrv9002 spi1.0: adrv9002_setup, 2345: failed with "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" (13314)
[    9.735287] adrv9002 spi1.0: [ERROR]: Error number  3 (0x00000003), Recovery action -101.In file drivers/iio/adc/navassa/devices/adrv9001/public/src/adi_adrv9001_arm.c, in function adi_adrv9001_arm_CmdStatus_Wait, in line  651, variable name device.Error message ArmCmdStatusWait() failed due to thrown ARM error. Is device in correct state for calling command?.
[    9.767200] adrv9002 spi1.0: [ERROR]: Error number  13314 (0x00003402), Recovery action -2.In file drivers/iio/adc/navassa/devices/adrv9001/private/src/adrv9001_arm.c, in function adrv9001_ArmCmdErrorHandler, in line  2841, 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.
[    9.806459] adrv9002 spi1.0: [ERROR]: Error number  13314 (0x00003402), Recovery action -2.In file drivers/iio/adc/navassa/devices/adrv9001/public/src/adi_adrv9001_cals.c, in function adi_adrv9001_cals_InitCals_Run, in line  109, 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.
[    9.845366] adrv9002 spi1.0: adrv9002_setup, 2345: failed with "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" (13314)
[    9.867715] cf_axi_adc: probe of 84a00000.axi-adrv9002-rx-lpc failed with error -14
[    9.876523] cf_axi_tdd 84a0c800.axi-adrv9002-core-tdd1-lpc: Analog Devices CF_AXI_TDD MASTER (1.00.a)
[    9.886179] cf_axi_tdd 84a0cc00.axi-adrv9002-core-tdd2-lpc: Analog Devices CF_AXI_TDD MASTER (1.00.a)
[    9.913391] cf_axi_dds 84a0a000.axi-adrv9002-tx-lpc: Analog Devices CF_AXI_DDS_DDS MASTER (9.01.b) at 0x84A0A000 mapped to 0x00000000cc42f8f8, probed DDS ADRV9002
[    9.945386] cf_axi_dds 84a0c000.axi-adrv9002-tx2-lpc: Analog Devices CF_AXI_DDS_DDS MASTER (9.01.b) at 0x84A0C000 mapped to 0x000000004f815906, probed DDS ADRV9002



In the user guide for the ADRV9001 platform, there doesn't appear to be much detail on using an external LO, and the proper steps for making this work with the transceiver. Is this something that is supported by the driver? And is there something that I'm missing in making this configuration work?

Thanks,
~Seth