Post Go back to editing

Running the adi_adrv9001_Utilities_SystemDebugPreCalibrate utility

Category: Software
Product Number: ADRV9002
Software Version: Vitis

Using Vitis currently running debug to try and narrow down the scope of where our in house custom board is failing. In a cluster of known good and passing production boards this one tends to fail the ADI_ADRV9001_INIT_CAL_TX_ATTEN_DELAY and the ADI_ADRV9001_INIT_CAL_RX_GAIN_PATH_DELAY. These fails come with similar errors as other forum posts. Mainly just "calibration failed with error code 7". Along side this when i remove these init cals from the cal mask for the channels i can successfully initialize the radio and our in house automated tests sees some pretty catastrophic failures on both TX lines.

This is where i can begin to more effectively describe my issue at hand.

The adi code debug utility has 4 arguments(device pointer data structure, pointer to initialize data structure, absolute path for the arm image to be programmed, absolute path for the stream image to be programmed)

my efforts thus far seem to allow only some of the debug utility to act accordingly. I've had to comment out the hardware reset because the system seems to hang up waiting for an assert each time this is called. I pass all of the tests up until "Load Stream processor image", the same goes for what occurs with the ARM image later in the debug utility. 

I currently write the initialize_binary_9 and initialize_binary_10 arrays out to a *.bin file on the SD card using modified versions of functions in sdFiles.c, although this is working the debug utility still freezes any time it is loading the image.

My current DebugPreCalibrate call looks as such:

adi_adrv9001_Utilities_SystemDebugPreCalibrate(adi_adrv9001_device_pointer, &initialize_init_7, "armImage.bin", "streamImage.bin");

I have also confirmed that these are being written appropriately in a non corrupted state to the same SDCard that houses the BOOT.bin, and later on in product use houses our I and Q data captures

Any information or steering into a clearer direction would be greatly appreciated, I'm beginning to think that the absolute path provided to the function isn't correct because these images are supposed to be written to the ADRV 

  • Hi,

    It sounds that you got a batch of boards and some are good and some fail calirbation, then could you confirm that this DebugPreCalibrate function fails on both of good and failed boards?

    It's not immeidately obvious what went wrong in your code. It seems that "adi_hal_StreamImagePageGet" funciton needs to implemented by user to read the contents of the array from the file, and you should be able to examine the stream image data by comparing the contents of the "streamBinaryImageBuffer[]" array and initialize_binary_9 inside "adi_adrv9001_Utilities_StreamImage_Load()" function, which is called from the DebugPreCalibrate () function.

    Hope this helps, and please let us know if you have any further information.

    Regards,

    YH 

  • I cannot successfully run DebugPreCalibrate because the armImage.bin and streamImage.bin that I have written to the SDCard using modified forms of sdWrite are not being loaded into the ADRV correctly.

    Known good boards that pass calibration also fail the Debug Utility in the exact same way, this is why I know the armImage and streamImage files are the current issue. Because neither image is loaded into the board, the DEV_CLK part of debug also fails on both boards, because these images are necessary for setup.

    I'm mostly confused by what is intended by that description in the header file, absolute image path, since I am giving an absolute path to a *.bin file on the SD card that has the contents of each respective intiialize_binary_9/10 buffer written accordingly.

    Essentially i am asking why the *.bin files on the SD card are not usable by the debug utility, and I believe you are pointing me in the right direction by saying that as the user I must implement "adi_hal_StreamImagePageGet" in order to successfully run this utility

    The terminal gets stuck at either "Load Stream Processor Image" or "Load Arm Image", and we get fed into the XilNullHandler DieLoop for an infinite amount of time

  • I'd like to note that the "adi_hal_StreamImagePageGet" and "adi_hal_ArmImagePageGet" are called to handle the binary files I currently reference as strings in the arguments within the DebugPreCalibrate function. it seems like doing a user based form is redundant when the arguments are absolute data paths to respective *.bin files that are handled internally by the Debug function.

    My main sticking point is why are the binary files that show up as strings in my arguments for the debug function causing the utility to fault out?

  • Could you clarify how the "adi_hal_StreamImagePageGet" and "adi_hal_ArmImagePageGet" functions are implemented in your system? The SDK release comes with the following implementation for those functions, which are good only for ADI reference design. If you have your custom boards and your own bare metal or Linux framework, then they need to be implemented for you own implementation.

      

    -YH

  • This could probably be part of the issue, and potentially be what is sending me continuously to the NullHandler