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.

[参考译文] MSPM0L1304:两个器件之间的 UART 通信问题

Guru**** 2391315 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1515320/mspm0l1304-uart-communication-issue-between-two-devices

部件号:MSPM0L1304
主题:SysConfig 中讨论的其他器件

工具/软件:

大家好!

我正在努力在两个器件之间运行 UART 通信:

  • 器件1:MSPM0微控制器

  • 设备2:teensy 4.0

两款器件均配置为115200波特、8个数据位、无奇偶校验、1个停止位(8N1)。

但是、我遇到了一些奇怪的行为:

  • 如果器件2 (teensy 4.0)中的字节快速发送(它们之间没有延迟)、它们有时会在器件1 (MSPM0)上被合并或误解。 接收到的字节的映射基本一致但不正确、相同的严格打包消息会出现相同的乱码字节。

  • 如果我在从器件2发送的每个字节之间增加了1ms 的延迟、则器件1上接收的数据变为1:1映射(每发送一个字节接收一个字节)-但无论发送的内容如何、接收到的值始终为0xFF 或0xFE。

  • 从器件1发送到器件2会导致每个单字节作为两个字节接收:器件2上的0x00 0x00、即使每个字节之间有1ms 的延迟也是如此。

有人以前遇到过这种问题吗?

如果能就可能导致这种情况的原因提出任何建议、将会非常感激。

谢谢!

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

    这听起来像是位速率不匹配。 我记得,茶匙使用晶体,所以我想它的速度更接近正确。 即便如此、MSPM0 SYSOSC 的额定值为1.2%、其中(经验法则)大多数 UART 可承受高达3%的容差。 一个范围可以方便地辨别谁是坏的。

    您如何计算 MSPM0上的比特率分频器(IBRD/FBRD)?

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

    我使用了 CCS Theia 的 SysConfig。 下面是相关部分的屏幕截图:

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

    我在 MSPM0配置上没有看到任何问题。 您能否使用数字分析器捕获波形以提供更多信息?