This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AWR1642BOOST: Apparent Structure mismatch for rlRecvdGpAdcData_t in SDK 1.1

Part Number: AWR1642BOOST

Hello;

It appears there's a mismatch between the structure rlRecvdGpAdcData_t and the data that gets populated by the RL_RF_AE_GPADC_MEAS_DATA_SB asynchronous event.

It looks like the reserved field should NOT be in there and it's causing all of the min, max, and average values to be shifted over by 2 bytes for EACH GPADC result. See my debugging window with annotations below:

I did not see this behavior with the previous SDK version. Please advise if my assumption about the min, max, and average value being shifted is correct. It seems the structure defined within C:\ti\mmwave_sdk_01_01_00_02\packages\ti\control\mmwavelink\mmwavelink.h is different than the struct defined in the C:\ti\mmwave_dfp_00_09_01_06\docs\AWR1xx_Radar_Interface_Control.pdf

Here's the comparison:

Thanks,
Erik

  • Hello Erik,

    Yes, your assumption is right about structure definition.

    mmwavelink.h has wrong definition of the same structure which is going to fix in the upcoming release.

    Here is the code snippet of correct structure definition which you need to inject into your source file (mmwavelink.h) as a work around.

    /* [7-11] are reserved sensor types */

    #define RL_MAX_GPADC_SENSORS                    (12U)


    /*! \brief
    * GPADC measurement data for sensors
    */
    typedef struct rlGpAdcData
    {
    /**
    * @brief Min value of GP ADC data
    */
    rlUInt16_t min;
    /**
    * @brief Max value of GP ADC data
    */
    rlUInt16_t max;
    /**
    * @brief Avg value of GP ADC data
    */
    rlUInt16_t avg;
    } rlGpAdcData_t;

    /*! \brief
    * Sensors GPADC measurement data for event RL_RF_AE_GPADC_MEAS_DATA_SB
    */
    typedef struct rlRecvdGpAdcData
    {
    /**
    * @brief collected all GP ADC data
    */
    rlGpAdcData_t sensor[RL_MAX_GPADC_SENSORS];
    } rlRecvdGpAdcData_t;

    Regards,

    Jitendra

  • Jitendra,

    Thank you for the response. As an FYI, setting RL_MAX_GPADC_SENSORS to 12 caused all zeros to be populated in the GPADC results. Keeping RL_MAX_GPADC_SENSORS at 7 provided the expected results.

    Regards,
    Erik