在工業(yè)通信領域,RS-485 總線因其良好的抗干擾性、長傳輸距離和多節(jié)點通信能力而被廣泛應用。MAX3485 作為一款 3.3V 供電的半雙工 RS-485/RS-422 收發(fā)器芯片,在構建 485 通信外設時具有重要價值。本文將詳細介紹 MAX3485 芯片的核心特性、硬件設計要點、軟件功能實現以及在MCU芯片AS32S601-485通信外設中應用注意事項,旨在為相關工程技術人員提供專業(yè)的技術參考。
一、核心特性
- 供電范圍 :MAX3485 芯片支持 3.0V 至 3.6V 的單電源工作模式,這一特性使其能夠與 3.3V 系統(tǒng)設計無縫兼容,確保了在不同系統(tǒng)架構中的穩(wěn)定供電。
- 通信速率 :具備最高達 12Mbps 的傳輸速率,能夠滿足高速數據傳輸的需求,適用于對通信速度要求較高的工業(yè)自動化控制系統(tǒng)。
- 節(jié)點容量 :支持最多 256 個節(jié)點并聯在同一總線上,為構建大規(guī)模的分布式監(jiān)測與控制系統(tǒng)提供了硬件基礎,可實現多個設備之間的協同通信與數據共享。
二、硬件設計要點
- 引腳功能 :
- RO 引腳(1 號引腳)通常與微控制器(MCU)UART 控制器的 RX 相連接,用于接收對端發(fā)送的數據。
- RE 引腳(2 號引腳)對 RO 起控制作用。當 RE 為低電平時,RO 可接收數據;當 RE 為高電平時,RO 不接收數據。
- DE 引腳(3 號引腳)對 DI 起控制作用。DE 為高電平時,DI 可輸出數據;DE 為低電平時,DI 不輸出數據。
- DI 引腳(4 號引腳)通常與 MCU UART 控制器的 TX 相連接,用于將數據發(fā)送到對端。
- GND 引腳(5 號引腳)在串口通信中起到關鍵作用,必須保證所有設備共地,以確保信號傳輸的準確性和穩(wěn)定性。
- A 引腳(6 號引腳)與對端的 A 線相連接,輸出為正電壓。
- B 引腳(7 號引腳)與對端的 B 線相連接,輸出為負電壓,與 A 線共同構成差分信號。
- VCC 引腳(8 號引腳)為 MAX3485 芯片提供工作電源。
2.電氣特性:
MAX3485為半雙工通信,即本端要發(fā)送數據時,應保證所有對端都不發(fā)送數據。本地處于接收數據的狀態(tài),不應該進行數據發(fā)送。
MAX3485的總線電平由A線電平 - B線B電平得出,A - B > 2V,總線為高電平,A - B < -2V,總線為低電平;屬于差分信號。
A/B線的信號由芯片對DI上的電平做轉換得到,RO的電平由芯片對A/B線的信號轉換得到。
3.終端電阻與布線要求:
在總線首尾節(jié)點需接入匹配電阻,典型值為 100Ω,以減少信號反射和駐波效應,確保通信質量。
在非惡劣環(huán)境下,可省略偏置電阻(R1/R2/R3)。但在復雜電磁環(huán)境下,適當的偏置電阻有助于穩(wěn)定總線電平。
采用 “手拉手” 拓撲結構連接多個節(jié)點,避免使用星型結構,以減少信號傳輸的延遲和失真,保證通信的可靠性。
三、軟件功能實現
(一)GPIO 初始化
通過配置 GPIO 引腳的功能,使其能夠與 USART5 進行通信。以下是 GPIO 初始化代碼示例:
void MAX3485_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIOG_CLK_ENABLE();
*/* Set GPIO multiplex mapping */*
GPIO_PinAFConfig(GPIOG, GPIO_PinSource12, GPIO_AF_USART5); */* USART5_TX */*
GPIO_PinAFConfig(GPIOG, GPIO_PinSource13, GPIO_AF_USART5); */* USART5_RX */*
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11| GPIO_Pin_12|GPIO_Pin_13;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_Out_PP;
GPIO_InitStructure.GPIO_OStrength = GPIO_OStrength_18mA;
GPIO_Init (GPIOG, &GPIO_InitStructure);
}
}
(二)USART 初始化
對 USART5 進行初始化設置,包括波特率、字長、停止位、校驗位等參數的配置。以下是 USART 初始化代碼示例:
void User_Print_Init(uint32_t BaudRate)
{
USART_InitTypeDef USART_InitStructure;
PLIC_InitTypeDef PLIC_InitStructure;
USART5_CLK_ENABLE();
*/* GPIO Configure */*
RE_DE_Init();
USART_DeInit(USART5);
USART_StructInit(&USART_InitStructure);
*/* Initializes the USART5 */*
USART_InitStructure.USART_BaudRate = BaudRate;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_No;
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
USART_InitStructure.USART_OverSampling = USART_OverSampling_16;
USART_Init(USART5, &USART_InitStructure);
USART_Cmd(USART5, ENABLE);
(三)軟件收發(fā)邏輯
半雙工控制 :在發(fā)送數據時,需將 DE 引腳置為 1,同時將 RE 引腳置為 1,以關閉接收功能;接收數據時,將 DE 引腳置為 0,RE 引腳置為 0。以下是發(fā)送數據的代碼示例:
void MAX3485_Send(void)
{
GPIO_SetBits(GPIOG,GPIO_Pin_11);
USART_SendData(USART5,0xBA);
delay_ms(1);
GPIO_ClearBits(GPIOG,GPIO_Pin_11);
}
空閑狀態(tài) :保持接收模式,即 DE 引腳與 RE 引腳都為低電平,使 RO 使能,DI 不使能,以便監(jiān)聽總線上的數據。
四、應用注意事項
- 協議設計 :在使用 MAX3485 構建的半雙工總線通信系統(tǒng)中,應用協議必須確保同一時間只有一個設備處于發(fā)送狀態(tài),其他設備處于接收狀態(tài)。雖然總線上存在多個設備,但協議應實現點對點通信,對于不屬于自己的數據應進行過濾。
- DE/RE 控制時機 :DE 和 RE 引腳的控制對收發(fā)影響顯著,需要通過多次實驗確定控制這兩個引腳的精確時機,以避免通信沖突和數據丟失。
- 數據接收問題 :在 DI 使能時,若讓 RO 也使能,可能會導致 MCU 的 TX 發(fā)送的數據被 RX 接收到,進而引起數據異常。
- 共地通信 :所有連接在一起的設備必須共地通信,以確保信號傳輸的準確性和穩(wěn)定性。
- 共模電阻配置 :共模電阻應根據實際情況進行調整。有時在本端加入共模電阻可能會導致在接收數據時,首先接收到一個 0 字符的情況,需要針對具體應用場景進行優(yōu)化。
- 發(fā)送時序控制 :芯片一般處于接收模式,即 DE 與 RE 都為低電平時,RO 使能,DI 不使能。在發(fā)送數據前,MCU 通過拉高與 DE/RE 相連接的引腳電平,使 MAX3485 處于發(fā)送模式,然后通過 UART 控制器發(fā)送比特位數據。MCU上一次數據發(fā)送完成后,需要等待20個bits的時間后再將DE/RE相直連的引腳拉低,因為MCU上最后一個字節(jié)發(fā)送后,其實只是寫入到了UART寄存器中,此時MAX3485至少還需要有一個字節(jié)的時間處于發(fā)送狀態(tài),即DI應該還處于使能狀態(tài)。
-
mcu
+關注
關注
146文章
17953瀏覽量
364782 -
485總線
+關注
關注
1文章
30瀏覽量
16980 -
MAX3485
+關注
關注
1文章
6瀏覽量
9486
發(fā)布評論請先 登錄
RS485通信串口輪詢發(fā)送完成后立即拉低MAX3485芯片EN引腳,數據未能全部發(fā)出是為什么?
max3485接收出現錯碼
MAX3485串口通信,無法接收數據
使用STM32驅動MAX3485進行485通信
RS-485接口電路MS3485,可兼容MAX3485,瑞盟一級代理
MAX3485原理設計和程序該如何去實現呢
怎樣去解決485通信亂碼/延時的問題呢
MAX3483, MAX3485, MAX3486 pdf
MAX3485芯片使用方法

max3485與max485區(qū)別詳解(解析為什么max3485不能代替max485)

MAX3485工作原理詳解(MAX3485引腳圖_內部結構_典型應用電路)

EXAR品牌RS485通訊收發(fā)芯片:SP3485

評論