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:具有 DMA 的 SCI Rx -帧计数

Guru**** 2478185 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/689213/tms570ls3137-sci-rx-with-dma---frame-count

器件型号:TMS570LS3137

您好!

我想使用 DMA 设置 SCI Rx。 但是、我不知道需要多少字节。  

我可能会接收到[17、270]个字节之间的任何内容。

因此、不确定应如何设置 FRCNT。 (一个元件是8位。 元素数量为1。)

如果我将 FRCNT 设置为 max (270)、并且 PC 应用程序发送145字节的数据包、DMA 的行为是怎样的?  

我如何知道 RX DMA 是否已完成、因为我无法检查帧传输完成状态标志的状态(因为145小于270)。 因此、不确定如何计算 SCI Rx 何时完成。

如何检查 DMA 是否由以下器件完成:while (dmaREG->DMASTAT &(1 << dmaChannel))

有什么指导? 谢谢

===

粗略的方案是:PC 应用将发送一个大小介于17到270字节之间的数据包。

固件将接收并消化此数据包、并对 PC 应用程序做出响应。

PC 应用程序在收到来自固件的消息之前不会发送新字节。

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

    在开始 DMA 传输之前应该知道字节数。 在配置 DMA 通道包之前、另一个大小的 UART 应向您发送一个标头、告知数据长度。

    如果 FRCNT 为270、但仅发送200字节数据、则 DMA 会继续等待。 可以通过向 GCTRL 寄存器的 DMA_EN 写入0来禁用 DMA。