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.

[参考译文] AWR1642:如何在 DSS 侧重新配置寄存器"FrameCfg&quot

Guru**** 2558250 points


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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/610478/awr1642-how-to-reconfiguration-the-register-framecfg-in-the-dss-side

器件型号:AWR1642

你(们)好  

我在使用 MMWAVE_DEMO 代码时遇到了一些问题。 我想重新配置 DSS 侧的每个帧的寄存器"FraameCfg"。

我尝试将代码段插入函数"MmwDemo_dsFrameStartIntHandler"("C:\ti\mmwave_sdk_01_00_00_05\packages/ti\demo\xwr16xx\mmw\dss\dss_main.c")。但 它出错。

请告诉我错误的含义以及如何处理?

如果此方法有误,请就其他方法提供一些建议?

代码段:

静态空 MmwDemo_dsFrameStartIntHandler (uintptr_t arg)
{
int32_t errCode = 0;

if (gMmwDssMCB.state = MmwDemo_DSS_State_Stopped)
{
gMmwDssMCB.stats.frameIntSkipCounter++;
返回;
}

if (gMmwDssMCB.state = MmwDemo_DSS_State_stop_pending)
{
/*停止时钟、因为 DSP 将在此活动帧结束时停止*/
Clock_stop (gMmwDssMCB.frameClkHandle);
}

if (错误代码!= RL_RET_CODE_OK)
{
/*错误:设置线性调频脉冲配置失败*/
System_printf ("错误:帧配置错误[错误代码%d]\n"、错误代码);
}

/*检查先前的线性调频脉冲处理是否已完成*/
DebugP_assert (gMmwDssMCB.dataPathObj.interFrameProcToken = 0);

gMmwDssMCB.dataPathObj.interFrameProcToken++;

/*递增中断计数器以用于调试目的*/
gMmwDssMCB.stats.frameStartIntCounter++;

/*重新配置帧*/
错误代码= rlSensorStop (RL_DEVICE_MAP_INTERNAL_BSS);

if (错误代码!= RL_RET_CODE_OK)
{
System_printf ("调试:传感器停止错误\n");
}

gframeCfg.chirpStartIdx = 0;
gframeCfg.chirpEndIdx = 511;
gframeCfg.numLoops = 1;
gframeCfg.numFrames = 0;
gframeCfg.framePeriodicity = 100 * 1000000 / 5;
gframeCfg.triggerSelect = 1;//基于软件 API 的触发
gframeCfg.frameTriggerDelay = 0 * 1000000 / 5;

错误代码= rlSetFrameConfig (RL_DEVICE_MAP_INTERNAL_BSS、&gframeCfg);
if (错误代码!= RL_RET_CODE_OK)
{
System_printf ("调试:帧配置错误\n");
}

错误代码= rlSensorStart (RL_DEVICE_MAP_INTERNAL_BSS);
if (错误代码!= RL_RET_CODE_OK)
{
System_printf ("调试:传感器启动错误\n");
}


/*用于通知帧启动中断的 POST 事件*/
EVENT_POST (gMmwDssMCB.eventHandle、MMWDEMO_FRAMESTART_EVT);
} 

该错误如下所示:

Pico 1:  

Pico 2:  

Pico 3:  

皮4:

Pico 5:  

BR

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

    我们将在代码中返回正确的点来介绍此更改。 通常、主子系统执行此类面向控制的任务和 DSP 端。
    如果专家在回复之前需要尝试运行、请附上修改后的 C 代码、以供参考。

    此时、错误可能是由于引入此更改的位置不正确、也可能是因为修改后的配置不正确。

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

    Havi、您好!

    根据您的错误快照、看起来 rlSensorStop 没有执行。

    在进行该实验时、您需要注意的几件事情

    • 请勿从中断处理程序函数调用任何耗时的 API (此处 为 MmwDemo_dsFrameStartIntHandler)
    • 每当调用 rlSensorStop 时,RadarSS 仅在当前正在进行的帧完成后停止帧。
    • 因此、下次需要启动帧(rlSensorStart)时、只有当您获得 等于配置的线性调频脉冲总数的线性调频脉冲中断('gMmwDssMCB.stats.chirpIntCounter')时。

    • 要停止帧、重新配置和启动帧、您需要在"mwDemo_dssDataPathTask"函数下添加 API 调用。

    IF (事件和 MMWDEMO_CHIRP_EVT)

    MmwDemo_dsDataPathProcessEvents (..)

    /* rlSensorStop、 rlSetFrameConfig、rlSensorStart */

    此致、

    Jitendra Gupta

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

    我尝试了您的建议、但我遇到了以下代码的 frameconfig 错误。 您是否愿意告知您遗漏的内容?

    IF (事件和 MMWDEMO_CHIRP_EVT)

    if ((gMmwDssMCB.state = MmwDemo_DSS_State_started)||(gMmwDssMCB.state == MmwDemo_DSS_State_stop_pending))

    如果((RetVal = MmwDemo_dsDataPathProcessEvents (MMWDEMO_CHIRP_EVT))< 0)

    System_printf ("错误:MMWDemoDSS 数据路径处理线性调频脉冲事件失败、出现错误[%d]\n"、
    RetVal);


    //添加 Chris 进行测试

    RetVal = rlSensorStop (RL_DEVICE_MAP_INTERNAL_BSS);
    如果(RetVal!= 0)

    System_printf ("错误:无法停止传感器[错误%d]\n"、RetVal);
    转到出口;


    RetVal = rlSetFrameConfig (RL_DEVICE_MAP_INTERNAL_BSS、&gMmwDssMCB.cfg.ctrlCfg.u.fullControlCfg.u.chirpModeCfg.frameCfg);
    如果(RetVal!= 0)

    System_printf ("错误:无法设置 frameconfig [错误%d]\n"、RetVal);
    转到出口;


    rlSensorStart (RL_DEVICE_MAP_INTERNAL_BSS);
    System_printf ("DSP:rlSensorStart Time:[%d us]\n"、T2/DSP_clock_MHz);
    如果(RetVal!= 0)

    System_printf ("错误:无法启动传感器[错误%d]\n"、RetVal);
    转到出口;

    ///------------------------------

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

    重新配置 framecfg 需要花费太长的时间,需要在我的项目中关闭雷达传感器和 MSS 数据路径和 DSS 数据路径,等等。
    我只需重新配置 chirp 参数,chirp 参数只是存储在 ram 中,重写 ram,意味着重新配置 chirp 参数。
    它不需要关闭传感器和数据路径。

    BR
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Chris、
    调用 rlSetFrameConfig API 时、您获取的错误代码是什么?

    如果要在 frameConfig 中更改 numOfChirp 和 numAdcSample、则还需要根据这些新参数重新配置 dataPath。

    此致、
    Jitendra Gupta
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    由于长时间不活动、我们将关闭此线程。 如果您有任何将重新打开此主题的进一步查询、请回复。


    此致、
    Jitendra