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.

[参考译文] TMS570LS3137:UART DMA RX 可变大小问题

Guru**** 2577385 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1122680/tms570ls3137-uart-dma-rx-variable-size-problem

器件型号:TMS570LS3137

大家好、我需要帮助来设置 DMA 配置。

我有一个大小可变的 DMA UART RX。 例如、我可以得到10字节或284字节。 我不知道。

在这种情况下、我如何设置 DMA 配置和处理?

我无法读取 dmaRAMREG->WCP[通道]寄存器。 问题是什么? 它是可读寄存器。

谢谢

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

    您好!

    我正在处理您的问题、我将在今天结束时回复您。

    --

    谢谢、

    Jagadish。

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

    您好

     带有 DMA 的 UART 不能动态更改数据包大小。

    因此、您必须在应用级别实施某些协议、例如发送器需要告知接收器它将要发送的数据包大小、并且接收器可以更改新数据包大小的 DMA 数据包设置。 通过这种方式、您可以使用带有 DMA 的 UART 接收可变大小的数据。

    --

    谢谢、
    Jagadish。

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

    感谢您的回复、

    我还有一个问题。

     dmaRAMREG->WCP[通道]和 dmaREG->PBACTC 之间有何区别?

    当我想读取 COUNT 时、如果通道处于活动状态、则 WCP 无效、PBACTC 有效。如果通道处于非活动状态 、则 PBACTC 无效、WCP 有效。 对吧?

    叉子

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

    您好!


    昨天我休假了、现在我正在验证您的问题、我将很快向您更新。

    --
    谢谢、

    Jagadish。

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

    您好

    当我想读取 COUNT 时、如果通道处于活动状态、则 WCP 无效、PBACTC 有效。如果通道处于非活动状态 、则 PBACTC 无效、WCP 有效。 对吧?

    这是正确的、是预期的行为、因为  

    WCP->CTCOUNT 位将提供 DMA 传输中剩余的帧和元素计数、因此这些数据将在通道停用后更新、一旦通道处于活动状态、这些位将无效、因为 DMA 将传输帧和元素将逐渐减少。 取消激活通道后、这些位将为您提供相应通道的剩余帧和元素。

    dmaREG->PBACTC 位将为我们提供当前活动通道帧和传输的元素计数、这意味着从相应活动通道传输的帧和元素数量。 它是所有右侧通道的通用寄存器、因此只有活动通道传输计数才会反映在这些位中。 因此、我们必须读取当前活动通道编号并存储这些数据。

    --

    谢谢、

    Jagadish。

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

    感谢帮助:)

    我现在明白了