- 芯片管脚介绍
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字符的情况。