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.

[参考译文] AWR1642BOOST:需要有关通过 COM 端口 AWR1642 EVM 获取实时数据的帮助

Guru**** 2546020 points


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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/612239/awr1642boost-need-help-for-getting-realtime-data-through-com-port-awr1642-evm

器件型号:AWR1642BOOST

尊敬的先生或女士:

我按照毫米波 SDK 培训"演示捕获"进行操作、可以获取 ADC 原始数据并离线进行一些信号处理。 但是、我需要实时执行它。 我能否使用 UART 或其他协议通过 COM 端口传输 ADC 原始数据、以便在超级终端 Tetra 中显示实时数据。

例如、我在 gFrameAddress[0]中有 ADC 数据。 我如何通过 COM 端口传输和更新数据?  

谢谢你

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


    在毫米波演示中、处理后的数据通过 UART 端口发送。 由于通过多个 chrips 和接收器收集的 UART 原始数据的速度较慢、因此不可行。 不过、理论上、这是可行的、可以通过修改发送数据的函数来实现。

    请查看 dss_main.c 文件中的以下函数
    int32_t MmwDemo_dsSendProcessOutputToMSS

    在帧处理结束时调用上述函数、并通过 UART 发送处理后的数据。 您可能还需要对其进行修改、以发送原始 ADC 数据。 请注意、ADC 缓冲区是原始数据的来源、它在每个线性调频脉冲结束时被改写、多个此类线性调频脉冲构成一个帧。 在 ADC 缓冲区被改写之前、您可能需要复制原始数据。

    从较慢的帧速率和每帧很少的 chrips 开始、这是一种很好的方法。

    希望这能为您指明正确的方向。

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

    大家好、Vaibhav Mahimkar、

    我想从 DEMO_CAPTURE 开始。 因为我使其正常工作、我可以从 DEMO_CAPTURE 中获取原始数据。 我在 CortexR4f 中处理 MSS_main.c 文件。 您是否会向我推荐 demo_capture 的 MSS_main.c 中的函数、以获取 ADC 数据并将其放入 L3存储器。 如果我使用256个 ADC 样本将线性调频脉冲编程为1帧、我能否使用 demo_capture 的 MSS_main.c 中的函数通过 UART 发送256个 ADC 样本。  

    谢谢你

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Minh、
    您需要计算 ADC 数据速率并检查其是否适合 UART 速率。 例如,如果将 ADC 采样率保持在10Msps、12位实采样模式、4个接收通道上,则 ADC 数据速率将为10*12*4=480Mbit/s。 UART 可以支持每秒几个100 Kbits"的数据速率。

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

    尊敬的 Vivek Dham:

    我设置了 ADC 和 UART 的最低要求。 如果我通过 COM 端口 XDS110类辅助数据端口打开 HyperTerminal 或 TeraTerm,波特率为921600。 我是否能看到数据接收。 您知道什么是查看数据通过 PC 运行的工具、我的意思是在毫米波演示可视化工具上显示数据。 谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能告诉我在具有 ADC 数据的代码中变量的名称是什么吗? 代码中有很多 ADCBuf 变量、我不知道在什么位置获取 ADC 数据
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    默认情况下、捕获演示不是通过 UART 发送 ADC 数据、您需要修改代码才能实现这一点。 完成后、您可以使用超级终端工具通过 UART 端口接收数据、然后将其保存到文件中。 我们没有工具可以绘制来自 UART 端口的原始 ADC 数据、您可以使用简单的 Matlab 或 LabVIEW 代码来完成此操作。 SDK 中提供了一个示例 MATLAB 代码(位于以下位置:MMWAVE_SDK v01.00.05\packages/ti\demo\xwr16xx\capte\GUI)。

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

    您好!

    要通过 UART 发送原始 ADC 数据、我建议使用 DSS UART 、这将导致最小的演示代码变化。  

    以下是代码片段和注释、可帮助您在结束时完成此任务

    dss_main.c:

    • /*在 CPU 模式下将数据从 AdcBuffer 存储器复制到 UART、其中用户需要根据配置到 Radar 的 numberOfSams 指定字节数*/

           UART_writePolling (gMmwDssMCB.loggingUartHandle、 SOC_XWR16XX_DSS_ADCBUF_BASE_ADDRESS、num_of _Bytes);

    • /*当 DSS 获得线性调频脉冲时调用 UART_writePolling 中断'CaptureDemo_dsChirpIntHandler'*/
    • /* CaptureDemo_dataPathProcessEvents (capture_CHIRP_EVT)在 DSS 获得 CAPTURE_CHIRP_EVT 时被调用*/

    /*处理 dataPath 事件*/
    switch (事件)

       案例捕捉_CHIRP_EVT:

       /**在此处更改代码以将 AdcBuff 数据复制到 UART,而不是复制到 L3内存***/

    此致、

    Jitendra Gupta

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

    尊敬的 Jitendra Gupta:

    根据我的理解、我会这样做。 您能不能为我检查这是对的还是错的。 我不理解以下评论:  

    • /*当 DSS 获得线性调频脉冲时调用 UART_writePolling 中断'CaptureDemo_dsChirpIntHandler'*。 您能否举例说明如何操作? 谢谢

    这是我的修改函数

    静态 Int32_t CaptureDemo_dataPathProcessEvents (UINT 事件)

    captate_dmaConfig * ptrDmaCfg =空;
    int32_t RetVal = 0;
    capture_DataPathObj * ptrDataPathObj;

    /*获取数据路径对象句柄*/
    ptrDataPathObj =&gCaptureMCB.dataPathObj;

    /*处理 dataPath 事件*/
    switch (事件)

    案例捕捉_CHIRP_EVT:
    /*递增事件统计数据*/
    gCaptureMCB.stats.chirpEvt++;

    UART_writePolling (gMmwDssMCB.loggingUartHandle、 SOC_XWR16XX_DSS_ADCBUF_BASE_ADDRESS、num_of _Bytes);

    //注释掉所有这些内容

    /*

    /*从 CLI 获取已保存的设备配置*/
    ptrDmaCfg =&ptrDataPathObj->dmaConfig;

    DebugP_assert (ptrDataPathObj->edmaState = Capture_EDMA_State_ready);

    if ((ptrDmaCfg->currDstAddr + ptrDmaCfg->dmablockSize)<ptrDmaCfg->endDstAddr)

    RetVal = EDMA_setDestinationAddress (ptrDataPathObj->dmaHandle、(uint16_t) ptrDmaCfg->channelId、
    SoC_translateAddress (ptrDmaCfg->currDstAddr、SOC_TranslateAddr_Dir_TO_EDMA、NULL);
    if (RetVal < 0)

    System_printf ("错误:设置 EDMA 目标地址失败、出现错误[%d]\n"、RetVal);

    /*触发 DMA 传输*/
    EDMA_startDmaTransfer (ptrDataPathObj->dmaHandle、ptrDmaCfg->channelId);

    ptrDataPathObj->edmaState = Capture_EDMA_State_Busy;

    ptrDmaCfg->currDstAddr += ptrDmaCfg->dmablockSize;

    其他

    /*到达 RAM 缓冲器的末尾*/

    中断;

    *

    中断;

    案例 CAPTURE_FRAMESTART_EVT:
    /*递增事件统计数据*/
    gCaptureMCB.stats.frameStartEvt++;

    //注释掉

    /*

    /*将每个帧的目标地址设置为缓冲区的开头*/
    ptrDmaCfg->currDstAddr = demo_L3RAM_DATA_MEM_address;
    中断;

    *

    中断;

    默认值:
    中断;

    返回0;

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

    您好 Jitendra Gupta

    我应该修改 MMW_DEMO 或 CAPTURE_DEMO 中的 dss_main.c 吗?

    谢谢!

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

    您好 Minh Nguyen87

    您是否成功完成了修改? 我更改了 MMW 演示中 dss_main.c 中的代码、但通过 dsss UART 将 adcbuff 中的数据传输到 PC 失败。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    由于长时间不活动、我们假设您的查询已被解析、因此关闭此线程。



    对于与此主题相关的任何其他查询、请发布您的问题、这将重新打开此主题。



    此致、
    Jitendra Gupta