轉載
3359 blog.csdn.net/hailin 0716/article/details/24333951
一、推挽輸出:
可以輸出高,低電平,連接數(shù)字設備; 推挽結構一般是指兩個晶體管分別由兩個互補的信號控制,總是一個晶體管導通時另一個截止。 高低等級由集成電路的電源決定。
推挽電路是兩個參數(shù)相同的晶體管或MOSFET,以推挽方式存在于電路中,分別負責正負半周的波形放大。 電路工作時,對稱的2根功率開關管一次只導通1個,因此導通損耗小,效率高。 輸出既可以使電流通過負載,也可以從負載中引出電流。 推挽型輸出級在提高電路負載能力的同時,提高開關速度。
一條三級管開通時,另一條斷路由b端確定,
這是對于ab,b的輸出為0的比較器。 對于ab,b輸出為1
b為1時,上邊晶體管導通,下邊截止;
b為0時,下面的晶體管導通,上面的晶體管截止。
這是推挽
二、開漏輸出:
當b為1時,該管道導通,OUT接地,輸出為0; b為0時管導通,OUT連接VCC輸出為1 .
漏極輸出: 一般只能輸出低電平,輸出端子相當于晶體管的集電極。 要得到高電平狀態(tài)需要上拉電阻。 適合電流型驅動,吸收電流的能力相對較強(通常20ma以內)。
開路泄漏形式的電路包括以下特點
利用外部電路的驅動能力,減少IC (集成電路,也稱為芯片)內部的驅動。 IC內部的MOSFET導通時,驅動電流從外部的VCC流向R pull-up,從MOSFET流向GND。 IC內部只需要小的柵極驅動電流。
一般來說,開路漏極用于連接不同等級的器件并匹配等級。 開路漏極引腳上不連接外部上拉電阻的話,只能輸出低電平,所以需要同時具備輸出高電平的功能時,需要連接上拉電阻。 具有通過改變上拉電源的電壓,可以改變傳輸電平的優(yōu)秀優(yōu)點。 例如,如果加上上拉電阻,就可以提供TTL/CMOS電平的輸出等。 (上拉電阻的電阻值決定了邏輯電平轉換的邊沿的速度。 電阻值越大,速度越低,消耗電力越小,因此選擇負載電阻時請兼顧消耗電力和速度。 )
OPEN-DRAIN提供了靈活的輸出方式,但也有弱點。 帶來啟動的延遲。 由于上升沿通過外置牽引無源電阻對負載進行充電,所以電阻選擇小時延遲小,但功耗大,相反延遲大時功耗小。 需要延遲時,建議在下降沿輸出。
開放輸出的多個Pin可以連接到一條線上。 通過一個上拉電阻,在不增加任何器件的情況下形成“邏輯和”的關系。 這也是I2C、SMBus等總線判斷總線占用狀態(tài)的原理。 補記:什么是“線和”?
在一個節(jié)點(線)上,上拉電阻與電源VCC或VDD和n個NPN或NMOS晶體管集電極c或漏極d連接,這些晶體管的發(fā)射極e或源極s在一個晶體管飽和時由于這些晶體管的基極注入電流(NPN )或柵極加上高電平(NMOS )會使晶體管飽和,因此這些基極或柵極與“節(jié)點”線路的關系是非NOR邏輯。 在該節(jié)點后加上變頻器,即為OR邏輯。
實際上,可以簡單理解的是,在所有管腳連接時,向外部引入電阻,如果一個管腳的輸出為邏輯0,則相當于接地,與其并聯(lián)的電路"相當于被一根引線短路",所以外部電路的邏輯電平為0
三、浮空輸入
花癡的哈密瓜漂浮在空中,上面用繩子拉就會上升,下面用繩子拉就會下沉。 浮動輸入時,很難輸入大電流。 浮動輸入、內阻大,需要高電壓。
邏輯器件的輸入端子既不與高電平連接也不與低電平連接。 由于邏輯器件的內部結構,輸入引腳懸浮在空中時,相當于該引腳與高電平連接。 在實際運用中,不建議引線懸空,容易礙事。
四、上拉輸入/下拉輸入/模擬輸入:
1、上拉輸入:上拉是指提高電位,如上拉至Vcc。 上拉是指通過電阻將不確定的信號嵌入高電平!
2、下拉輸入:是降低電壓,拉至GND。
3、模擬輸入:模擬輸入是指傳統(tǒng)方式的輸入。 數(shù)字輸入是PCM數(shù)字信號,即輸入0、1的二進制數(shù)字信號,被數(shù)模轉換為模擬信號,經(jīng)過前級放大后進入功率放大器。
五、復用開漏輸出、復用推挽輸出:
.可以理解為當GPIO端口用作第二功能時的部署情況(也就是說,不是用作通用IO端口)。
最后總結使用情況。 在STM32中選擇IO模式
)1)浮動輸入_IN_FLOATING ——浮動輸入可識別KEY,RX1
)2)上拉輸入_IPU——IO帶內部上拉電阻輸入
(3)帶下拉輸入_IPD—— IO內部下拉電阻輸入
(4)模擬輸入_應用_ain——ADC模擬輸入,或實現(xiàn)低功耗省電
)5)開路漏極輸出_OUT_OD ——IO輸出
0 接 GND, IO 輸出 1,懸空,需要外接上拉電阻,才能實現(xiàn)輸出高電平。當輸出為 1 時, IO 口的狀態(tài)由上拉電阻拉高電平,但由于是開漏輸出模式,這樣 IO 口也就可以
由外部電路改變?yōu)榈碗娖交虿蛔?。可以讀 IO 輸入電平變化,實現(xiàn) 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)
STM32 設置實例:
(1)模擬 I2C 使用開漏輸出_OUT_OD,接上拉電阻,能夠正確輸出 0 和 1;讀值時先
GPIO_SetBits(GPIOB, GPIO_Pin_0);拉高,然后可以讀 IO 的值;使用
GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_0);
(2)如果是無上拉電阻, IO 默認是高電平;需要讀取 IO 的值,可以使用帶上拉輸入_IPU 和浮空輸入
_IN_FLOATING 和開漏輸出_OUT_OD;
通常有 5 種方式使用某個引腳功能,它們的配置方式如下:
1)作為普通 GPIO 輸入:根據(jù)需要配置該引腳為浮空輸入、 帶弱上拉輸入或帶弱下拉輸入,同時不要使能
該引腳對應的所有復用功能模塊。
2)作為普通 GPIO 輸出:根據(jù)需要配置該引腳為推挽輸出或開漏輸出,同時不要使能該引腳對應的所有復
用功能模塊。
3)作為普通模擬輸入:配置該引腳為模擬輸入模式,同時不要使能該引腳對應的所有復用功能模塊。
4)作為內置外設的輸入:根據(jù)需要配置該引腳為浮空輸入、 帶弱上拉輸入或帶弱下拉輸入,同時使能該引
腳對應的某個復用功能模塊。
5)作為內置外設的輸出:根據(jù)需要配置該引腳為復用推挽輸出或復用開漏輸出,同時使能該引腳對應的所
有復用功能模塊。