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.

[参考译文] Linux/TMS320F28377S:通过 TTY 与 Linux PC 进行 SCI 串行通信

Guru**** 2535450 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/603180/linux-tms320f28377s-sci-serial-communication-with-linux-pc-via-tty

器件型号:TMS320F28377S

工具/软件:Linux

我使用 的是 F28377S 并已使用 SCI-A 对其进行配置、因为它通过 GPIO 85和84与 USB 进行多路复用、并且可以使用相同的调试 USB 线进行传输。 我使用它通过 TTY 从 Linux PC 接收32位模式。 接收时的第三个帧或第三个32位缓冲区会损坏。不管它是在离开 PC 时还是在到达 TI 板后损坏。 使用简单的 POSIX 串行通信代码。 所有波特率和通道都是正确的。我已经检查了尽可能多的标志。 我是否必须在 ti 板和 Linux 通信程序上配置具体的标志。这里是 SCI 示例代码中提到的标志。 硬件控制和软件控制是否自动整理。我经常听说 TI 电路板和 PC 之间有一个用于此类应用的控制卡。请帮助我解决此问题、或者如果您可以建议另一种方法

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

    从 SCI HW 角度来看、您可以配置字长、奇偶校验类型和停止位数。 一个很好的调试步骤是使用示波器或逻辑分析仪从 PC 捕获串行消息、并将实际消息与硬件设置进行比较。

    当您捕获消息时、您还可以测量位时序、并确保来自 PC 的数据具有预期的波特率。 如果这些都很好、您还可以检查 F28377S 时序。 您可以通过从 SCI 发送消息并测量位时序来测量 X1上的输入时钟、XCLOCKOUT 上的(分频)输出时钟、然后测量实际 SCI 时序。

    SCI 确实有一些标志、可以潜在地确定消息失败的原因。 这些是奇偶校验、溢出、组帧和中断检测。 您应该在每条消息后检查这些位、以查看是否存在错误。 可能会发生的一件事是、当第3条消息到达时、第二条消息中的错误可能会使 SCI 处于意外状态。