GPIO埠各種模式的區別

2021-07-28 19:11:06 字數 2133 閱讀 1484

gpio埠各種模式的區別

(1)gpio_mode_ain 模擬輸入 

(2)gpio_mode_in_floating 浮空輸入 

(3)gpio_mode_ipd 下拉輸入 

(4)gpio_mode_ipu 上拉輸入 

(5)gpio_mode_out_od 開漏輸出 

(6)gpio_mode_out_pp 推挽輸出 

(7)gpio_mode_af_od 復用開漏輸出 

(8)gpio_mode_af_pp 復用推挽輸出

1.1 i/o口的輸出模式下,有3種輸出速度可選(2mhz、10mhz和50mhz),這個速度是指i/o口驅動電路的響應速度而不是輸出訊號的速度,輸出訊號的速度與程式有關(晶元內部在i/o口 的輸出部分安排了多個響應速度不同的輸出驅動電路,使用者可以根據自己的需要選擇合適的驅動電路)。通過選擇速度來選擇不同的輸出驅動模組,達到最佳的雜訊 控制和降低功耗的目的。高頻的驅動電路,雜訊也高,當不需要高的輸出頻率時,請選用低頻驅動電路,這樣非常有利於提高系統的emi效能。當然如果要輸出較高頻率的訊號,但卻選用了較低頻率的驅動模組,很可能會得到失真的輸出訊號。

關鍵是gpio的引腳速度跟應用匹配(推薦10倍以上?)。 

比如: 

1.1.1 對於串列埠,假如最大波特率只需115.2k,那麼用2m的gpio的引腳速度就夠了,既省電也雜訊小。 

1.1.2 對於i2c介面,假如使用400k波特率,若想把餘量留大些,那麼用2m的gpio的引腳速度或許不夠,這時可以選用10m的gpio引腳速度。 

1.1.3 對於spi介面,假如使用18m或9m波特率,用10m的gpio的引腳速度顯然不夠了,需要選用50m的gpio的引腳速度。 

1.2 gpio口設為輸入時,輸出驅動電路與埠是斷開,所以輸出速度配置無意義。 

1.3 在復位期間和剛復位後,復用功能未開啟,i/o埠被配置成浮空輸入模式。 

1.4 所有埠都有外部中斷能力。為了使用外部中斷線,埠必須配置成輸入模式。 

1.5 gpio口的配置具有上鎖功能,當配置好gpio口後,可以通過程式鎖住配置組合,直到下次晶元復位才能解鎖。

2、推挽輸出與開漏輸出的區別

推挽輸出:可以輸出高,低電平,連線數字器件;開漏輸出:輸出端相當於三極體的集電極. 要得到高電平狀態需要上拉電阻才行. 適合於做電流型的驅動,其吸收電流的能力相對強(一般20ma以內). 

推挽結構一般是指兩個三極體分別受兩互補訊號的控制,總是在乙個三極體導通的時候另乙個截止. 

要實現 線與 需要用oc(open collector)閘電路.是兩個引數相同的三極體或mosfet,以推挽方式存在於電路中,各負責正負半周的波形放大任務,電路工作時,兩隻對稱的功率開關管每次只有乙個導通,所以導通損耗小,效率高。輸出既可以向負載灌電流,也可以從負載抽取電流

當埠配置為輸出時: 

開漏模式:輸出 0 時,n-mos 導通,p-mos 不被啟用,輸出0。 

輸出 1 時,n-mos 高阻, p-mos 不被啟用,輸出1(需要外部上拉電路);此模式可以把埠作為雙向io使用。 

推挽模式:輸出 0 時,n-mos 導通,p-mos 高阻 ,輸出0。 

輸出 1 時,n-mos 高阻,p-mos 導通,輸出1(不需要外部上拉電路)。

簡單來說開漏是0的時候接gnd 1的時候浮空 推挽是0的時候接gnd 1的時候接vcc

3、在stm32中選用io模式 

(1) 浮空輸入_in_floating ——浮空輸入,可以做key識別,rx1 

(2)帶上拉輸入_ipu——io內部上拉電阻輸入 

(3)帶下拉輸入_ipd—— io內部下拉電阻輸入 

(4)模擬輸入_ain ——應用adc模擬輸入,或者低功耗下省電 

(5)開漏輸出_out_od ——io輸出0接gnd,io輸出1,懸空,需要外接上拉電阻,才能實現輸出高電平。當輸出為1時,io口的狀態由上拉電阻拉高電平,但由於是開漏輸出模式,這樣io口也就可以由外部電路改變為低電平或不變 。可以讀io輸入電平變化,實現c51的io雙向功能 

(6)推挽輸出_out_pp ——io輸出0-接gnd, io輸出1 -接vcc,讀輸入值是未知的 

(7)復用功能的推挽輸出_af_pp ——片內外設功能(i2c的scl,sda) 

(8)復用功能的開漏輸出_af_od——片內外設功能(tx1,mosi,miso.sck.ss)

GPIO埠模式配置

下圖為gpio硬體結構框圖 gpio 8 種工作模式 1 typedef enum 2 gpiomode typedef 主要介紹一下復用功能 復用功能輸出 中的 復用 是指 stm32 的其它片上外設對 gpio 引腳進行控制,此時 gpio 引腳用作該外設功能的一部分,算是第二用途。從其它外設引...

zynq中各種GPIO方式的區別

zynq可以提供多種方式提供gpio的能力,早上到公司就想應該先搞清楚裡面的各種區別,因為我自己不自然就只會用自己的最熟悉的方案來實現,所以在此總結一下 很多帖子討論這個,當然是因為簡單了 但是好像都沒有整理完整 zynq中gpio有四種,其中ps中mio emio兩種,而pl中同樣有兩種情況,ax...

stm32 GPIO埠的幾種模式

以前只使用,沒有詳細理解過。現在回來做個 輸入模式 gpio mode in floating 輸入浮空 gpio mode ipu 輸入上拉 gpio mode ipd 輸入下拉 gpio mode ain 模擬輸入 輸出模式 gpio mode out od 開漏輸出 gpio mode af ...