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.

[参考译文] IWRL6432BOOST:传感器抖动、可能的配置错误?

Guru**** 2454880 points


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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1511402/iwrl6432boost-sensor-hitching-possible-config-error

器件型号:IWRL6432BOOST

工具/软件:

你好!

我们尝试在概念验证中使用此传感器、实现更大的360解决方案、但我们遇到了一些问题、导致难以使用此传感器。

首先也是最重要的是传感器挂接。  它会卡在某种状态、不再向主机传输数据。  当我们修改了一些源代码并构建了加载到器件上的自定义映像时、我们首先发现了此问题。 它只需获取跟踪目标并将其管道连接到另一个 MCU 以通过 I2C 进行处理。 (这里有一些扭矩需要解决、例如可能的 DMA 和对 I2C 缓冲器的滚动修改)。  但是、根据从器件读取 I2C 缓冲器的速度、传感器似乎会停止读取(我们在 MSS 中传感器数据的处理位置放置了一个照明切换开关、以便我们可以判断何时正在跟踪)。 然而、由于我们尝试使用示例中的基本 TI 映像和高性能配置来拨入配置设置、因此 yyyy 一直是一个红色错误。  在我们调整配置中的选项和设置时、我们开始注意到嘶嘶声、更频繁的是、当将配置加载到可视化工具中时、传感器甚至无法启动。  对于导致传感器或集成 MCU 挂接的原因、以及如何修复或避开问题、有没有任何建议?  谢谢!

配置的当前状态:

sensorStop 0

channelCfg 7 3 0

chirpComnCfg 8 0 0 256 4 28 0

chirpTimingCfg 6 63 0 75 60

frameCfg 2 0 200 64 250 0

antGeometryCfg 0 0 1 1 0 2 0 1 1 2 0 3 2.418 2.418

guiMonitor 2 1 0 0 0 1 0 0 1 1 1

sigProcChainCfg 64 2 3 2 8 8 1 15

cfarCfg 2 8 4 3 0 12.0 0 0.5 0 1 1 1

aoaFovCfg -60 60 -40 40

rangeSelCfg 0.1 12.0

clutterRemoval 1

compRangeBiasAndRxChanPhase 0.0 1.00000 0.00000 -1.00000 0.00000 1.00000 0.00000 -1.00000 0.00000 1.00000 0.00000 -1.00000 0.00000

adcDataSource 0 adc_data_0001_CtestAdc6Ant.bin

adcLogging 0

lowPowerCfg 1

factoryCalibCfg 1 0 40 0 0x1ff000

mpdBoundaryBox 1 0 1.48 0 1.95 0 3

mpdBoundaryBox 2 0 1.48 1.95 3.9 0 3

mpdBoundaryBox 3 -1.48 0 0 1.95 0 3

mpdBoundaryBox 4 -1.48 0 1.95 3.9 0 3

sensorPosition 0 0 1.9 0 0

minorStateCfg 5 4 40 8 4 30 8 8

majorStateCfg 4 2 30 10 8 80 4 4

clusterCfg 1 0.5 2

staticBoundaryBox -3 3 0.5 7.5 0 3

gatingParam 3 2 2 4

状态参数6 3 12 50 5 200

分配参数8 10 0.1 6 0.5 20

最大加速度0.4 0.1

trackingCfg 1 2 100 3 61.3 191.7 100

PreenceBoundaryBox -3 0.5 7.5 0 3.

MicroDopplerCfg 1 0 0.5 0 1 1 12.5 87.5 1.

分类器配置1 3 4.

波特率115200

sensorStart 0 0 0 0

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

    您好:  

    让我们首先确认您在使用未修改的软件时遇到的问题。 这种行为是确定性的吗? 例如、当某个人在场景中被跟踪时、您通常会注意到该问题、或者即使是空场景也会随机发生该问题。 我认为整个配置的帧时间可能被用于线性调频脉冲/处理/数据输出。 如果在配置的帧时间过后才对该帧执行所有必要的操作、则器件可能会一直处于该状态。  

    感谢您分享所使用的配置。 由于您将帧配置为突发模式、因此线性调频脉冲周期内花费的时间为 burstPeriodicity * numBurstsInFrame = 12.8ms。 这就留下了大量的处理和数据输出时间(~237ms)、但是、我注意到您基本上启用了所有可用的处理块;"自动"模式下的点云生成(主要运动和次要运动处理)、MPD 状态机处理、对象跟踪、目标微掺杂器生成和目标分类。 完成所有处理后、数据通过 UART 输出。 输出的数据由指定 guiMonitor CLI 命令(此处说明)、在您的情况下、它似乎输出 pointCloud、rangeProfile、statsInfo、trackerInfo、microDopplerInfo、 和 classifierInfo。 其中一些输出的尺寸是固定的、但当有更多检测和/或跟踪目标(点云、跟踪器、微掺杂器)时、其他输出的尺寸将更大。 此外、您的配置还包括" 波特率115200'  如果您使用的是默认的演示软件、则此命令实际上无效。 此命令实质上会更新器件用于 UART 且默认情况下器件已配置为115200的波特率。 通常、我们使用此命令来提高波特率、以实现更快的数据输出、例如:" 波特率1250000'

    我建议您尝试以下选项来确认/解决问题:

    1.增加 波特率 用于数据输出。 此更改将使数据输出完成速度提高~11倍。   波特率 115200 ->波特率 1250000

    2.增加帧时间。 您可以将此值设置为不合理的高值、只是为了确认问题。  frameCfg 2 0 200 64 250 0 -> frameCfg 2 0 200 64 2000 0

    3.使用 guiMonitor 禁用某些输出

    此外、您是否能够使用 Code Composer Studio 调试该问题?  这样可以准确查看代码挂起的位置。 此处提供了将 CCS 调试与毫米波器件配合使用的指南。  

    此致、

    Josh

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

    你好 Josh、
    感谢您的答复。 我们使用了提供的示例 cfg 配置文件 Tracking Classification_HighBw_4Ant.cfg 和 Tracking Classification_Mid Bw.cfg。 我们的目标是获得~10cm 的距离分辨率、并启用 RX 天线1、2和3。 输入后、下面是我们更新后的配置文件、增加了帧时间、减少了 guiMonitor 输出和1250000波特率:

    sensorStop 0
    channelCfg 7 3 0
    chirpComnCfg 8 0 0 256 4 28 0
    chirpTimingCfg 6 63 0 75 60
    frameCfg 2 0 200 64 2000 0
    antGeometryCfg 0 0 1 1 0 2 0 1 1 2 0 3 2.418 2.418
    guiMonitor 2 0 0 0 0 1 0 0 1 0 1
    sigProcChainCfg 64 1 3 2 8 8 1 0.3
    cfarCfg 2 8 4 3 0 12.0 0 0.5 0 1 1 1
    aoaFovCfg -60 60 -40 40
    rangeSelCfg 0.1 6.0
    clutterRemoval 1
    compRangeBiasAndRxChanPhase 0.0 1.00000 0.00000 -1.00000 0.00000 1.00000 0.00000 -1.00000 0.00000 1.00000 0.00000 -1.00000 0.00000
    adcDataSource 0 adc_data_0001_CtestAdc6Ant.bin
    adcLogging 0
    lowPowerCfg 1
    factoryCalibCfg 1 0 40 0 0x1ff000
    boundaryBox -3.5 3.5 0 9 -0.5 3
    sensorPosition 0 0 1.9 0 0
    staticBoundaryBox -3 3 0.5 7.5 0 3
    gatingParam 3 2 2 2 4
    stateParam 6 3 12 50 5 200
    allocationParam 8 10 0.1 6 0.5 20
    maxAcceleration 0.4 0.4 0.1
    trackingCfg 1 2 100 3 61.3 191.7 100
    presenceBoundaryBox -3 3 0.5 7.5 0 3
    microDopplerCfg 1 0 0.5 0 1 1 12.5 87.5 1
    classifierCfg 1 3 4
    baudRate 1250000
    sensorStart 0 0 0 0

    使用基本 OOB 运动和存在检测演示代码运行此配置文件仍会导致传感器挂接。 在调试模式下运行代码 会抛出错误:  

    错误:设置 DOA 配置文件时出错:-40102

    其中 retval =-40102来自 DoaProc_configParser()中的 DPC_OBJECTDETECTION_ENOMEM__L3_RAM_DET_Matrix 。 我假设、这是由于 channelCfg 中使用的 RX 天线数量从仅1和3增加到包括2、 因此检测矩阵中没有足够的 L3存储器。 在 DPC.c 中、定义了 RAM 缓冲区:

    /*! L3 RAM buffer for object detection DPC */
    #define L3_MEM_SIZE (0x40000 + 160*1024)
    extern uint8_t gMmwL3[L3_MEM_SIZE]  __attribute((section(".l3")));
    /*! Local RAM buffer for object detection DPC */
    #define MMWDEMO_OBJDET_CORE_LOCAL_MEM_SIZE ((8U+6U+4U+2U+8U) * 1024U)
    extern uint8_t gMmwCoreLocMem[MMWDEMO_OBJDET_CORE_LOCAL_MEM_SIZE];
    /*! Local RAM buffer for tracker */
    #define MMWDEMO_OBJDET_CORE_LOCAL_MEM2_SIZE (25U * 1024U)
    extern uint8_t gMmwCoreLocMem2[MMWDEMO_OBJDET_CORE_LOCAL_MEM2_SIZE];
    /* User defined heap memory and handle */
    #define MMWDEMO_OBJDET_CORE_LOCAL_MEM3_SIZE  (2*1024u)
    extern uint8_t gMmwCoreLocMem3[MMWDEMO_OBJDET_CORE_LOCAL_MEM3_SIZE] __attribute__((aligned(HeapP_BYTE_ALIGNMENT)));
    
    /* User defined heap memory and handle */
    #define MMWDEMO_OBJDET_CORE_LOCAL_MEM3_SIZE  (2*1024u)
    uint8_t gMmwCoreLocMem3[MMWDEMO_OBJDET_CORE_LOCAL_MEM3_SIZE] __attribute__((aligned(HeapP_BYTE_ALIGNMENT)));

    我假设由于存储器有限、解决方案是减少频段数量以创建更小的检测矩阵。 是否有任何关于如何通过修改我们的配置文件来实现此目的的建议?

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

    您好:  

    好的、感谢您提供的信息。

    我们使用了提供的示例 cfg 配置文件 Tracking Classification_HighBw_4Ant.cfg 和 Tracking Classification_Mid Bw.cfg

    为了阐明这些默认配置文件、中 BW 配置已经启用了所有 TX 和 Rx 天线、HighBW_4Ant 配置使 ADC 样本数量增加了一倍(这会使距离区间数量增加一倍)、但由于存储器限制、3根 Rx 天线中只能启用2根。  

    我假设、这是由于 channelCfg 中使用的 RX 天线数量从仅1和3增加到包含2 、因此检测矩阵没有足够的 L3存储器。

    您的假设完全正确。  

    我们的目标是获得~10cm 的距离分辨率并启用 RX 天线1、2和3。
    我假设由于内存有限、解决方案是减少矩阵箱的数量以创建更小的检测。 关于如何通过修改我们的配置文件来实现此目的的任何建议?

    理解您的目标、是的、您在此处的假设也是正确的;但是、一个重要的注意事项是 检测矩阵 实际上是采用的两个主数据结构中较小的一个 雷达立方体 通常会占用更多的存储器。 首先分配雷达立方体、因此您只会获得与检测矩阵存储器分配相关的错误、因为看起来有足够的空间来分配更大的雷达立方体、但没有足够的空间来分配检测矩阵。  

    可以通过减少虚拟天线、距离区间(adcSamples)和/或多普勒区间(BurstsPerFrame)的数量来减小雷达立方体尺寸。 您可以通过减少多普勒频段和/或方位角频段的数量(方位角 FftSize)来减小检测矩阵的大小。 由于您提到您需要精细的距离分辨率并使用所有天线、因此如果速度分辨率对您的用例不太重要、可以选择减小多普勒频段。  

    还需要指出的一点是、这些跟踪配置可在处理链中启用"自动模式"(与主要运动模式和次要运动模式相比)。 在自动运动检测模式下、两个独立的处理链"一次"运行、这意味着所有数据结构都是重复的(一个雷达立方体用于主要运动处理、一个雷达立方体用于微小运动处理、同样与检测矩阵)。 轻微移动有助于识别来自人/物体的微小移动、否则这些移动仍然存在、您的应用是否需要这种级别的灵敏度? 移除微小移动处理可能会释放大量空间。  

    此外、我还想指出一些有用的资源、帮助您调整演示参数以符合您的特定应用需求。  

    此致、

    Josh