1. 程式人生 > >MAX3485芯片串口通信軟件使用總結

MAX3485芯片串口通信軟件使用總結

本地 邏輯 半雙工 通信 得出 art 4.3 有一個 等待

  • 芯片管教介紹

    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芯片串口通信軟件使用總結