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.

AWR1843: Error while getting temperature in MRR demo

Part Number: AWR1843

Hi team,

Customer is trying to put the MRR_MSS_CLIInit  in a new task in MRR LAB007 demo. and also create a task for getting temperature.

The code that temperature can get correct

#if 0

      Task_Params_init(&taskParams);
      taskParams.priority  = 3;
      taskParams.stackSize = 4*1024;
      Task_create(MRR_MSS_CLIInit, &taskParams, NULL);
#else
      MRR_MSS_CLIInit ();
#endif


      Task_Params_init(&taskParams);
      taskParams.priority  = 3;
      taskParams.stackSize = 1*1024;
      Task_create(tempereature, &taskParams, NULL);

}

void tempereature()
{
    int32_t             errCode;
    uint8_t uartbuf[50];


    while(1)
    {
        errCode = rlRfGetTemperatureReport(RL_DEVICE_MAP_INTERNAL_BSS, &tempData);
        Task_sleep(1000);
        if(errCode < 0)
        {
            sprintf(uartbuf,"GetTemp API failed \r\n");
            UART_writePolling (gMrrMSSMCB.commandUartHandle,
                               (uint8_t*)uartbuf,
                               strlen(uartbuf));
        }
        else
        {
            sprintf(uartbuf,"Temperature: %d, %d, %d, %d, %d, %d, %d, %d \r\n", tempData.tmpRx0Sens, tempData.tmpRx1Sens,
                                                                        tempData.tmpRx2Sens, tempData.tmpRx3Sens,
                                                                        tempData.tmpTx0Sens, tempData.tmpTx1Sens,
                                                                        tempData.tmpPmSens, tempData.tmpDig0Sens);
            UART_writePolling (gMrrMSSMCB.commandUartHandle,
                               (uint8_t*)uartbuf,
                               strlen(uartbuf));
        }
    }
}

When change the "#if 0" to "#if 1"

Then temperatue value we get using the "rlRfGetTemperatureReport" API can only refresh one time. from the second time, the temperature is a fix value.

Can you please let me know what's the issue here?

Issue code listed below, you can easily repeat this test in your side with default lab007 demo.

#if 1

      Task_Params_init(&taskParams);
      taskParams.priority  = 3;
      taskParams.stackSize = 4*1024;
      Task_create(MRR_MSS_CLIInit, &taskParams, NULL);
#else
      MRR_MSS_CLIInit ();
#endif


      Task_Params_init(&taskParams);
      taskParams.priority  = 3;
      taskParams.stackSize = 1*1024;
      Task_create(tempereature, &taskParams, NULL);

}

void tempereature()
{
    int32_t             errCode;
    uint8_t uartbuf[50];


    while(1)
    {
        errCode = rlRfGetTemperatureReport(RL_DEVICE_MAP_INTERNAL_BSS, &tempData);
        Task_sleep(1000);
        if(errCode < 0)
        {
            sprintf(uartbuf,"GetTemp API failed \r\n");
            UART_writePolling (gMrrMSSMCB.commandUartHandle,
                               (uint8_t*)uartbuf,
                               strlen(uartbuf));
        }
        else
        {
            sprintf(uartbuf,"Temperature: %d, %d, %d, %d, %d, %d, %d, %d \r\n", tempData.tmpRx0Sens, tempData.tmpRx1Sens,
                                                                        tempData.tmpRx2Sens, tempData.tmpRx3Sens,
                                                                        tempData.tmpTx0Sens, tempData.tmpTx1Sens,
                                                                        tempData.tmpPmSens, tempData.tmpDig0Sens);
            UART_writePolling (gMrrMSSMCB.commandUartHandle,
                               (uint8_t*)uartbuf,
                               strlen(uartbuf));
        }
    }
}

Thanks.

Wesley

  • Hi,

    Customer should follow implementation provided in the mmWave SDK demo.

    This feature is provided as part of the stats in the oob demo

    thank you
    Cesar

  • Hi Cesar.

    Another thing is that customer tried it in SDK3.2, and it works, customer can get temperature feedback correct. but when he switch to SDK3.5, it fails. nothing had change in the code. Customer had concern on the RSS firmware issue.

    Please confirm. Thanks.

    Wesley

  • Do you mean that in mmWave SDK 3.5/6 demo the temperature reporting does not work?

    Thank you

    Cesar

  • Hi Cesar,

    yes, In SDK3.5, it doesn't work. but in SDK3.2, it works

    Wesley

  • Hi,

    Sorry for the delay.

    I will report this to the SDK team.

    I don't think it is an RSS firmware issue because no other customer has reported this.

    I think it has to be related to the software

    thank you

    Cesar

  • Hi Cesar,

    Issue solved. MRR demo didnot set the calibMonTimeUnit in application layer, but SDK3.5 need to do it. by manually adding this part, issue solved.

    file change listed below:

    "C:\ti\mmwave_sdk_03_05_00_04\packages\ti\control\mmwave\src\mmwave_link.c"

    int32_t MMWave_openLink

    (

        MMWave_MCB*                 ptrMMWaveMCB,

        MMWave_CalibrationData*     ptrCalibrationData,

        int32_t*                    errCode

    )

    {

        int32_t                     retVal = MINUS_ONE;

        rlRfCalMonFreqLimitConf_t   freqLimit;

        rlRfInitCalConf_t           rfInitCalib;

        rlRfCalMonTimeUntConf_t     timeCfg;

     

        /* Initialize the configurations: */

        memset ((void *)&freqLimit,   0, sizeof(rlRfCalMonFreqLimitConf_t));

        memset ((void *)&rfInitCalib, 0, sizeof(rlRfInitCalConf_t));

        memset ((void *)&timeCfg,     0, sizeof(rlRfCalMonTimeUntConf_t));

     

        /* Link is not operational: */

        ptrMMWaveMCB->linkStatus = 0U;

     

        /****************************************************************************************

         * Setup the RF Calibration Time unit:

         ****************************************************************************************/

        if(ptrMMWaveMCB->openCfg.calibMonTimeUnit != 0)

        {       

            timeCfg.numOfCascadeDev = 1;

            timeCfg.calibMonTimeUnit = 1;//ptrMMWaveMCB->openCfg.calibMonTimeUnit;

    Thanks,

    Wesley