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.

[参考译文] CC1311P3:CC1311P3 上的外设到外设 DMA (RF→UART 和 UART→RF)、无需 MCU 干预

Guru**** 2644585 points

Other Parts Discussed in Thread: CC1311P3

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1587838/cc1311p3-peripheral-to-peripheral-dma-on-cc1311p3-rf-uart-and-uart-rf-without-mcu-intervention

器件型号: CC1311P3

我们想检查 CC1311P3 是否支持真正的外设到外设 DMA 传输、而无需任何 MCU (M4F) 干预、特别是在射频用例中。

用例 1:RF RX→UART TX(无 MCU 参与)

当射频内核接收到数据时、RX 回调当前会唤醒 MCU。
我们的目标是 使用 DMA 将射频 RX 数据直接传输到 UART TX FIFO 、无需 MCU 触摸或复制数据。

原因:
在将射频数据包转发到 UART 时、MCU 需要保持空闲来执行其他任务、例如:

  • 频率切换

  • 度量计算

  • 电源控制更新

用例 2:UART RX→RF TX(触发 ADV/TX 命令)

同样、当 UART 接收数据时、我们希望这样做 将 UART RX 缓冲区直接映射到射频内核 、以便可以触发 RF TX(例如 ADV 或分组 TX) 可以读取它

同时、MCU 应能够:

  • 更新 PA 设置

  • 切换射频通道

  • 运行其他应用程序任务

    • 在没有 CPU 参与的情况下、CC1311P3 是否支持外设到外设 DMA(射频内核Left right arrowUART)?

    • 如果是、是否有文档或示例说明如何在 RF 和 UART 之间配置 DMA 通道?

    • 如果不受支持、TI 建议的低延迟替代方案:

      • 以最少的 MCU 唤醒将射频 RX 数据转发到 UART

      • 基于 UART RX 触发 RF TX 而不进行 CPU 数据复制

    • 是否有任何可以近似实现无 MCU 运行的 RF 命令链接或 RAT-TRIGGER 方法?

      谢谢、Theiv B




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

    尊敬的 Theiv:

    我认为在 UART 仍然打开时、MCU 无法进入睡眠状态。 但我将仔细检查、并由星期一回来给您。

    此致、

    Daniel

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

    您好 Daniel Guarecuco Aguiar 我查询的任何更新?  

    谢谢、

    专题 B

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

    尊敬的 Theiv:

    很抱歉耽误你的时间。 我咨询了我们的软件团队、发现无法使用现有驱动器直接使用 DMA 进行 UART <->射频内核传输。 也许可以使用硬件执行此操作(您必须自己编写驱动程序)、但只有一个外设可以控制该流程(即生成 DMA 请求)。

    例如、当 RX FIFO 不为空且 DMA 将数据复制到另一个外设时、UART 外设将生成请求、但另一个外设将无法通知 DMA 它无法接收任何数据、例如、如果其 FIFO 已满。

    您正在努力实现什么? 您是否通过 UART 传输在 RF 上接收到的所有数据?

    此致、

    Daniel

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

    你好 Daniel Guarecuco Aguiar ,我们正在努力实现以下场景。  
    每当数据从射频内核接收到时、我们需要在没有 MCU 干预的情况下将 DMA 直接传输到 UART。  
    2.我们希望侦听从 UART 接收到的数据以了解频率开关/电源设置。  

    您能否确认、如果可以对从射频内核到 UART 的数据直接执行 DMA、请确认我的 UART 是否可以通过 UART 接收来自其他 MCU 或外部应用的数据、而无需在另一侧实现自定义驱动程序。  

    我们基本上是将 MCU 编程为仅 RX 模式以及频率开关和 BW 变化。  

    如果是、请帮助我们为上述用例提供自定义的驱动程序代码吗?

    谢谢、

    专题 B

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

    尊敬的 Theiv:

    1.不可以、使用现有驱动程序无法使用 DMA 直接从射频传输到 UART。 我们无法提供自定义驱动程序。

    2.是的、您可以使用 UART2 驱动程序通过 UART 与其他 MCU 进行通信、请查看 UART2.h 文件参考

    此致、

    Daniel