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.

AWR2243: am2732+2x cascade awr2243 温度监控超时

Part Number: AWR2243
Other Parts Discussed in Thread: AM2732

工程师,你好

我参考了DFP包中mmWaveLink_Cascade_Monitoring的例程,尝试对温度进行监控。仿照例程,通过调用函数rlMonTypeTrigConfig,monTrigTypeEn为1,在收到RL_RF_AE_MON_TEMPERATURE_REPORT_SB异步事件后,将标志位置1,同时在调用函数rlMonTypeTrigConfig前对标志位是否为1进行了判断,如下。

在测试的过程中发现雷达在正常运行一段时间后会出现RL_RF_AE_MON_TIMING_FAIL_REPORT_SB的异步事件timingFailCode为8。在mmWave Radar Interface Control Document中也没有找到关于温度监控的所需的时间。但是我尝试过将calibMonTimeUnit 配置为1,也可以正常运行一段时间,然后会出现RL_RF_AE_CPUFAULT_SB的异步事件,faultType=3  errorCode=5,该错误是RadarSS TX mailbox queue full,至少说明在calibMonTimeUnit为1的情况下也可以完成对温度的监控,且在mmWaveLink_Cascade_Monitoring的例程中也将calibMonTimeUnit设置为1,且使能了几乎所有的analog监控,且帧周期只有50ms;所以为什么会出现监控超时的错误?

此外,在我的代码中还使能了对波形profile的动态配置,在接收到帧起始的事件后会对下一帧的profile进行配置。在测试中发现在注释掉波形动态配置后,长时间测试(连续运行约20小时)不会出现监控超时的问题。考虑到对波形进行动态配置后,awr2243会在idle time将新的配置从SW拷贝到HW,而对温度的monitor也被安排在frame的idletime,两者之间是否存在冲突?此外还发现在同时使能波形动态配置和温度监控时,调用函数rlSetProfileConfig偶尔会返回错误码-1或-18,此时将发生监控超时的异步事件,同时再调用rlMonTypeTrigConfig和rlSetProfileConfig时将返回错误码-8。

我对温度监控的配置过程是否有误,需要如何更改?

case RL_RF_AE_MON_TEMPERATURE_REPORT_SB:
{
rlMonTempReportData_t *data = (rlMonTempReportData_t*)payload;
logger("\r\nDevice id%d\tstatusFlag=%d\r\n",data->statusFlags);

monitorTrigDone[devIndex]=1;
monitorTimes++;
break;
}

/*other task*/

if(monitorTrigDone[0]==1&&monitorTrigDone[1]==1)
{
monitorTrigDone[0] = 0;
monitorTrigDone[1] = 0;
MonRetVal = rlMonTypeTrigConfig(3,&MontypeCfg);
}

以下是我关于温度监控的配置,配置calibMonTimeUnit 为15。

基础配置:

  1. 帧周期为66ms,frame Idletime约为40ms;
  2. Monitor的周期为15帧;
  3. 使能的monitor项只有temperature
  4. awr2243平台为2片级联的awr2243

monitor配置

MonAnaEnCfg.enMask = 1;

MonAnaEnCfg.ldoVmonScEn = 0;

retVal =rlRfAnaMonConfig(ptrMMWaveMCB->deviceMap,&MonAnaEnCfg);

/*APP BASED*/

timeCfg.numOfCascadeDev  = 1U;

timeCfg.devId            = 0U;

timeCfg.monitoringMode   = 1U;

timeCfg.calibMonTimeUnit =15;

retVal = rlRfSetCalMonTimeUnitConfig(3, &timeCfg);

 

TempMonCfg.anaTempThreshMax = 65;

TempMonCfg.anaTempThreshMin = 45;

TempMonCfg.digTempThreshMax = 0;

TempMonCfg.digTempThreshMin = 0;

TempMonCfg.reportMode       = 2;

TempMonCfg.tempDiffThresh   = 20;

retVal =rlRfTempMonConfig(ptrMMWaveMCB->deviceMap,&TempMonCfg);

此外如果将监控的触发方式配置为自动触发,雷达将在一段时间后不发波(或是am2732收不到awr2243的帧起始或帧结束事件),但是对温度的监控一直正常返回。

 timeCfg.numOfCascadeDev  = 2U;

        timeCfg.devId            = 0U;

        timeCfg.monitoringMode   = 0U;

        timeCfg.calibMonTimeUnit =15;

        retVal = rlRfSetCalMonTimeUnitConfig(1, &timeCfg);

        timeCfg.numOfCascadeDev  = 2U;

        timeCfg.devId            = 1U;

        timeCfg.monitoringMode   = 0U;

        timeCfg.calibMonTimeUnit = 15;

        retVal = rlRfSetCalMonTimeUnitConfig(2, &timeCfg);

谢谢