RS485调试不步骤

最近调试空调的485通信。

(1)PC通过485能够正常的空调通信

(2)自己的模块485通信和PC通信正常。//PC收发的数据(小于2K),都能够正常显示

(3)自模块和空调通信失败。


1、物理上的连线

尽量是用双绞线

2、通信配置

波特率设置,停止位,校验位的设置。

3、调试工具

串口调试工具,usb转485串口工具。

4、自模块和空调通信在中间使用usb转485工具进行监控

(1)PC向空调发送控制指令,空调端能够正常返回数据。同时关键点返回的数据自模块也能够正常的接收。

(2)由上一步判断,推断硬件上没有问题。

(3)目前锁定的发送的数据是否存在差异。

5、检测空调端485接收引脚。

这里注意:别人的设计中,即使是在一个微电电路中也使用了电源的隔离。因此,我发现空调电路板上的GND,其实并不是实际的地。

(1)对比PC向空调发送的数据和自模块向空调发送的数据。 //在使用示波器取点的时候,进行采用485芯片的地,同时判断接收引脚的数据情况。

(2)自模块向空调端发送数据,使用PC监控发现数据是正常的;那问题可能出现在哪里????

(3)下一步:自模块向空调发送的数据在延时上的问题。

 PC
 高低电平 830 us
 起始位 800us
 停止位  900us
 
 自模块
高低电平延时 800 us
起始位 800 us
停止位 800us


延时停止位的延时相差100us,对于MCU处理性能较好的IC,那这方面是没有问题。是兼容的,所以就能够正常的通信。

6、最终问题的解决:

空调的电路设计上,输出的 并不是严格意义上的485信号,即使是我的模块似乎输出是行业内的标准也不整改正常的通信。

7、而且现在的问题是,为什么PC能够通信。

原因很简单,那就是PC首先输出的波形和理论上的延时是具有良好的兼容的。而空调就不能够实现。

8、从测试数据上看?

似乎没有问题,485上的总线数据都正常的。但是对于处理能够较为弱的空调IC来说,这就是本次问题的关键。

因此将停止位时间延长,便能够正常的通信。







你可能感兴趣的:(单片机,调试,通信,单片机)