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:高级帧中断和周期问题

Guru**** 2589280 points
Other Parts Discussed in Thread: AWR1642

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/610728/awr1642-advance-frame-interrupt-and-period-question

器件型号:AWR1642

您好!

我的客户希望使用高级帧功能。 我们根据在 AWR1642 EVM 上进行测试的 SDK 1.0中的 MMW 演示更改了代码、发现了两个问题。

1我们发现帧中断在每个子帧触发、而不是在每个高级帧触发。 以下面的配置为例、我们预计每1024chirps 触发一次帧中断、但实际上根据我们在 EVM 上的测试、每个子帧触发一次帧中断、每512个线性调频脉冲触发一次帧中断。 您是否会帮助确认我们的测试是否正确? 以及如何使每个高级帧触发帧中断?

2我们只找到 了一个用于子帧周期配置的 subFramePeriodicity 参数、但未找到用于配置高级帧周期的参数。

客户的目标是将多个子帧组合为一个处理的高级帧、子帧间时间非常短、但需要为一个高级帧处理预留足够的时间。 您是否会帮助指导如何达到目标? 谢谢。

下面显示了我的代码更改。

1删除帧配置的代码、添加以下配置以进行高级帧配置;

/*通用广播帧配置*/
advFrameCfg->frameSeq.forceProfile = 1;// 1:强制配置文件,0:不强制配置文件
advFrameCfg->frameSeq.numFrames=0;//无限
advFrameCfg->frameSeq.triggerSelect = 1;//SW 触发器
advFrameCfg->frameSeq.frameTrigDelay= 0;

/*第一个子帧配置*/
advFrameCfg->frameSeq.subFrameCfg[0].forceProfileIdx = 0;
advFrameCfg->frameSeq.subFrameCfg[0].chirpStartIdx = 0;
advFrameCfg->frameSeq.subFrameCfg[0].numOfChirps = 512;
advFrameCfg->frameSeq.subFrameCfg[0].numLoops = 1;
advFrameCfg->frameSeq.subFrameCfg[0].numOfBurst = 1;
advFrameCfg->frameSeq.subFrameCfg[0].numOfBurstLoops = 1;
advFrameCfg->frameSeq.subFrameCfg[0].chirpStartIdxOffset= 0;
advFrameCfg->frameSeq.subFrameCfg[0].burstPeriodicity = 2400000;// 12 msec
advFrameCfg->frameSeq.subFrameCfg[0].subFramePeriodicity= 2400000;// 12msec


advFrameCfg->frameData.subframeDataCfg[0].numAdcSamples = 64*2;
advFrameCfg->frameData.subframeDataCfg[0].totalChirps = 512;
advFrameCfg->frameData.subframeDataCfg[0].numChirpsInDataPacket = 1;
numOfSubFrame++;

/*第二个子帧配置*/
advFrameCfg->frameSeq.subFrameCfg[1].forceProfileIdx = 0;
advFrameCfg->frameSeq.subFrameCfg[1].chirpStartIdx = 0;
advFrameCfg->frameSeq.subFrameCfg[1].numOfChirps = 512;
advFrameCfg->frameSeq.subFrameCfg[1].numLoops = 1;
advFrameCfg->frameSeq.subFrameCfg[1].numOfBurst = 1;
advFrameCfg->frameSeq.subFrameCfg[1].numOfBurstLoops = 1;
advFrameCfg->frameSeq.subFrameCfg[1].chirpStartIdxOffset= 0;
advFrameCfg->frameSeq.subFrameCfg[1].burstPeriodicity = 2400000;// 12msec
advFrameCfg->frameSeq.subFrameCfg[1].subFramePeriodicity= 2400000;// 12msec


advFrameCfg->frameData.subframeDataCfg[1].numAdcSamples = 64*2;
advFrameCfg->frameData.subframeDataCfg[1].totalChirps = 512;
advFrameCfg->frameData.subframeDataCfg[1].numChirpsInDataPacket = 1;
numOfSubFrame++;

advFrameCfg->frameSeq.numOfSubFrames = numOfSubFrame;
advFrameCfg->frameData.numSubFrames = numOfSubFrame;

2更改函数 MMWAVE_CONFIGLink、将 rlSetFrameConfig 替换为 rlSetAdvFrameConfig 以执行高级帧配置、然后重建 mmWave 库。

Andy

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

    尊敬的 Andy:

    有关高级帧配置、  参阅 TI.com 上的应用手册(第6节)、了解详细信息。

    • 一个突发相当于一个传统帧块。 因此、您将在每次突发开始时获得帧可用中断、在该突发的每个线性调频脉冲中获得线性调频脉冲中断。  
    • 子帧周期= numOfBurst *突发周期+超时。 超时可能需要满足高级帧的时序要求。

    µsec 帧的时序要求如下:间歇时间应为≥50 μ s、间歇
    子 µsec µsec 应≥100 μ s、帧间时间应≥200 μ s。

    • 帧间时间可以通过持续时间 b/w 的形式进行设置、即最后一个突发/子帧到下一个帧的第一个突发/子帧。

    此致、

    Jitendra Gupta

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

    明白了、非常感谢。 我已经查看了应用手册、它没有介绍如何在 ADV 帧配置中触发中断。
    Andy