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:IWRL6432

Guru**** 2461090 points
Other Parts Discussed in Thread: IWRL6432AOP, IWRL6432BOOST, UNIFLASH, IWRL6432, SYSCONFIG

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1460366/iwrl6432boost-iwrl6432

器件型号:IWRL6432BOOST
主题中讨论的其他器件: UNIFLASHIWRL6432SysConfig、IWRL6432AOP

工具与软件:

我准备了 IWRL6432Boost EVM。 我想检测人,当检测到人时,我需要通过 UART 将数据发送到另一个主机 MCU。

尝试使用 SDK5时、(MMWAVE_L_SDK_05_05_03_00)

工作演示:  

给定  MOTION_AND_INVATION_DETECTION 的演示 与可视化工具配合使用。 然后才能使用进行闪存 Uniflash 在 S1.1、S1.2中打开管理模式。 在刷写  motion_and_presence_detection_demo_auth.Debug.appimage 后、将模式更改为功能模式 S1.1=1。

在 Visualizer 工具中、我们需要 通过 UART (此处为 xds1100仿真器)向 IWRL6432器件发送 CLI 配置文件。 之后、 IWRL6432器件将通过 UART 将 TLV 数据发送到可视化工具应用。 这就是我对 SDK 演示的工作原理的理解。

但我想开发自定义代码、  

1.电路板初始化,

2. CLI 硬编码数据初始化,

3.获取 ADC 数据的功能,处理 ADC 数据到数字前端数据的功能,识别人的功能,查找人的距离功能,

4.根据函数的输出、我可以通过 UART 把数据发送到另一个主机 MCU。

您能告诉我如何执行上述操作吗? 我不想使用 Visualizer/任何其他 python 代码来传输 CLI 命令。 该程序必须从我写入 CLI 变量中的 CLI 数据开始。

我正在努力编辑该演示代码、以使其按照我的自定义要求工作。 希望你能帮我。

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

    您好!  

    很抱歉延迟了响应。 我认为您最好的做法是修改现有的 SDK 演示以满足您的自定义要求。 将演示修改为对 CLI 配置进行"硬编码"并不是很困难、因此您可以从该配置开始。  

    对 xWRL6432进行硬编码配置(HCC)的最简单方法是使用 Quick_EVAL 功能实现。 要启用 HCC、您可以  在中启用快速评估设置  SysConfig  示例项目。 请注意、SysConfig 中的 CLI_REMOVATION 功能不适用于您的案例、因为它还会删除跟踪层和人为分类层、因此请坚持使用 QUICK_EVAL。 然后再在中  mmw_cli.c 、您可以在中列出每个配置命令  RadarCmdString (如果使用 AOP 器件、则为 radarCmdStringAOP)。  请注意、您可能需要更新 MAX_RADAR_CMD 以匹配配置中的命令数量。 之后、您可以重新编译示例工程并使用更新的 appimage 重新刷新电路板。 如果您的配置有效、则传感器将在加电后开始发出线性调频脉冲并输出数据、而无需通过 UART 进行配置。

    SDK 演示中已经包含了跟踪人体和对其进行分类的处理功能、因此您所需要做的一切就是添加一些代码来计算标记为人为的被跟踪物体的距离。该操作很容易完成、因为每个跟踪物体都可以使用 x、y 和 z 坐标。 我相信在 udoproc dpu 运行后、您需要处理的所有数据都应该可用 DPC_execute (dpc.c)、因此您可以在其中添加该附加逻辑。

    此致、

    Josh

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


    Josh、您好、我选择了"Quick Eval = Enable";

    我们还看到了 RadarCmdString、  





    编译后、处理器挂起   

    void HWI_SECTION HwiP_hardFault_handler()


    但当我使 LED 闪烁时、使用示例代码、它会使 USER_LED 闪烁、同时还会打印 UART COM16

    我想知道程序的延续、即调用哪个函数、全部初始化是什么。
    我计划在不使用 RTOS 的情况下复制闪烁 LED 代码。 从运动和存在检测演示中逐个复制一个函数、然后查看所有函数正在执行的操作。 在 CLI 初始化中、它应该是 HCC。 我的计划会有效吗? 或者您会建议任何其他方法?  

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

    您好!

    您是否按照 Josh 所说的更改了 MAX_RADAR_CMD? 如果不将其更改为正确的行数、可能会导致崩溃。

    此致!

    耐特

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

    尊敬的 Nate:

    发表于 Josh 声明
    。  mmw_cli.c 、您可以在中列出每个配置命令  RadarCmdString  (如果使用 AOP 器件、则为 radarCmdStringAOP)。  请注意、您可能需要更新 MAX_RADAR_CMD 以匹配配置中的命令数量。 之后、您可以重新编译示例工程并使用更新的 appimage 重新刷新电路板。

    我不明白配置中的命令数量是否匹配。 所以我无法尝试这一步。

    好的、为了更好地演示 SDK 流程、我 导入了 MMWave_example 代码。

    在该代码中、程序挂起在函数上、   MMWAVE_INIT (&initCfg、&errCode);在轻触此行后执行代码并向上移至此行  

    mmwave_initLink(), 代码挂起并进入 Hwip_hardFault_handler()。



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

    您好!  

    很抱歉他们在这里延迟回复。 问题是否已解决、或者您仍在寻求帮助?

    我不明白配置中命令的数量是否匹配

    它只是表示添加要进行硬编码的所有配置命令后 RadarCmdString 中的命令计数  RadarCmdString  并更新  MAX_RADAR_CMD  如果需要大于或等于命令总数、此变量为可变。

    此致、

    Josh

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

    您好、Josh、 添加了下面几行之后


    我可以在终端中看到、


    这里配置是硬编码的、但是无法在终端上读取输出。

    我想要获得检测到多少人、人类的坐标(x、y、z)等信息。  

    如何在 UART 终端中显示检测到的信息?
    我使用  DebugP_logInfo ("检测到的人类数量=\n");


    请在这方面为我提供帮助。



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

    您好!  

    我不确定硬编码配置在测试中是否按预期执行。 您不需要添加 CLI_BYPASS。 我还可以看到您已修改 MAX_RADAR_CMD_AOP、  由于您未使用 AOP 器件、因此应进行修改 MAX_RADAR_CMD  但是。 以下是我借助最新的 SDK (5.5.3.0)执行具有跟踪配置的 HCC 的完整步骤。  

    1.将运动和存在检测示例项目从 C:\ti\mmwave_L_sdk_05_05_03_00\examples\mmw_demo\motion_and_presence_detection\xwrL64xx-evm 导入 CCS

    2.设置 QUICK EVAL 最终目的 使能 在中 MPD_DEMO "Example.syscfg"的选项卡。 保存此文件。

    3.从项目资源管理器窗口中打开 mmw_cli.c 并进行替换 RadarCmdString 特性数组、如下所示。  保存此文件。

    char* radarCmdString[MAX_RADAR_CMD] =
    {
    #if 1
    "channelCfg 7 3 0 \r\n",
    "chirpComnCfg 15 0 0 128 4 28 0 \r\n",
    "chirpTimingCfg 6 32 0 40 60.5 \r\n",
    "frameCfg 2 0 200 64 100 0 \r\n",
    "guiMonitor 2 3 0 0 0 1 0 0 1 1 1 \r\n",
    "sigProcChainCfg 32 2 3 2 8 8 1 0.3 \r\n",
    "cfarCfg 2 8 4 3 0 12.0 0 0.5 0 1 1 1 \r\n",
    "aoaFovCfg -70 70 -40 40 \r\n",
    "rangeSelCfg 0.1 10.0 \r\n",
    "clutterRemoval 1 \r\n",
    "compRangeBiasAndRxChanPhase 0.00 1.00 0.00 -1.00 0.00 1.00 0.00 -1.00 0.00 1.00 0.00 -1.00 0.00 \r\n",
    "adcDataSource 0 adcData_1_000.bin \r\n",
    "adcLogging 0 \r\n",
    "lowPowerCfg 0 \r\n",
    "factoryCalibCfg 1 0 40 0 0x1ff000 \r\n",
    "boundaryBox -3.5 3.5 0 9 -0.5 3 \r\n",
    "sensorPosition 0 0 1.9 0 0 \r\n",
    "staticBoundaryBox -3 3 0.5 7.5 0 3 \r\n",
    "gatingParam 3 2 2 2 4 \r\n",
    "stateParam 3 3 12 50 5 200 \r\n",
    "allocationParam 6 10 0.1 4 0.5 20 \r\n",
    "maxAcceleration 0.4 0.4 0.1 \r\n",
    "trackingCfg 1 2 100 3 61.4 191.8 100 \r\n",
    "presenceBoundaryBox -3 3 0.5 7.5 0 3 \r\n",
    "microDopplerCfg 1 0 0.5 0 1 1 12.5 87.5 1 \r\n",
    "classifierCfg 1 3 4 \r\n",
    "baudRate 1250000 \r\n",
    "sensorStart 0 0 0 0 \r\n"
    #endif
    };

    4.从  C:\ti\mmwave_L_sdk_05_05_03_00\examples\mmw_demo\motion_and_presence_detection\source\中打开 mmw_cli.h、并进行更改  MAX_RADAR_CMD 至28. 保存此文件。

    5.在 CCS 中编译工程并刷写生成的.appimage 文件

    然后、当您在串行终端中以与配置的波特率命令相同的波特率(在上面的配置中为1250000)连接到器件后、您应该看到 UART 数据流。  

    我无法在终端中读取输出。

    我们的示例以 此处所述的格式通过 UART 输出相关数据。  终端中看到的原始 UART 数据将不可读。 在进行任何其他处理之前、主机 MCU 应解析数据。 我们会先对 PC 接收到的数据进行同样的解析、然后在可视化工具/GUI 中绘制数据。  

    如何在 UART 终端中显示检测到的该信息?

    如果您想在终端中打印、可以使用 CLI_WRITE 函数、但我不建议这样做、因为它可能太慢。 如果 希望在连接到主机 MCU 之前使数据可视化以确认一切均符合您的喜好、可使用我们的开源 python 可视化工具(Radar Toolbox 中的 mmWave Industrial Visualizer)。

    请注意、您将需要在可视化工具源代码中进行一次微小的更改、以适应硬编码配置。 应将 gui_core.py (RTB 2.30.00.12)的第685行更改为"self.parser.connectComPort (UART1250000)"。 在此更改之后 不使用发送配置进行连接  按钮将开始解析和显示数据。  

    此致、

    Josh

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

    尊敬的 Josh:
    感谢您的详细步骤。 实际上、我使用的是 IWRL6432AOP EVM。 因此仅更改了 MAX_RADAR_CMD_AOP 配置。  

    使用给定的硬代码配置文件构建之后、我将以不可读格式快速地在 UART 中获取数据。


    在工业可视化工具源代码中、它已使用波特率 (UART、 1250000)进行设置"。
      

    但是在工业可视化工具中、 需要选择哪个演示?  实际上、我通过选择尝试了所有 启动时不发送配置


    但我看不到任何图。 它与之前简单一样。 但当我在 UART 中打开时、数据连续绘制(这次我关闭了工业可视化工具、反之亦然)。



    此外,我不想太看到的数据在任何可视化工具。

    我只想获得 UART 中所有经处理和逻辑编码的可读格式数据。

    我需要在运动和存在检测演示代码中执行以下操作

    1.根据设定的边界值和人数对配置文件进行硬编码-->(现在我可以对 cfg 数据进行硬编码)

    2.我想在 DPC 文件/任何其他文件内创建一个逻辑编码,即线性调频脉冲后,我需要知道有多少人检测到和他的坐标。
    3.是否检测到玻璃墙? 如果是,那么人类存在室内/室外的墙
    4.为了调试目的,我需要在 UART 终端上看到人的存在数据为可读/可编辑的。
    5.在该芯片中最终确定数据后、我只会通过 UART/SPI/GPIO 将所需的数据发送到另一个 MCU。  

    对于上述五个步骤、我需要解决方案。

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

    您好!  

    好的。 我知道您不想在可视化工具中查看数据。 这只是为了澄清一下我的观点。 如果您参考我上一篇文章、我提到"应将 gui_core.py (RTB 2.30.00.12)的线路685更改为"self.parser.connectComPort (UART、 1250000)"

    在工业可视化工具源代码中、它已设置波特率 (UART、 1250000)"。

    这是不正确的。 您需要使线路685与您发送的图片中的线路683相同。 然后是  启动时不发送配置  工作方式。 要回答您关于运动和存在检测演示的问题、您应该选择 x432开箱即用演示。

    2. 我想在 DPC 文件/其他任何文件中创建一个逻辑编码、例如发出线性调频脉冲后、我需要知道检测到多少人及其坐标。

    此信息在中提供 DPC_执行 ()中的功能 DPC.c. 在调用之后  DPU_TrackerProc_process  跟踪的目标及其坐标存储在&Result->trackerOutParams 中。  

    3. 是否检测到玻璃墙? 如果是,那么人存在室内/室外的墙壁[/报价]

    这不是演示目前的功能、因此您可能需要在此实施您自己的算法。 默认情况下、干扰消除在配置中处于启用状态、但如果您禁用它、您可能能够检测到静壁、如果您正在跟踪人员、则您将知道他们的坐标、以便您可以对照墙的位置进行检查。  

    4. 为了进行调试、我需要将 UART 终端中的人体存在数据视为可读/可编辑。[/QUOT]

    正如我在上一篇文章中所提到的,cli_write()函数可用于在 UART 终端中以可读格式打印此数据。 您还需要将 guiMonitor 配置命令更改为全0、以禁用正常数据输出、从而可以读取正在打印的值。  

    此致、

    Josh

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

    尊敬的 Josh:
    感谢你这么快的回应,你救了我的一天。

    Josh 说道
    1.  跟踪的目标及其坐标存储在&Result->trackerOutParams 中。



    在这个代码中,应该(行号)我 放置  CLI_WRITE ()以获取跟踪的目标和它们的坐标,你能给我完整的语法/代码以在 UART 中打印数据吗? 实际上、在刷写时、该代码会持续将数据打印到 UART (不可读格式)。  因此、我们首先应该停止 visualizer 的默认打印、然后我们必须开始打印所需的数据。 如何做到这一点?  

    Josh 说道
    2.   由于演示目前正在进行、您可能需要在此实施您自己的算法。、

    后来我来到这个主题、因为首先我想浏览6432AOP 发送的数据。

    Josh 说道
    3.   您还需要将 guiMonitor 配置命令更改为全0、以禁用正常数据输出、从而可以读取正在打印的值。  

    guiMonitor Present 是 move_detect.c 文件中的四个位置、需要更改一个位置、(供参考、它全部处于禁用状态)。  我将全部四个值更改为零。

    [ guiMonitor 0 0 0 0 0 0 0 0 0 0 0 0 0]、

    在此步骤之后、我将使 UART 中的数据只能读。

    4.在此链接中, 非人类分类用户指南
    Visualizer 标记人类、它是用 python/芯片的 HWA 实现的算法吗?

    我确实想在 UART 中打印、人在坐标处存在、就像在链接中给出的那样   

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

    您好!  

    在本代码中、应(行号) 放置  CLI_WRITE ()以获取跟踪的目标及其坐标、您能给我完整的语法/代码以在 UART 中打印数据吗?

    对演示代码进行定制修改不在这些论坛的讨论范围内。

    实际上、在刷写时、此代码连续将数据打印到 UART (不可读格式)。  因此、我们首先应该停止 visualizer 的默认打印、然后我们必须开始打印所需的数据。 如何做到这一点?  [报价]

    这意味着配置中的 guiMonitor 命令仍会启用某些输出。  

    guiMonitor present 是 motion_detect.c 文件中的四个位置、需要更改一个位置、

    RadarCmdStringAOP  字符数组。 它位于 mmw_cli.c 不是 motion_detect.c

    该算法是在 python/芯片的 HWA 中完成的吗?

    该算法在芯片上运行。 python 代码仅处理数据的可视化。  

    我确实想用 UART 打印人在坐标上、就像在链接中给出的那样  

    在这种情况下、以及中提供的跟踪目标位置信息  &Result->trackerOutParams 在中的微多普勒 DPU 运行(DPU_udopProc_process)后、跟踪的靶区分类信息可用 &Result->microDopplerOutParams。  您应该能够将代码添加到 DPC 执行函数的末尾、此时给定帧的所有处理 完成、所需的数据可用。

    此致、

    Josh

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

    感谢 Josh。

    现在、我对演示有了一定的了解。  

    问题1:关于丢弃 guiMonitor 中的数字
    我玩 gimonitor ,给1在不同的位置。

    从中获取数据  

    mmww Demo_Transmit esedOutputTask() at motion_detect.c

    但我有疑问、在 SDK 文档中、guiMonitor 具有12位/位置

    但是、总的来说  CHIRP_CONFIGs 示例中给出的文件仅包含11位数字。 如何实现? 哪一个数字需要丢弃?


    问题2:转换为整数以打印 UART 的变量名称

    在  DPC_Execute()末尾的 dpc.c 文件中、我将添加函数  CLI_WRITE ("%d、"  所需数据);

    我希望将所需的数据填充为整数。 但在演示代码中、变量 声明为全局结构、结构、指针。 我不知道如何获取 数据  Result->trackerOutParams 和  Result->microDopplerOutParams 作为要打印的整数   cli_WRITE()。

    要求的数据

    1.检测到的运动是否为人

    2.在哪个区域检测到有人存在

    3.在 x、y 位置检测到人的位置

    4. MiCo 多普勒数据,显示在哪个区域检测到微小的人体运动。

    最重要的是我需要天花板安装。

    请告诉我转换为整数的变量名称。

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

    您好!  

    但总的来说  CHIRP_CONFIGs 示例中给出的文件仅包含11位数字。 如何实现? 需要丢弃哪一位?

    第12个位置是可选的、是在以后的更新中添加的、因此许多默认配置没有此位置。 我不知道你说"哪一个数字"是什么意思。 如果您要禁用正常的 UART 演示输出、则 guiMonitor 的所有位置都应为0。

    我希望将所需数据填充为整数。 但在演示代码中、变量 声明为全局结构、结构、指针。 我不知道如何获取 数据  Result->trackerOutParams 和  Result->microDopplerOutParams 作为要打印的整数   cli_WRITE()。 [报价]

    在 DPC_execute 结束时、您可以 使用 for 循环之类的内容来遍历每个跟踪目标。 Result->trackerOutParams 中有一个 numTargets 变量可用于此目的。  您需要 取消引用指针/将数据强制转换为适当的类型。  

    此致、

    Josh

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

    Josh、您好!

    我在前面提到过、需要 吸顶式安装。  人的位置数据、我会发现这是一个怎样的问题。 我需要启用人类/非人类分类器、还需要人类的微小运动。

    "sensorPosition 0 0 2.5 0 90 \n \r"

    "minorStateCfg 5 4 40 2 1 40 8 20 \n \r"

    "clusterCfg 1 0.5 2 \n \r"

    "gatingParam 3 2 2 4 \n\r"

    "stateParam 3 12 50 5 200 \n\r"

    "allocationParam 6 10 0.1 4 0.5 20 \n\r"

    "maxAcceleration 0.4 0.4 0.1 \n\r"

    "trackingCfg 1 2 100 5 61.3 191.7 100 \n\r"

    "presenceBoundaryBox -2 2 -2 2 0 2  \n\r"

    "microDopplerCfg 1 0 0.5 0 1 12.5 87.5 1 \n\r"

    "classifierCfg 1 3 4 \n\r"

    我收到错误的箭头、代码未执行。 调优指南中提到我们不能 同时使用 trackingCfg 和 minorStateCfg。

    如果只启用了小动作、在吸顶式安装中、传感器将拾取小的幕布动作、同时也作为人类的小动作。 因此,如果我收到小的动议,无论它是人类还是非人类,这将解决问题。 但我无法同时启用这两者!!! 如何解决该问题?

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

    您好!  

    请为该主题创建一个新主题。 由于此线程的其余部分主要与对配置进行硬编码并将数据输出到 CLI 有关。它将为正在搜索相同主题的帮助的其他人提高可查找性。  

    此致、

    Josh