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:生命体征实验的配置文件

Guru**** 2595770 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/656350/iwr1443-the-configure-profile-of-the-vital-sign-lab

器件型号:IWR1443

您好!

为什么要将 numChirpsPerFrame 设置为2、前提是该进程是一帧执行一次? 在这种情况下  、帧中有一个线性调频脉冲是无用的?

 配置配置文件如下所示:

帧配置0 2 0 50 1 0

即 啁啾 EndIdx=0、 啁啾 StartIdx=0、 numLoops=2

 而 numChirpsPerFrame =(chirpEndIdx-chirpStartIdx+1)* numLoops = 2。

感谢您的回复!

此致、

恒阳芳

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Hengyang、您好!

    您的理解是正确的、即只需要一个线性调频脉冲。 但是、至少我们必须配置2个线性调频脉冲、因为 ADC 数据存储在乒乓缓冲器中。 生命体征实验仅使用来自第一个线性调频脉冲的数据、而第二个线性调频脉冲被丢弃。

    此致
    尼廷
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Nitin、
    非常感谢!
    此致、
    衡阳
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Nitin、

    另一个问题是、SDK 用户指南中帧周期的 LSB 为1ms、而在源代码中变为5ns、哪一个是正确的?

    如果它等于5ns、则会混淆基于峰值数量的频谱估算、因为 obj->peakDistanceHeart_min 太大。

    numPeaksHeart = find_Peaks (obj->tempCircularBuff、float_type、pPeakLocsHeart、obj->pPeakValues、0、Circular Buffer_Size_Heart - 1);
    if (numPeaksHeart!= 0)

    numPeaksHeart = filterPeaksWfm (pPeakLocsLoct、pPeaksHearid、numPeaksHeart、obj->peakDistanceHeart_min、obj->peakDistanceHeart_Max);

    obj->peakDistanceHeart_min =(uint16_t) obj->samplingFreq_Hz/(obj->Heart _endFreq_Hz);

    此致、

    恒阳芳

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、亨阳、

    frameCfg 命令采用以毫秒为单位的帧周期、但不会直接发送到毫米波长(用于与传感器前端通信的低级 API)。 frameCfg CLI 处理程序(

    C:\ti\mmwave_sdk_01_00_02\packages/ti\utils\cli\src\cl_mmwave.c)解析 frameCfg 命令并调用较低级的 mmwavelink 函数 rlSetFrameCfg。

    根据 mmwavelink doxygen 文档中的定义、帧周期的每个 LSB 等于5ns (文件://C:/ti/mmwave_sdk_01_01_00_02/packages/ti/control/mmwavelink/docs/doxygen/html/group___sensor.html:#gaf1e5cbc25891714db321da3bfa0d2014)

    基本上、CLI 上的 frameCfg 命令采用以 ms 为单位的值、该值转换为上述 CLI 处理程序函数内所需的硬件值。 以下是 mmwave_cli.c 中的 frameCfg CLI 处理程序、用于快速参考。

    /**
    *@b 说明
    *@n
    * 这是帧配置命令
    *
    *@param[in] argc
    *的 CLI 处理程序 参数数
    *@param[in] argv
    * 参数
    *
    *\ingroup cli_UTIL_internal_function
    *
    *@retval
    * 成功- 0
    *@retval
    * 错误-<0
    */
    static Int32_t cli_MMWaveFrameCfg (int32_t argc、char* argv[])
    {
    rlFrameCfg_t frameCfg;
    
    /*完整性检查:最小参数检查*/
    if (argc!= 8)
    {
    cli_write ("Error: invalid usage of the CLI command\n");
    返回-1;
    }
    
    /*完整性检查:帧配置仅对帧或有效
    高级帧模式:*
    if (gCLIMMWaveControlCfg.dfeDataOutputMode!= mmWave_DFEDataOutputMode_frame)
    {
    CLI_WRITE ("错误:仅当 DFE 输出模式为线性调频脉冲时、配置才有效");
    返回-1;
    }
    
    /*初始化帧配置:*/
    memset ((void *)&frameCfg、0、sizeof (rlFrameCfg_t));
    
    /*填充帧配置:*/
    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);
    
    /*保存配置以稍后使用*/
    memcpy ((void *)&gCLIMMWaveControlCfg.u.frameCfg.frameCfg、(void *)&frameCfg、sizeof (rlFrameCfg_t));
    返回0;
    } 

    此致

    尼廷