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.

[参考译文] AWR2944P:有关2x44p 的高级帧配置的问题

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1523154/awr2944p-questions-about-adv-frame-configuration-of-2x44p

器件型号:AWR2944P

工具/软件:

您好、专家

在为2x44p 配置 Adv frame 时、我遇到一些问题。 据我所知、在高级帧下最多可配置4个子帧。 目前、我们使用了2个子帧、分别名为 A 和 B。下面是我的两个问题:
  • 触发序列 :执行触发操作时,是否需要按 A、B 的顺序触发? 我们能否实现在一段时间内触发 A、A、A、A、A、然后触发 A、B、B、A、 那么 B、A、B 还有其他时间吗?
  • 重新配置时间 :我发现重新配置高级帧的1子帧需要大量的时间,超过12ms。 这是正常的吗?
  • 配置如下:
      rlAdvFrameCfg_t advFrameCfg;  
      uint8_t u8DeviceMap
      uint8_t subFrameNum
      /*初始化帧配置:*/
      memset ((void *)&advFrameCfg、0、sizeof (rlAdvFrameCfg_t));

      /*填充帧配置:*/
      advFrameCfg.frameSeq.numOfSubFrames = 1
      advFrameCfg.frameSeq.forceProfile = 0
      advFrameCfg.frameSeq.numFrames = 1
      advFrameCfg.frameSeq.triggerSelect = 1
      advFrameCfg.frameSeq.frameTrigDelay = 0
      advFrameCfg.frameData.numSubFrames = 1

      /*填充 sub_frame 配置:*/
      SubFrameNum = 0;   

      /*初始化 sub_frame 配置:*/
      memset ((void *) advFrameCfg.frameSeq.subFrameCfg[subFrameNum]0sizeof (rlSubFrameCfg_t);

      advFrameCfg.frameSeq.subFrameCfg[subFrameNum].forceProfileIdx = 0
      advFrameCfg.frameSeq.subFrameCfg[subFrameNum].chirpStartIdx = 0
      advFrameCfg.frameSeq.subFrameCfg[subFrameNum].numOfChirps = 0
      advFrameCfg.frameSeq.subFrameCfg[subFrameNum].numLoops = 768
      advFrameCfg.frameSeq.subFrameCfg[subFrameNum].burstPeriodicity =(uint32_t)(50* 1000000 / 5);
      advFrameCfg.frameSeq.subFrameCfg[subFrameNum].chirpStartIdxOffset = 0
      advFrameCfg.frameSeq.subFrameCfg[subFrameNum].numOfBurst = 1
      advFrameCfg.frameSeq.subFrameCfg[subFrameNum].numOfBurstLoops = 1
      advFrameCfg.frameSeq.subFrameCfg[subFrameNum].subFramePeriodicity =(uint32_t)(50  * 1000000 / 5);

      {  
        /*创建本地设备映射以逐个选择每个设备*/
        u8DeviceMap =(uint8_t)((uint32_t) 1U << 0);
      
        ErrorCode = rlSetAdvFrameConfig (u8DeviceMap&advFrameCfg);
        if (errorCode!= 0)
        {
        }
      }  
我期待您的回答。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:

    对于所需的触发序列、 是否可以将其拆分为两种不同类型的帧? 第一帧仅包含一个子帧 A、并根据需要使用 numOfBurstLoops 或使用 numFrames 重复;下一帧可以包含两个子帧 A 和 B、使用 numFrames 重复? 否则、请参阅是否可以使用高级线性调频脉冲配置功能将 A 和 B 配置定义为同一子帧中的两个不同突发、然后为第二个帧重复 A 和 B 突发。

    其次、您是否希望在主动成帧过程中重新配置子帧? 您是否可以提前配置子帧、并仅更新要用于帧的子帧数量、以避免配置更新数量? 然后、根据所涉及的重新配置量、我可以为您估算所需的时间。  

    此致、
    Shailesh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    嗨、 Shailesh
    感谢您的支持。 但仍需要重新配置以选择要使用的子帧。 是否可以为此目的使用 rlFrameStartStop 函数? 您对使用此功能有何建议?
    此致、
    Patrick
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Patrick:

    我不确定 FrameStartStop 在这里会如何帮助、因为它只会停止正在进行的帧或开始传输。 配置更新时间应与是否传输无关。 理想情况下、您应该能够在将在下一帧中使用的活动帧期间对配置进行少量更新。 如果您的帧小于12毫秒、则应该不会出现问题、因为需要很长时间才能在后台更新内容。 这在您的用例中是否有意义?

    此致、
    Shailesh

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

    嗨、 Shailesh

      感谢您的支持。  目前、我们使用高级线性调频脉冲模式和高级帧模式。 由于两个子帧中的线性调频脉冲数不同、因此我们需要在每个子帧后重新更新超前线性调频脉冲。 ?高级线性调频脉冲模式和高级帧模式是否支持在电流波形传输结束后的 DSP 处理期间重新配置、并在下一次波形传输 Δ t 中生效

    此致、
    Patrick

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

    尊敬的 Patrick:

    除非您已使用高级啁啾配置 LUT (12KB)、否则您可以在开始任何帧之前保留存储的所有 LUT 值。 然后、在帧/子帧之间、您只需将地址配置更新到 LUT 中数据的相应位置、而不需要更新 LUT 本身。 您也可以更新线性调频脉冲数和其他配置。 这些配置(而不是 LUT)更新不应花费大量时间。  

    您应该能够在 DSP 处理时间或传输之间更新这些配置。 \

    此致、
    Shailesh  

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

    嗨、 Shailesh

    感谢您的答复。 我正在尝试这种方法、但遇到了一个问题。 我使用了2个子帧和 帧触发。 有时只需要触发第一个子帧、而其他情况下则需要这两者。 我使用 rlFrameStartStop 控制是否仅触发第一个子帧。 但是、我得到的是错误代码21。 在我的配置代码中、发送时间超过20ms、因此配置 rlFrameStartStop 时、器件仍应正在发送。 为什么出现错误代码21?

    详细配置:

      retVal = rlSensorStart (1);
      rlFrameTrigger_t 数据
      data.startStop = 0x0002
      retVal = rlFrameStartStop (1&data);
    在这种情况下、它还具有错误代码21:
       retVal  =  rlSensorStart (1);
      ClockP_USleep (1 * 1000U);
       rlFrameTrigger_t  数据
       data.startStop  =  0x0002
       retVal  =  rlFrameStartStop (1&data);

    此致、
    Patrick

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

    Patrick、您能否尝试使用一些正常的帧配置而不是高级帧配置来检查此情况?

    此致、
    Shailesh