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