Post Go back to editing

ADRV9002 Clock PLL initialization error

Category: Software
Product Number: ADRV9002
Software Version: API 67.1.1

Having some problems booting an ADRV9002 on a custom board. SPI seems to be working OK, but during boot we get the following message:

adrv9002 spi1.0: [ERROR]: Error number  51456 (0x0000c900), Recovery action -101.In file drivers/iio/adc/navassa/devices/adrv9001/public/src/adi_adrv9001_arm.c, in function adi_adrv9001_arm_StartStatus_Check, in line  170, variable name NULL.Error message Clock PLL initialization error.
adrv9002 spi1.0: adrv9002_digital_init, 2211: failed with "Clock PLL initialization error" (51456)

We have initalliy had some problems with the clocking scheme (incorrect footprint on a device), but we are now feeding a 38.4MHz clock into the device and are still getting this message. Clock levels are a little lower than I'd like (approx 200mVp-p) but the device is clearly seeing something clock like as if I remove the DC blocking caps I get the following message

adrv9002 spi1.0: [ERROR]: Error number  1 (0x00000001), Recovery action -2.In file drivers/iio/adc/navassa/devices/adrv9001/public/src/adi_adrv9001_powermanagement.c, in function adi_adrv9001_powermanagement_Configure_Validate, in line  39, variable name readPattern.Error message ARM memory is not accessible. Check whether device clock and/or power is connected to the ADRV9001 board.
adrv9002 spi1.0: [ERROR]: Error number  1 (0x00000001), Recovery action -2.In file drivers/iio/adc/navassa/devices/adrv9001/public/src/adi_adrv9001_powermanagement.c, in function adi_adrv9001_powermanagement_Configure, in line  70, variable name NULL.Error message ARM memory is not accessible. Check whether device clock and/or power is connected to the ADRV9001 board.
adrv9002 spi1.0: adrv9002_power_mgmt_config, 2109: failed with "ARM memory is not accessible. Check whether device clock and/or power is connected to the ADRV9001 board" (1)

From this, I conclude that some sort of clock is being detected, but we always get the Clock PLL initialization error. Default profile and device tree are both set to 38.4MHz (as per reference board) but we can never seem to get past this step. Am I missing something somewhere?

Any advice on how to proceed any further?

Regards

Simon Davey

  • As a further note to this, just in case the clock levels were a problem, I have wired (with a very short length of cable) the clock output from the eval board to the clock input on our custom board, and we still get the clock PLL initialization error

  • From further inspection I have noted that the RBIAS resistor was unfitted on the board. fitting this, has removed the Clock PLL initialization error and turned it into:
    adrv9002 spi1.0: [ERROR]: Error number  51457 (0x0000c901), Recovery action -101.In file drivers/iio/adc/navassa/devices/adrv9001/public/src/adi_adrv9001_arm.c, in function adi_adrv9001_arm_StartStatus_Check, in line  170, variable name NULL.Error message Device profile init setup error.
    adrv9002 spi1.0: adrv9002_digital_init, 2211: failed with "Device profile init setup error" (51457)

    This is when loading the default Navassa profiles at startup

  • This issue has now been fixed. Our board had 3 problems, which I will detail here in the hope it helps someone else in future:

    First was flawed design in the clock distribution. Applying a useable clock then resulted in the error below.

    Second was the clock PLL initalization issue: This seems to have been caused by the unfitted RBIAS resistor on the prototypes. The datasheet is not very clear on what the RBIAS resistor is related to, other than the fact it "generates an internal current". Not exactly helpful

    The "Device profile init setup error" may have been a red herring as it did not occur on other boards. I had debug messages turned on in software and was getting lots of "adi_adrv9001_arm_CmdStatusOpcode_Get *******************************" messages but not getting anywhere past that. After probing the board I noticed that the 1.3V rail was dropping below spec during initialization. Correcting this now allows the ADRV9002 to initialise correctly.

    I hope this of use to someone else in the future

  • Hi Simon,

    Thank you for documenting your findings, and I'm glad that you managed to get to the bottom of your issue.

    Kind Regards,
    Michał