标签:使用 最好 分析 时机 还需要 过滤 连接 写入 差分
芯片管教介绍
1.1 1号引脚为RO,通常与MCU UART控制器的RX相连接,用于接收对端数据。
1.2 2号引脚为RE,RE对RO起控制作用,RE为低电平,RO可接收数据,RE为高电平时,RO不接收数据。
1.3 3号引脚为DE,DE对 DI 起控制作用,DE为高电平,DI 可输出数据,DE为低电平时,DI不输出数据。
1.4 4号引脚为 DI ,通常与MCU UART控制器的TX相连接,用于发送数据到对端。
1.5 5号引脚为GND,串口通信时,要注意保证所有设备都共地。
1.6 6号引脚为A, A线要与对端的A线相连接,A线输出为正电压。
1.7 7号引脚为B, B线要与对端的B线相链接,B线输出为负电压。
1.8 8号引脚为VCC,为MAX3485芯片提供工作电源。
芯片工作介绍
2.1 MAX3485为半双工通信,即本端要发送数据时,应保证所有对端都不发送数据。本地处于接收数据的状态时,不应该进行数据发送。
2.2 MAX3485的总线电平由A线电平 - B线B电平得出,A - B > 2V,总线为高电平,A - B < -2V,总线为低电平;属于差分信号。
2.3 A/B线的信号由芯片对DI上的电平做转换得到,RO的电平由芯片对A/B线的信号转换得到。
芯片软件控制
3.1 芯片一般处于接收模式,即DE与RE都为低电平时,RO使能,DI不使能。
3.2 发送数据前,MCU通过拉高 与DE/RE相直连的引脚电平,从而让让MAX3485处于发送模式,接着再通过UART控制器发送比特位数据。
MCU上一次数据发送完成后,需要等待20个bits的时间后再将DE/RE相直连的引脚拉低,因为MCU上最后一个字节发送后,其实只是写入到了UART寄存器中,此时MAX3485至少还需要有一个字节的时间处于发送状态,即DI应该还处于使能状态。
【数据发送完成后,好需要保持DI使能的时间最好通过逻辑分析仪来抓取一下,发送完成,保持某个时间,查看DE/RE被拉低时,DI上的数据位是否传送完成,若没有,则需要加长时间,若已经传送完成,则需要减少时间,尽可能地让业务保持稳定】
3.3 因为DE与RE控制了芯片的收发,且两者电平一样时只能使能收或者发,所以DE与RE在电路上可以共同连接到MCU的同一引脚上。也可以与MCU的UART控制器的TX相连接,来做到自动控制【暂不讨论】。
3.4 DE/RE的时间应尽可能地通过串口的波特率/起始位/数据位/校验位/停止位来计算得出。
总结
4.1 对于使用MAX3485这种半双工的总线时,应用协议一定要做到同一时间只能有一个设备处于发送状态,其他设备可处于接收状态,但是对于不属于自己的数据应该过滤掉。虽然总线上有多个设备,但协议应该保持点对点通信。
4.2 DE/RE的控制,对收发影响很大,一定要通过多次实验去得到控制这两个引脚的时机。
4.3 在DI使能时,若让RO也使能会形成MCU TX发送的数据会被RX接收到的情况。
4.4 所有连接在一起的设备,一定要共地通信。
4.5 共模电阻要按照实际情况来增加,有时本端加入了共模电阻,会造成在接收数据时,首先接收到一个0字符的情况。
标签:使用 最好 分析 时机 还需要 过滤 连接 写入 差分
原文地址:http://blog.51cto.com/whthand/2065998