`對于常規(guī)MCU,通用輸入輸出(GPIO)是其最基本、最常用的功能,`
`用于實現(xiàn)最基本的數(shù)字量輸入和輸出。`
信號一般為:
- 以3.3VDC為高電平的LTTL電平
- 以5.0VDC為高電平的TTL電平。
一般情況下,GPIO能夠實現(xiàn)兩種輸出模式:
開漏輸出
-
推挽輸出。
`其中最常用的是推挽輸出模式。`
原理圖如下:
開漏輸出(左)___________推挽輸出(右)
開漏輸出與推挽輸出在外部鏈接上的區(qū)別
開漏輸出需要外接一個上拉電阻才能得到輸出電壓,否則就不會有電壓輸出,而推挽輸出可以直接得到輸出信號。
下面舉例一些需要使用開漏輸出的情況:
- 在使用IIC(TWI)總線進行信號傳輸?shù)臅r候,由于協(xié)議的設計,必須使用開漏模式來輸出信號,這樣可以避免總線上多個設備傳輸信號產(chǎn)生沖突。
- 在LTTL(3.3VDC)電平電路中,當需要輸出TTL(5VDC)電平的時候,由于5VDC電壓高于LTTL電平所在電路的電源電壓,所以即便是LTTL電平電路中的I\O引腳可以承受TTL電平,但LTTL電平電路也無法提供足夠高的電壓來輸出TTL電平信號。此時可以利用外部上拉電阻將輸出引腳連接到5.0VDC電源上,使這些引腳向以TTL電平工作的芯片傳輸數(shù)據(jù)。
推挽輸出電路
來看一個典型的推挽輸出電路:

推挽輸出電路
上面的三極管是NPN型三極管,下面的三極管是PNP型三極管,注意控制端、輸入端和輸出端。
當Vin電壓為V+時,上面的N型三極管控制端有電流輸入,Q3導通,于是電流從上往下通過,提供電流給負載。

推挽輸出電路-推電流
經(jīng)過上面的N型三極管提供電流給負載(Rload),這就叫「推」。
當Vin電壓為V-時,下面的三極管有電流流出,Q4導通,有電流從上往下流過。

推挽輸出電路-挽電流
經(jīng)過下面的P型三極管提供電流給負載(Rload),這就叫「挽」。
以上便是推挽(push-pull)電路。
一些總結
1) 推挽輸出能夠輸出高或者低,而開漏輸出只能輸出低,或者關閉輸出,因此開漏輸出總是要配一個上拉電阻使用。
2) 開漏輸出的上拉電阻不能太小,太小的話,當開漏輸出的下管導通時,電源到地的電壓在電阻上會造成很大的功耗,因此這個電阻阻值通常在10k以上,這樣開漏輸出在從輸出低電平切換到高電平時,速度很慢。
3) 推挽輸出任意時刻的輸出要么是高,要么是低,所以不能將多個輸出短接;而開漏輸出可以將多個輸出短接,共用一個上拉,此時這些開漏輸出的驅動其實是或非的關系。
4) 推挽輸出輸出高時,其電壓等于推挽電路的電源,通常為一個定值,而開漏輸出的高取決于上拉電阻接的電壓,不取決于前級電壓,所以經(jīng)常用來做電平轉換,用低電壓邏輯驅動高電壓邏輯。
感謝一直關注著禾灮成長進步的朋友們。你們的信任、支持和鼓勵,鞭策著我們一路走到了今天。
感謝所有的合作伙伴,我們相互促進,共同見證了彼此的成長。
感謝所有曾經(jīng)在禾灮彼此倚靠、相互鼓勵、攜手同心、砥礪同行的兄弟姐妹。這里承載了我們的青春與熱血。
禾灮,感謝有你。
未來,我們將一如既往,砥礪前行。
禾灮·小楊
2018.08.07
