当RS485设备测试信号时(总线未接从机),发现RS485的输出差分信号关于GND不对称?A,B相的信号也没有覆盖整个0-3.3V区间。如下图1所示所示:明显看出来RS485 信号A低电平没到GND,RS485信号B高电平没到VDD。
查看芯片手册,芯片手册中关于芯片内部A,B相对地等效阻抗是大于98kΩ,典型值200kΩ(典型值在芯片手册中未标明,询问原厂得到)。如下图2。既然内部对地电阻是对称的,外部电路上下拉也是对称的,为什么测出来不对称呢?
图 1 RS485网络信号波形
图 2接收器输入阻抗值
总线上的电压是分压的结果,如下图3示意:
图 3 添加了总线偏压电阻后的DC路径
是不是跟总线上的负载有关?带着这个猜想试着断开负载:先将总线上负载去掉(电路上去掉R21,R22)。测试出来如下图4所示,改善不大,基本没看出来有什么变化,还是不对称。
图 4 RS485总线AB相去掉0R电阻
其他没有别的东西了,挺奇怪,假设芯片内部A,B相标注的输入阻抗值是准确的,那么总线输出一定是对称的?难道是上下拉电阻的问题?问题是上下拉电阻是一样大啊,不可能是这个问题吧,带着试试看的心里去掉了上下拉电阻R19、R25,再次测量总线信号,如下图5所示,波形基本对称了,解决了。看来是外部上下拉电阻问题。
我理解错了,以为只要是内外电阻、上下拉电阻一样,信号就会对称。其实不然,对于RS485 总线来说:当强上拉或强下拉时,采到的信号是不对称的,举一个极端一点的例子:A用0R强上拉到VDD,那么A发1,可以输出高电平,没问题,但是当A发0时,是无法输出低电平的,这是上下拉电阻阻值造成的不对称,对于B也如此。就像MCU的GPIO一样,同一个GPIO口,它的推拉电流能力也不一样。这是造成测试出来差分信号不对称的原因。
另外一种不对称可能是由不同厂家的RS485芯片造成的,因为不同厂家的485芯片驱动能力略有差异。如果RS485网络中主从是不一样厂家的芯片,就有可能出线总线电平不对称的情况出线。
图5 RS485 AB总线断开0R 去掉上下拉电阻
有细心的小伙伴发现上面的波形好像在高低电平期间不是很平坦,这个在我们测试信号的时候经常会遇到,也很容易忽略,这其实是使用示波器之前未进行校准导致的,校准完成之后复测信号,波形图如下图6,非常完美。
图6 RS485 AB总线断开0R 去掉上下拉电阻 已校准探头
内容简介:讲解RS485差分输出为什么不对称