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.

[参考译文] IWR6843:将 UART 与 DMA 配合使用时数据丢失

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1134083/iwr6843-data-loss-when-using-uart-with-dma

器件型号:IWR6843

您好!

 

我使用具有 DMA 的 UART 外设进行 RX 传输和 TX 传输。 UART 的波特率为2 083 333。

到目前为止、我没有遇到任何问题、因为我只传输小帧(20到30字节)。

但是、现在我需要接收6KB 以上的帧、似乎 DMA 每接收1000到3000字节就会丢失1个字节。

如果我将波特率降低到1 562 500以下、则此问题消失。 遗憾的是、这种解决方案对我的应用来说是不可接受的。

看起来 DMA 的速度不够快、无法以高波特率应答来自 UART 的所有请求。

我尝试使用 EDMA 而不是 DMA、但我没有设法使它适用于 UART RX 请求。

 

对于以2 083 333波特率接收到的字节、DMA 是否能够不丢失?

是否有将 EDMA 与 UART RX 请求结合使用的示例?

 

此致、

 

文森特

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

    尊敬的 Vincent:

    您如何接收此数据? 如果您在我们的器件上使用其中一个 USB 端口、我想验证包含的 UART-USB 桥接器的性能、因为这可能高于它们能够持续稳定支持的波特率。  

    此致、
    阿尔茨

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

    您好、Alec、

     

    我不是从 USB-UART 桥接收这些数据、而是从另一个微控制器的 UART (STM32H7)接收这些数据。 我已经用示波器进行了检查、该微控制器发送的波特率和字节数是正确的。 在示波器上、我看到6163字节的 howl 帧、但在读取 DMA 计数器时、我看到 DMA 仅将6159传输到6162 (取决于运行情况)。

     

    此致、

    文森特

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

    尊敬的 Vincent:

    明白。 如果发送一个包含已知数据的数据包、您能否检查丢失的字节是否是数据包的最终字节、或者丢失的字节是否间歇性地分散在整个数据包中? 这将有助于我们缩小可能出现的问题。


    此致、
    阿尔茨

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

    您好!

    不是最后丢失的字节、丢失字节的位置在整个帧中是随机的。

    此致、

    文森特

    PS:我错误地按下了"这解决了我的问题"

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

    尊敬的 Vincent:

    明白。 UART 的器件输出速率仅在高达921600的情况下进行测试、因此超出该功能的情况无法保证。 通常情况下、我们建议切换到不同的输出通道、在这种情况下可以支持更高的吞吐量。 您能否提供有关您希望实现的目标的任何背景信息?

    此致、
    阿尔茨

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

    您好、Alec、

    应在参考手册中注明、在921600以上不能保证功能安全。 我在文档中找不到此信息。

    感谢您的回答、如果我需要更多帮助、我将开始新的主题。

    此致、

    文森特

x 出现错误。请重试或与管理员联系。