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.

IWR1443: frame periodicity in vital signs lab

Part Number: IWR1443

Hi,

When I saw the source code of the vital signs lab, something was confused.

The question is that the LSB of the frame periodicity in sdk user guide is 1 ms, while in the source code it becomes 5ns, which one is correct?

And if it equals to 5ns, the spectral estimation based on the number of peaks will be confused, since the obj->peakDistanceHeart_Min is to large.

numPeaksHeart = find_Peaks(obj->tempCircularBuff, float_type, pPeakLocsHeart,obj->pPeakValues, 0, circular_Buffer_size_heart - 1);
if (numPeaksHeart != 0)
{
numPeaksHeart = filterPeaksWfm(pPeakLocsHeart, pPeakLocsValid, numPeaksHeart, obj->peakDistanceHeart_Min, obj->peakDistanceHeart_Max);
}

obj->peakDistanceHeart_Min  = (uint16_t) obj->samplingFreq_Hz/(obj->heart_endFreq_Hz);

Thanks for your help!

Regards,

Hengyang Fang

  • Hi Hengyang,

    You are right. The LSB of the frame periodicity in code is 5ns. And in SDK user guide it's 1 ms.

    In SDK user guide, this frameCfg is the CLI command that used to config the frame's parameter. When the 14xx receive this CLI command, the code will calculate the exact value for the 14xx.

    For the frame periodicity, SDK code will convert the X ms value in CLI command to the Y*LSB( 5ns ) for the 14xx. I have listed how the code calculated it below.

    You can find more details in C:\ti\mmwave_sdk_01_01_00_02\packages\ti\utils\cli\src\cli_mmwave.c

    static int32_t CLI_MMWaveFrameCfg (int32_t argc, char* argv[])
    {
        ......
    
        /* Populate the frame configuration: */
        frameCfg.chirpStartIdx      = atoi (argv[1]);
        frameCfg.chirpEndIdx        = atoi (argv[2]);
        frameCfg.numLoops           = atoi (argv[3]);
        frameCfg.numFrames          = atoi (argv[4]);
        frameCfg.framePeriodicity   = (uint32_t)((float)atof(argv[5]) * 1000000 / 5);
        frameCfg.triggerSelect      = atoi (argv[6]);
        frameCfg.frameTriggerDelay  = (uint32_t)((float)atof(argv[7]) * 1000000 / 5);
    
        ......
    }
    

    If you have further questions, please let me know. Thanks.

    Regards,

    Wesley