MCU通用輸入輸出端口(GPIO)輸出模式


對於常規MCU,通用輸入輸出(GPIO)是其最基本、最常用的功能,用於實現最基本的數字量輸入和輸出。

信號一般爲:

  • 以3.3VDC爲高電平的LTTL電平
  • 以5.0VDC爲高電平的TTL電平。

一般情況下,GPIO能夠實現兩種輸出模式:

  • 開漏輸出
  • 推輓輸出。

其中最常用的是推輓輸出模式。

原理圖如下:

開漏輸出(左)___________推輓輸出(右)

開漏輸出與推輓輸出在外部鏈接上的區別

開漏輸出需要外接一個上拉電阻才能得到輸出電壓,否則就不會有電壓輸出,而推輓輸出可以直接得到輸出信號。

下面舉例一些需要使用開漏輸出的情況:

  • 在使用IIC(TWI)總線進行信號傳輸的時候,由於協議的設計,必須使用開漏模式來輸出信號,這樣可以避免總線上多個設備傳輸信號產生衝突。
  • 在LTTL(3.3VDC)電平電路中,當需要輸出TTL(5VDC)電平的時候,由於5VDC電壓高於LTTL電平所在電路的電源電壓,所以即便是LTTL電平電路中的I\O引腳可以承受TTL電平,但LTTL電平電路也無法提供足夠高的電壓來輸出TTL電平信號。此時可以利用外部上拉電阻將輸出引腳連接到5.0VDC電源上,使這些引腳向以TTL電平工作的芯片傳輸數據。
推輓輸出電路

來看一個典型的推輓輸出電路:
推輓輸出電路

上面的三極管是NPN型三極管,下面的三極管是PNP型三極管,注意控制端、輸入端和輸出端。

當Vin電壓爲V+時,上面的N型三極管控制端有電流輸入,Q3導通,於是電流從上往下通過,提供電流給負載。

推輓輸出電路-推電流

經過上面的N型三極管提供電流給負載(Rload),這就叫「推」。

當Vin電壓爲V-時,下面的三極管有電流流出,Q4導通,有電流從上往下流過。
推輓輸出電路-挽電流

經過下面的P型三極管提供電流給負載(Rload),這就叫「挽」。

以上便是推輓(push-pull)電路。

一些總結
  • 1) 推輓輸出能夠輸出高或者低,而開漏輸出只能輸出低,或者關閉輸出,因此開漏輸出總是要配一個上拉電阻使用。

  • 2) 開漏輸出的上拉電阻不能太小,太小的話,當開漏輸出的下管導通時,電源到地的電壓在電阻上會造成很大的功耗,因此這個電阻阻值通常在10k以上,這樣開漏輸出在從輸出低電平切換到高電平時,速度很慢。

  • 3) 推輓輸出任意時刻的輸出要麼是高,要麼是低,所以不能將多個輸出短接;而開漏輸出可以將多個輸出短接,共用一個上拉,此時這些開漏輸出的驅動其實是或非的關係。

  • 4) 推輓輸出輸出高時,其電壓等於推輓電路的電源,通常爲一個定值,而開漏輸出的高取決於上拉電阻接的電壓,不取決於前級電壓,所以經常用來做電平轉換,用低電壓邏輯驅動高電壓邏輯。


    感謝一直關注着禾灮成長進步的朋友們。你們的信任、支持和鼓勵,鞭策着我們一路走到了今天。

    感謝所有的合作伙伴,我們相互促進,共同見證了彼此的成長。

    感謝所有曾經在禾灮彼此倚靠、相互鼓勵、攜手同心、砥礪同行的兄弟姐妹。這裏承載了我們的青春與熱血。

                禾灮,感謝有你。

    未來,我們將一如既往,砥礪前行。

                                        禾灮·小楊
                                       2018.08.07

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章