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.

[参考译文] IWR1642BOOST:当我只有 IWR1642BOOST 时、如何使用 PC (UART)开始读取 I/Q 组件#39

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/615346/iwr1642boost-how-start-read-i-q-component-s-using-pc-uart-when-i-have-only-iwr1642boost

器件型号:IWR1642BOOST
主题中讨论的其他器件:IWR1642

大家好、

 我需要开发信号处理链、以便在2D FFT 之后处理数据。 将分析此传感器的频率频谱和目标参数(使用 MATLAB)、我们将使用自己的检测算法。 我在不使用外部板的情况下使用 UART 读取 I/Q 数据或2D 频率频谱时遇到问题。 我知道使用 UART 读取速度太慢、但没关系。 是否存在一些如何 调整毫米波 SDK 示例的示例?

谢谢你 Michal

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

    我猜您正在使用1.0.0.5毫米波 SDK 运行 IWR1642的 MMW 演示。 您的问题是如何调整数据 UART 的波特率或数据格式?

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

    您好、不仅是这样。  

    我很想修改 SDK 中的示例 mmW (C:\ti\mmwave_sdk_01_00_00_05\packages/ti\demo\xwr16xx\mmw\docs\doxygen\html)、以便在2D FFT 之后读取2D 范围/多普勒矩阵。 我正在研究示例代码、这 是一个非常复杂的项目。 我欠发送、那么 ADC 后的数据存储在缓冲器中并传输到 L3? 每个 线性调频脉冲的 EDMA 处理。 ADC 转换后被称为 MmwDemo_interChirpProcessing、用于通过1D FFT 处理每个线性调频脉冲并将数据保存到 L3。 我不明白如何在第二 个 MmwDemo_InterFrameProcessing 部件中工作。 数据是否从 L3读取并通过第二个 FFT 进行处理以进行多普勒频移计算并保存回 L3?

    是的、是否存在使用 UART 读取该距离/多普勒矩阵的示例?

    Michal

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

    您好、Michal、

    我建议查看 MMW 演示的 html 文档。  双击 C:\ti\mmwave_sdk_01_00_00_05\packages/ti\demo\xwr16xx\mmw\docs\doxygen\html\index.html。 这不仅可以帮助您将处理步骤与代码函数相关联、还会显示当前输出到数据 UART 端口的数据的格式。

    ADC 数据在"雷达立方体"内部存储器和 L3之间通过处理流(使用 EDMA)的各个点进行 DMA 传输。  html 文档中也对此进行了说明。

    但对于您原来的问题、您不需要外部板、只需要一台 PC 即可托管串行终端程序、例如 TeraTerm。  如果要输出当前输出之外的内容、当然必须根据需要修改输出结构。

     Dave

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


    感谢你的建议。 我知道这本手册并阅读了它,但当我看到 void MmwDemo_interFrameProcessing (MmwDemo_DSS_DataPathObj *obj)函数时,第一个函数是

    DMA 从 L3 RAM 读取数据
    和:
    窗口化
    DFT
    log2Abs32.

    它是处理一个范围中数据的最后一条指令、之后是开始检测 CFAR、还有一些是简单的跟踪器。 EDMA 将检测到的数据保存到 L3 RAM 中。


    但是、在 RAM 中将数据发送到距离/多普勒矩阵的指令在哪里? 因为多普勒 FFT 的每个距离的数据都是缓冲的、并且通过 log2Abs32计算 Abs 值? (为每个范围将 log2Abs 保存为 L3)

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

    您好!

    我还有下一个问题。

    我尝试"单步执行"程序(IWR1642BOOT Only SOP0 is selected - connected)、但我遇到了问题、因为程序正在失败。

    您知道哪里有问题吗?

    非常感谢 Michal

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

    线性调频脉冲参数可能不一致、因此演示代码正在抛出 assert()以指向出错的事实。  如果您还没有 、可以在感应估算器中检查线性调频脉冲:  

    https://dev.ti.com/gallery/view/1792614/mmWaveSensingEstimator/

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

    您好!

    线性调频脉冲参数是使用毫米波演示可视化工具-巧妙配置设置的。 我使用了向毫米波器件发送配置。   然后我选择了窗口图。  所有操作都正常、当尝试添加硬件断点在 MSS_main 中执行某一行操作(例如使用 UART 发送数据)时、系统会毫无问题地停止。 当我在 dss_main.c 中使用 MmwDemo_dsDataPathOutputLogging 将断点设置为行开关发送数据时、调试失败 :(

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    硬件或软件断点? 是否通过双击所需行左侧来设置断点? 我从未听说过简单设置正常(SW)断点的问题。 您可能需要检查编译器选项(-Ox)、以确保禁用了优化并且存在-g。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    早上好、

    我始终使用软件断点。 编译器设置为2全局优化(对于 MSS 和 DSS 而言、这是默认设置)。 我尝试使用设置为 off 的优化级别。 它适用于具有 足够内存的 MSS、但对于 DSS 来说 、它是跳过错误:

    是否存在一些应用程序。请注意、在哪里可以更好地描述代码层次结构? 我了解 UART 如何解决 PC 和雷达之间的通信问题。 问题是我发现在哪里可以读取设置的参数线性调频脉冲接收到的字。

    我不确定 MmwDemo_dssDataPathOutputLogging 何时将测量数据发送到 MSS ... 完成此操作后、在  MmwDemo_mboxReadTask 中对器件案例 MMWDEMO_DSS2MSS_DEMOBJ_READY 进行分频、以便通过 UART 将数据发送到 PC。

    代码无政府 状态在 C:\ti\mmwave_sdk_01_00_00_05\packages/ti\demo\xwr16xx\captions\doxygen\html 中进行了少量描述

    感谢你能抽出时间。

    此致

    Michal

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在 dss\dss_data_path.c 中,执行2D FFT 的位置是第1690行(函数 MmwDemo_interFrameProcessing())。 输出存储在 obj->fftOut2D 中。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    但它是保存在 L3 RAM 中用于信号处理的 ADCbuffer 中的数据...但我想说明的是、在从 PC 接收到数据后、在哪里读取 UART 缓冲器的函数以设置线性调频脉冲配置。


    您是否知道为什么调试器不能正常工作?

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

    我在您的文本中遇到了一些混乱、但我想您正在寻找数据输出到 UART 的位置吗?  可产生几个简单的搜索:

    MmwDemo_dsDataPathProcessEvents (),如果是 MMWDEMO_CHIRP_EVT,则在创建2D FFT 的位置调用 MmwDemo_interFrameProcessing()。  然后它会调用 MmwDemo_dsDataPathOutputLogging(),后者又会调用 MmwDemo_dsSendProcessOutputToMSS()。  MmwDemo_dsSendProcessOutputToMSS()创建输出结构并通过 DSS->MSS 邮箱将其发送到 MSS。

    然后、MSS 应用程序从邮箱中拾取它。  请参阅函数 MmwDemo_mboxReadTask()。  对于 MMWDEMO_DSS2MSS_DETOBJ_READY,它会多次调用 UART_writePolling()以发送数据。

    因此-您需要在 MSS 应用程序中修改 MmwDemo_mboxReadTask(),在 DSS 应用程序中修改 MmwDemo_dssSendProcessOutputToMSS(),以填充新结构并将其发送到 UART。

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

    完美的我感兴趣的项目:

    因此-您需要在 MSS 应用程序中修改 MmwDemo_mboxReadTask(),在 DSS 应用程序中修改 MmwDemo_dssSendProcessOutputToMSS(),以填充新结构并将其发送到 UART。

    谢谢您...

    您是否知道为什么调试器不能正常工作?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    >您是否知道为什么调试器不能正常工作?

    两个想法:

    1) 1)在 CCS 中运行 IWR1642应用程序时,必须加载并运行* MSS 和 DSS 可执行文件,因为它们彼此通信。
    2) 2)应用程序可能会使用-O3优化进行编译、这会使代码步进充其量不稳定、并且可能不允许断点。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    1)是的、我之所以这么做是因为它在 CCS for mmWsensor 的用户指南中进行了介绍

    2) 2)对于 MMW 和 MMW_DSS、我将优化切换到 O1、但结果相同。 当我获取断点 dss_data 路径时、控制台被写入:

    [Cortex_R4_0] xdc.runtime.Main:"./MSS_main.c"、第1262行:断言失败
    xdc.runtime.Error.raise:终止执行

    然后执行到下一行  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果您将注意到、您已经设置了 DSS 断点、但它是 MSS 的主函数引发断言-可能是因为 DSS 不再与其通信。 只有当您计划尝试恢复执行时、这才会成为问题、除非您在 MSS 和 DSS 中的相应点设置断点、否则可能无法恢复执行。