DSO-X 3034A示波器调试485接收乱码
一)测试机器:
两台V1.1版本,一台V1.2版本
硬件区别主要是后面的上下拉电路,V1.1使用6.8K,V1.2使用2K
二)异常现象:
多种模拟测试之后,发现如下配置时:
PC输出——>产品COM2——>产品RS485——> PC,波特率9600
当拔掉RS485接口后,V1.1版本的一台机器出现异常,RS485的接收灯常亮,有收到乱码,插上后又正常,断电重启后现象一样。
三)调试验证:
将异常的V1.1机器上下拉电阻改成2K上下拉电阻后,通信正常。
四)进一步分析:
RS485的接收灯常亮,说明接收端有数据,测试U1110波形,接收数据脚确实有数据,且大部分时间都是低电平,所以接收灯常亮。
RS485正常时波形如下,RX有向下的尖峰,且对应于pin3的下降沿,实测向下的尖峰为百nS级
尖峰改善试验,尝试使用三极管代替反相器控制485芯片
修改后,实测波形如下
结论:
1)R485输出芯片的上下拉电阻大小对数据的传输有影响;
2)三极管控制,比直接用反相器控制从实际效果上看更佳,但是具体参数可能还需要优化调整;
3)无论是三极管还是反相器控制,485输出高时还是用的上下拉实现,所以驱动能力并没有改善。
2015-08-10
深入补充
1)测试TI不带施密特触发器的反相器-SN74LVC1G04DBVR,测试结果与之带施密特触发器的反相器-SN74LVC1G14DBVR,现象一样;
2)使用三极管控制
A) 根据上图三极管开关电路的推荐,增加180pF的Cs加速电容后,出现和使用反相器一样的现象
以下测试去掉加速电容Cs
B)
C)
E)
小结:
1)使用反相器时:tx反向后的上升下降时间都比较短,16nS左右;
2)使用三极管,tx反向后的上升和下降时间都会延长;
3)三极管开关中的RL阻值影响tx反向波形的上升沿时间,对下降沿时间影响较小;
4)三极管的加速电容使得tx反向后的下降沿加速;
5)U1110_1脚的下降尖峰产生与tx反向后的下降沿时间有关,下降沿时间到几十nS级,就出现此尖峰;
6)U1110_1脚的下降尖峰对应于RS485接收到了数据,窄的下降尖峰不会被隔离芯片ISO7221A所接收,试验测试250nS左右的下降尖峰,经过ISO7221A后,会被滤除认为没有信号;
7)Tx反向后的下降沿时间长短直接导致U1110_1脚下降尖峰的产生与否。
修改措施:
1)针对目前的PCB生产,维持V1.2版本硬件修改,使用2K的上下拉电阻;
2)针对后续项目,综合功耗考虑使用三极管BC817,RL=100K,Rb=100K,无加速电容。
继续补充:
前面的测试波特率只是针对9600。
进一步测试,使用反相器时,测试波特率2400,4800,9600,19200,38400,115200都没有问题
使用三极管电路,测试不同波特率下,tx及tx反向后波形,115200波特率下出现乱码
分析:结合上面三幅图片,可以看出tx反向后的上升时间再加上tx反向与tx的延迟时间和115200波特率下的数据最小宽度时间已经可比拟,tx反向波形上升还没完成又要反向,从而出现异常。
根据前天的结论:RL影响tx反向波形的上升时间,RL改成1K后,115200波特率下,能够正常收发,但是从波形上看,还是有点临界。