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.

[参考译文] TMS320F280049:LIN SCI Multibuffer 用于 Modbus RTU

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1432999/tms320f280049-lin-sci-multibuffer-use-for-modbus-rtu

器件型号:TMS320F280049
Thread 中讨论的其他器件:C2000WARE

工具与软件:

您好!

我们的团队希望在 SCI 兼容模式下使用280049的 LIN 模块,因为我们的产品需要更多的 SCI。 LIN 中的多缓冲器是否能够与 SCI 模块中专门用于 Modbus RTU 实现的 FIFO 类似?

此致、

Wes

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

    SCIFORMAT 寄存器似乎指示将多缓冲区设置为打开时、每条消息可以使用1-8个字符。 这是正确的吗、或者是否有办法配置多次缓冲区以允许更多字符?  具有 FIFO 的 SCI 逻辑使用 TXEMPTY 中断来发送更大的消息。 是否可以以类似的方式设置 LIN?

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

    尊敬的 Wes:

    是的、在这种情况下、限制是1-8个连续字符、您可以更正、并且在 SCI 模式下的 LIN 模块中有类似的标志:

    多缓冲 LIN (在 SCI 模式下)的功能与 FIFO 类似、它提供用于存储多个字符的电平并能够相应地触发中断、但需要考虑一些差异。 例如、LIN 缓冲区是存储器映射的、因此在对它们进行读取和写入时、应仔细检查是否按正确的顺序对缓冲区进行读取和写入-我建议您利用 driverlib 函数(源代码位于{C2000Ware}\driverlib\f28004x\driverlib\lin.c 和 lin.h)来帮助简化此操作/解决此问题。  

    还有一些您可以参考的示例:

    • {C2000Ware}\driverlib\f28004x\examples\lin
      • 示例2:具有 RX 中断的 LIN 非多缓冲 SCI 模式
      • 示例3:使用 DMA 的 SCI 模式中的 LIN 多次缓冲

    我相信您将需要专门使用 LIN-SCI 中断、在 TX ISR 使用中LIN_sendData()以及在 RX ISR 使用中使用LIN_getData()

    希望这对您有所帮助!

    此致、

    Allison