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.

[参考译文] MSPM0L1306:为 DMA 传输启用 UART RTFG 超时中断

Guru**** 2390755 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1482309/mspm0l1306-enable-uart-rtfg-timeout-interrupt-for-dma-transfers

器件型号:MSPM0L1306

工具与软件:

您好!

我有一位客户尝试使用 DMA 接收任意长度的 UART 传输。

然后为单字节传输配置 DMA 传输、采用最大长度传输、预期发送器在某个时刻停止发送数据、超时中断将被置为有效以实际结束 UART 传输。

但是、这只对单字节 UART 数据包有效、如果发送的数据多于该数据、那么 UART 不会超时、但数据会传输到 SRAM 中。

我确实看到了 RTFG 只有在 FIFO 或 RX 寄存器中有"剩余"数据时才会生效、但如果 DMA 配置正确、永远不会发生这种情况、那么在这种情况下、您应该如何将 DMA 用于超时功能?

Munan

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

    尊敬的 Munan:

    我的同事将在短时间内回复该主题。 感谢您的理解!

    此致、

    Cash Hao

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

    您观察到的结果符合规格。 FIFO 将立即通过 DMA 传输。 实际上、DMA 适用于特定长度的通信。  

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

    尊敬的 Yuhao:

    是、但这不是客户想要的行为。 他们希望能够将 DMA 用于长度未知的 UART 传输。 因此、期望能够使用 RTFG 来指示 UART 在 BRCLK 的最后 x 个数中没有接收到任何数据。  

    我希望您就如何在仍使用 DMA 的情况下接收未知长度的 UART 传输提供建议。

    Munan

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

    以下是一个使用 UART+ 2DMA +计时器的解决方案。

    (4)[常见问题解答]基于 MSPM0活动的 UART RX ms 级超时实现- MSP 低功耗微控制器论坛- MSP 低功耗微控制器- TI E2E 支持论坛

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

    尊敬的 Yuhao:

    感谢分享、我将发送给客户、但对于此类功能、这是一个资源非常繁重的实施。 请注意、我们的竞争产品提供这种功能、基本上都是基于 UART 外设中的 RX 超时计数器。

    Munan

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

    感谢您的意见、我会将反馈发送给我们的系统。