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.

[参考译文] TMS320F28386D:SCI 中的 TALK 位

Guru**** 2457760 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1275436/tms320f28386d-talk-bit-in-sci

器件型号:TMS320F28386D

大家好!

我正在使用 TX 和 RX 的 FIFO 增强功能调试一个具有 SCI 通信的应用。 我发现、有时、用于传输缓冲区被写入16次(以填充 TX FIFO)的回路会被 HWI 中断、导致帧中的字节之间出现空闲时间、而参与传输的另一个控制器会将此时间解释为故障帧。 这是由外设一旦有任何要发送的内容就尝试将 FIFO 清空所导致的。

我一直在在 SCI 寄存器中寻找这样的方法、以便在我写入 FIFO 时阻止传输、然后在 FIFO 满时立即允许回传、从而使帧延迟但其字节背靠背发送、 这是所需的行为。 类似于 SPI 中的 TALK 位的功能。

我已经尝试禁用 TX 和 FIFO 增强功能、但如果其中任何一个被清除、显然都无法写入 FIFO。 对如何实施有什么想法吗?

谢谢

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

    尊敬的 Francisco:

    感谢您的提问。 您是否尝试过使用"TXENA"位? 这似乎与您正在寻找的方法类似。

    此致、

    文斯

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

    您好、Vince。

    感谢您的回复。 遗憾的是、我已经进行了尝试、TX FIFO 在 TXENA 关闭时似乎被阻止。 使用该技术并借助 TXENA 写入缓冲区后、我已检查 SCIFFTX.TXFFST 是否为0。  如果我在 TXENA 被清除时暂停执行并对 SCITXBUF 进行手动写入(使用"Registers"选项卡)、TXFFST 不会同时增加两者(启用通信时会发生这种情况)。 最重要的是、通信完全停止工作。

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

    尊敬的 Francisco:

    我现在理解,感谢澄清。 遗憾的是、SCI 模块无法执行您想要执行的操作。 如果对该外设具有 DMA 访问权限、我建议这样做(可能切换到在 CM 内核上使用 UART 外设?)。 这将帮助您不必担心字节之间的空闲时间。

    此致、

    文斯

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

    您好、Vince。

    好主意、我以前没有考虑使用 DMA。 我将检查在我们的项目中使用 CM 是否可行、如果可行、我肯定会使用 DMA+UART。 谢谢你的建议!

    此致