【问题标题】:UART speed possibly wrongUART速度可能错误
【发布时间】:2010-04-13 22:46:32
【问题描述】:

我的大脑被炸了,所以我想我会把这个传给社区。​​p>

向我的嵌入式系统发送 1 个字符时,它始终认为自己收到了 2 个字符。第一个接收到的字符似乎映射到传输的字符(以某种未知的方式),第二个接收到的字符总是 0xff。

这是我观察到的:

Tx char (in hex)    Rx character (in hex), I left out the second byte (always ff)
31                    9D
32                    9B
33                    99
61                    3D
62                    3B
63                    39
64                    37
65                    35
41                    7D
42                    7B
43                    79

我检查了我的时钟,它们似乎没问题。这个非工作版本和之前版本的唯一区别是我现在使用的是 RS485 芯片。

我已经将信号一直跟踪到 MCU,它看起来很好(确认了 RX 引脚上的位值)

【问题讨论】:

  • 您也可能会从 ChipHacker 那里得到很好的回应。
  • 这是我的帖子(我懒得登录)。在我测试我的一切都是正确的之前,我相当有信心。我正在使用 sn75 或其他 rs485 翻译器。接地层良好,+/- 信号干净(正确端接)。波特率正确设置为 9600 无奇偶校验,1 个停止位。
  • 如果可能,请收听您自己的传输作为碰撞检测的手段。我个人遇到过这样一种情况,即一个字节已成功移出 TX 的移位寄存器,并且我过早地释放了 rs485 收发器的控制引脚,导致传输的最后一个字符(校验和)不正确。

标签: embedded serial-port rs485


【解决方案1】:

第一个收到的字符似乎 映射到传输的字符(在 一些未知的方式)

在每种情况下,TX 字节都会左移 1 位,然后反转。

例如:

31 = 00110001 9D = 10011101

0x31

01100010 的补码是 0x9D

我检查了其他几个,看起来都一样。我不知道第二个字节是从哪里来的,但这可能是信号反转的结果。

RS485 使用差分信号。闻起来就像您使用了芯片的反相输出并插入了 RS232 输入。

我一路追踪信号 到 MCU,它看起来不错 (确认 rx 上的位值 销)

您使用什么信号作为接地参考?

【讨论】:

  • 如果交换 + 和 - 线,rs485 转换器是否真的可以工作?即 uart 端是否仍会生成一个字节?如果是这样,那么这里生成的内容是有意义的,因为当停止位和开始位反转时,UART 会感到困惑。
  • 最后额外的废话字节也是有意义的。如果在末尾错误地看到了起始位,则下一个字节将全是逻辑位。我认为。我不在我的范围和我的开发工具包附近。
  • 不错的答案 - 当您在 Stackoverflow 上获得 Mark 时,谁需要范围?
  • @michael 是的,假设电线的两端都是 rs485 收发器,则 rs485 链接将在 +/- 连接反转的情况下“运行”。如果您以这种方式接线,信号会出现反转,这很可能是问题所在。在 485 世界中命名 +/- 终端 (A/B) 的方法存在冲突,因此请检查一下。
  • 如果 UART 内置了信号反转选项,那可能比更改接线更简单。
【解决方案2】:

RS485 在电气级别上与 RS232 完全不同(差分与单端以及 +/-6V 与 +15/-3V) - 您的通信链路的两端是否使用相同的协议?

【讨论】:

  • 绝对!我在 USB/串行电缆端有一个 sn75.... rs485 芯片,在我的微板上有一个。
  • 好。当你说“现在使用 RS485 芯片”时,我感到很困惑——这让我觉得你只改变了链接的一端。无论如何,看起来马克可能已经通过检查解决了它!
【解决方案3】:

如果是 RS485,您是否正确设置了总线的“默认状态”?停止位的正确数量如何?

【讨论】:

  • 是的,应该不错,代码与我使用直接 UART (rs232) 时的代码相同,而且这些东西有效!我还确保在发送或接收时有正确的选择器引脚设置 rs485 芯片的方向
猜你喜欢
  • 1970-01-01
  • 2013-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多