MAX3485芯片串口通信軟件使用總結
阿新 • • 發佈:2018-01-28
本地 邏輯 半雙工 通信 得出 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芯片串口通信軟件使用總結