码迷,mamicode.com
首页 > 其他好文 > 详细

MAX3485芯片串口通信软件使用总结

时间:2018-01-28 17:20:54      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:使用   最好   分析   时机   还需要   过滤   连接   写入   差分   

  • 芯片管教介绍

    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字符的情况。
  • MAX3485芯片串口通信软件使用总结

    标签:使用   最好   分析   时机   还需要   过滤   连接   写入   差分   

    原文地址:http://blog.51cto.com/whthand/2065998

    (0)
    (0)
       
    举报
    评论 一句话评论(0
    登录后才能评论!
    © 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
    迷上了代码!