Post Go back to editing

Error during ARM System Programming

Category: Software
Product Number: ADRV9006
Software Version: TES v0.29.0

Hello, 

We are bringing up a custom bare-metal Zynq board using an ADRV9006 and the v0.29.0 SDK with the TES. Our initialization sequence consistently fails at adi_adrv9001_arm_System_Program with error code 0xD208.

If we attempt to ignore this and proceed to Initial Calibrations, we get error 0xE108.

By tracing the API's mailbox error handler and object_ids.h, we think 0xD208 maps to upper byte 0xD2 (OBJID_DRV_EFUSE), suggesting the ARM Efuse driver is throwing error 0x08 during System_Program execution. For the Calibrations error 0xE108, 0xE1 maps to OBJID_SYS_INIT_CAL, and 0x08 is likely the same as the above error.

The IC package reads ADRV9006, and an SPI read confirms Part = 0x1989, Major = 0xC, Minor = 0x0, so presumably C0. TES was used to generate a Channel-1-only config with Tx disabled for device "ADRV9006 2T2R Lite". Our external clock measures 50 MHz, verified stable with an oscilloscope.

Our bare-metal C code exactly mirrors the sequence in the TES-generated initialize.c. We have confirmed that all prerequisites (Carrier Configure, Rx/Tx Channel Enablement Delays, AdcSwitchEnable, Ssi PowerDown, PllLoopFilter_Set, MonitorMode setup, PortSwitch, and MCS delays) are executed in the exact same order as the TES output prior to calling arm_System_Program(device, 1).

The arm_binary.bin and stream_binary.bin loaded to the device are byte-for-byte identical to the STANDARD_BYTES_252 binaries exported by our TES v0.29.0 session.

The adi_adrv9001_arm_StartStatus_Check passes successfully, confirming that SPI loaded the binaries correctly and the internal checksums passed. The ARM mailbox is completely responsive. For example, adi_adrv9001_Temperature_Get works perfectly.

We probed the power rails directly at the ADRV9006 pins during System_Program execution. There are no voltage drops when the ARM attempts to read the Efuse.

Is there a known compatibility issue with the v0.29.0 firmware binary reading the Efuse of this specific ADRV9006 C0 silicon?

Any insight into what internal error 0x08 means for the Efuse driver would be greatly appreciated.

Thank you!

Parents
  • Following up on this: The 9006 Data sheet seems to only document performance specs for the low power ADCs (no mention of the high performance). Looking at the feature differences in UG1828 page 12, under "ADC Option" ADRV9006 is listed only as LP, rather than HP/LP.

    Should we take all of this to mean that High Performance is simply not an available option on the 9006, and that's why the ARM System Program is failing?

Reply
  • Following up on this: The 9006 Data sheet seems to only document performance specs for the low power ADCs (no mention of the high performance). Looking at the feature differences in UG1828 page 12, under "ADC Option" ADRV9006 is listed only as LP, rather than HP/LP.

    Should we take all of this to mean that High Performance is simply not an available option on the 9006, and that's why the ARM System Program is failing?

Children
No Data