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.

[参考译文] TMS570LS3134:SCI 全双工通信

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1404920/tms570ls3134-sci-full-duplex-communication

器件型号:TMS570LS3134

工具与软件:

您好!

我正在处理一个项目、该项目在两个 MCU 之间使用 SCI 通信。 这两个 MCU 都是 TMS570LS3134、它们通过 SCI RX 和 SCI TX 相互连接。 我们测试了 MCU1和 MCU2之间的通信。 当数据从 MCU1发送到 MCU2时、MCU1进入中断处理程序并接收数据。 我们在 MCU2和 MCU1之间测试了相同的内容、结果相同。MCU2进入中断处理程序并接收数据。 但是、当 MCU1和 MCU2尝试同时进行通信时、两个 MCU 都不会接收到任何数据。 我在数据表中滚动查看了一些有关 SCI 在全双工模式下工作的信息。 İs 有任何配置或特殊的东西,因为在全双工的 sci 不能在我的部件上工作。

Im 期待您的帮助

谢谢你。

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

    尊敬的 Samet Varan:

    [quote userid="569235" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1404920/tms570ls3134-sci-full-duplex-communication İs 有任何配置或特殊的东西、因为全双工 sci 在我的器件上不工作。

    否、SCI 不需要任何特殊配置即可实现全双工。 唯一的问题是发送和接收都不应该是轮询模式。 如果接收处于中断模式、则该全双工通信应该起作用。

    是否有可能在我这边共享您的代码以供快速验证 如果需要、您还可以通过私人消息发送。

    ——
    谢谢、此致、
    Jagadish。

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

    尊敬的 Ahmet:

    我不认为您的代码有任何问题、但我想对 SCI 中的全双工进行一些说明。

    SCI 中的全双工是异步全双工、与我们将在 SPI 通信中看到的同步全双工通信不同。

    在 SPI 同步通信中、主器件将随数据一起发送时钟、因此从器件可以将时钟作为参考、可以接收数据、也可以发送数据。 在这里、对于每个位接收、并行的一个位将同步发送。 这样、我们就可以在这里轻松观察全双工通信。

    但对于 SCI、它是异步全双工通信、我的意思是没有时钟、数据也将异步发送和接收。 所以、我是说要在双方都正确接收数据、"sciReceive"函数应在双方调用"sciSend"函数之前同时调用。 想象一下、如果一个控制器与其他控制器相比执行得很少、那么第一个执行代码 fast 的控制器将执行"sciReceive"函数、然后它会尝试使用"sciSend"发送数据、但如果另一个控制器没有执行其"sciReceive"、则无法正确接收来自第一个控制器的数据。 如果只存在 ms 或 us 时间差、这是可以实现的、而且您也只发送一个字节。

    因此、要正确执行您的测试、您可以执行一件事情、首先尝试将两个控制器都置于调试模式、然后最好在两个控制器侧的"sciReceive"函数后设置一个断点、在两个控制器都达到该断点后、您现在可以运行代码、这样两个控制器都可以并行接收数据而不会出现任何问题。

    ——
    谢谢、此致、
    Jagadish。