管腳復用功能之 上拉、下拉、模擬、浮空輸入;推挽、開漏、復用輸出
0.三極管基礎
要理解推挽輸出,首先要理解好三極管(晶體管)的原理。下面這種三極管有三個端口,分別是基極(Base)、集電極(Collector)和發射極(Emitter),下圖是NPN型晶體管。
NPN型晶體管-1,這種三極管是電流控制型元器件,注意關鍵詞電流控制。意思就是說,只要基極B有輸入(或輸出)電流就可以對這個晶體管進行控制了。當控制端有電流輸入的時候,就會有電流從輸入端進入並從輸出端流出。
PNP管正好相反,當有電流從控制端流出時,就會有電流從輸入端流到輸出端。
1.上拉輸入:上拉就是把電位拉高,比如拉到VCC。上拉就是將不確定的信號通過一個電阻鉗位在高電平!電阻同時起限流作用!強弱只是上拉電阻的阻值不同,沒有什么嚴格區分。
2.下拉輸入:就是把電壓拉低,拉到GND。與上拉原理相似。
3.浮空輸入:浮空(floating)就是邏輯器件的輸入引腳即既不接高電平,也不接低電平。由於邏輯器件的內部結構,當它輸入引腳空閑時,相當於該引腳接了高電平。一般實際運用時,引腳不建議懸空,易受干擾。通俗講就是讓管腳什么都不
接,浮空着。由於浮空輸入一般多用於外部按鍵輸入,結合圖上的輸入部分電路,我理解為浮空輸入狀態下,IO的電平狀態是不確定的,完全由外部輸入決定,如果在該引腳懸空的情況下,讀取該端口的電平是不確定的。
4.模擬輸入:模擬輸入是指傳統方式的輸入。數字輸入是輸入PCM數字信號,即0,1的二進制信號,通過模數轉換,轉換成模擬信號,經前級放大進入功率放大器,功率放大器還是模擬的。
5.推挽輸出:可以輸出高、低電平,連接數字器件;
推挽結構一般是指兩個三極管分別受兩互補信號的控制,總是在一個三極管導通的時候另一個截至。高低電平由IC的電源決定。推挽電路是兩個參數相同的三極管或MOSFET,以推挽方式存在於電路中,各負責正負半周的波形放大任務,電路工
作時,兩只對稱的功率開關管每次只有一個導通,所以導通損耗小、效率高。輸出既可以向負載灌電流,也可以從負載抽取電流。推拉式輸出級既提高電路的負載能力,又提高開關速度。
來看一個典型的推挽輸出電路:
推挽輸出電路
上面的三極管是N型三極管,下面的三極管是P型三極管,請留意控制端、輸入端和輸出端。當Vin電壓為V+時,上面的N型三極管控制端有電流輸入,Q3導通,於是電流從上往下通過,提供電流給負載。
推挽輸出電路-推電流,經過上面的N型三極管提供電流給負載(Rload),這就叫「推」。
當Vin電壓為V-時,下面的三極管有電流流出,Q4導通,有電流從上往下流過。
推挽輸出電路-挽電流
經過下面的P型三極管提供電流給負載(Rload),這就叫「挽」。以上,這就是推挽(push-pull)電路。
6.開漏輸出:輸出端相當於三極管的集電極。要得到高電平狀態需要上拉電阻才行,適合於做電流型的驅動,其吸收電流的能力相對強(一般20mA以內)。
6.1 開集電路
如圖,開集的意思,就是集電極C一端什么都不接,直接作為輸出端口。如果要用這種電路帶一個負載,比如一個LED,必須接一個上拉電阻,就像下圖這樣。
開集電路-帶負載,當Vin沒有電流,Q5斷開時,LED亮;當Vin流入電流,Q5導通時,LED滅。
6.2 開漏電路,就是把上圖中的三極管換成場效應管(MOSFET)。這樣集電極就變成了漏極,OC就變成了OD,原理分析是一樣的。N型場效應管各個端口的名稱:(柵極:Grid / 漏極:Drain / 源極:Source)
6.3 場效應管
場效應管是電壓控制型元器件,只要對柵極施加電壓,DS就會導通。結型場效應管有一個特性就是它的輸入阻抗非常大,這意味着:沒有電流從控制電路流出,也沒有電流進入控制電路。沒有電流流入或流出,就不會燒壞控制電路。而雙
極型晶體管不同,是電流控制性元器件,如果使用開集電路,可能會燒壞控制電路。這大概就是我們總是聽到開漏電路而很少聽到開集電路的原因吧?因為開集電路被淘汰了。
可以利用改變上拉電源的電壓,改變傳輸電平。如圖2-2, IC的邏輯電平由電源Vcc1決定,而輸出高電平則由Vcc2(上拉電阻的電源電壓)決定。這樣我們就可以用低電平邏輯控制輸出高電平邏輯了(這樣你就可以進行任意電平的轉換)。(例
如加上上拉電阻就可以提供TTL/CMOS電平輸出等。)
開漏電路就是指以MOSFET的漏極為輸出的電路。一般的用法是會在漏極外部的電路添加上拉電阻。完整的開漏電路應該由開漏器件和開漏上拉電阻組成。如下圖2-1所示:
7、復用輸入:可以理解為GPIO口被用作第二功能時的配置情況(即並非作為通用IO口使用)。端口必須配置成復用功能輸出模式(推挽或開漏)
推挽輸出和開漏輸出的區別
推挽輸出,可以輸出高電平,連接數字器件:
輸出0時,N-MOS導通,P-MOS高阻,輸出0。
輸出1時,N-MOS高阻,P-MOS高阻,輸出1;(不需要外部上拉電阻)
開漏輸出:
輸出端相當於三極管的集電極,要得到高電平狀態需要上拉電阻才行,適合做電流型驅動;
輸出0時,N-MOS導通,P-MOS不被激活,輸出0;
輸出1時,N-MOS高阻,P-MOS不被激活,輸出1(需要外部上拉電阻);可以讀IO輸入電平變化,此模式可以把端口作為雙向IO使用;
轉自:https://www.zhihu.com/question/28512432/answer/41217074