open drain和push pull

  GPIO常常可以設置爲輸出和輸入;在配置GPIO管腳的時候,常會見到兩種模式:開漏(open-drain,漏極開路)和推輓(push-pull);

  這裏先熟悉下什麼是mos管:MOS管,即絕緣性場效應管。MOS英文全稱爲Metal-Oxide-Semiconductor即金屬-氧化物-半導體,常用做開關元件;G:gate 柵極,S:source 源極;D:drain 漏極;

  工作原理:NMOS的特性,Vgs(柵極電壓)大於一定的值就會導通,適合用於源極接地時的情況(低端驅動),只要柵極電壓達到一定電壓(如4V或10V, 其他電壓,看手冊)就可以了。

  PMOS的特性,Vgs(柵極電壓)小於一定的值就會導通,適合用於源極接VCC時的情況(高端驅動)。但是,雖然PMOS可以很方便地用作高端驅動,但由於導通電阻大,價格貴,替換種類少等原因,在高端驅動中,通常還是使用NMOS。

這裏寫圖片描述


Push-Pull推輓輸出

  輸出的器件是指輸出腳內部集成有一對互補的MOSFET,當Q1導通、Q2截止時輸出高電平;而當Q1截止導通、Q2導通時輸出低電平。Push-Pull輸出,實際上內部是用了兩個晶體管(transistor),此處分別稱爲Top-Transistor和Bottom-Transistor。通過開關對應的晶體管,輸出對應的電平。Top-Transistor打開(Bottom-Transistor關閉),輸出爲高電平;Bottom-Transistor打開(Top-Transistor關閉),輸出低電平。除非Push-pull需要支持額外的高阻抗狀態,否則不需要額外的上拉電阻。

這裏寫圖片描述

特點:

  1. Push-pull即能夠漏電流(sink current),又可以集電流(source current);

  2. push-pull的高低電平由IC的電源決定,不能簡單的做邏輯操作;


Open-Drain開漏輸出

  開漏電路就是指以MOSFET的漏極爲輸出的電路。指內部輸出和地之間有個N溝道的MOSFET(Q1),這些器件可以用於電平轉換的應用。輸出電壓由Vcc決定。Vcc可以大於輸入高電平電壓VCC1(call UP-Translate)也可以低於輸入高電平電壓VCC(call Down-Translate);

這裏寫圖片描述

特點:

  1. Open-drain只能夠漏電流(sink current),如果想要集電流(source current),則需要加一個上拉電阻。

  2. 可以將多個開漏輸出的Pin腳,連接到一條線上,形成“與邏輯”關係,即“線與”功能,任意一個變低後,開漏線上的邏輯就爲0了。這也是I2C,SMBus等總線判斷總線佔用狀態的原理;

    這裏寫圖片描述

  3. 利用 外部電路的驅動能力,減少IC內部的驅動。當IC內部MOSFET導通時,驅動電流是從外部的VCC流經R pull-up ,MOSFET到GND。IC內部僅需很小的柵極驅動電流。

  4. 可以利用改變上拉電源的電壓,改變傳輸電平,如圖, IC的邏輯電平由電源Vcc1決定,而輸出高電平則由Vcc2決定。這樣我們就可以用低電平邏輯控制輸出高電平邏輯了;

  5. 標準的開漏腳一般只有輸出的能力。添加其它的判斷電路,才能具備雙向輸入、輸出的能力。

  缺點:開漏Pin不連接外部的上拉電阻,則只能輸出低電平;

總結:

  常見的GPIO的模式可以配置爲open-drain或push-pull,具體實現上,常爲通過配置對應的寄存器的某些位來配置爲open-drain或是push-pull。當我們通過CPU去設置那些GPIO的配置寄存器的某位的時候,其GPIO硬件IC內部的實現是,會去打開或關閉對應的top transistor。相應地,如果設置爲了Open-D模式的話,是需要上拉電阻才能實現,也能夠輸出高電平的。因此,如果硬件內部(internal)本身包含了對應的上拉電阻的話,此時會去關閉或打開對應的上拉電阻。如果GPIO硬件IC內部沒有對應的上拉電阻的話,那麼你的硬件電路中,必須自己提供對應的外部(external)的上拉電阻。而push-pull輸出的優勢是速度快,因爲線路是以兩種方式驅動的。而帶了上拉電阻的線路,即使以最快的速度去提升電壓,最快也要一個常量的R×C的時間。其中R是電阻,C是寄生電容(parasitic capacitance),包括了pin腳的電容和板子的電容。但是,push-pull相對的缺點是往往需要消耗更多的電流,即功耗相對大。而open-drain所消耗的電流相對較小,由電阻R所限制,而R不能太小,因爲當輸出爲低電平的時候,需要sink更低的transistor,這意味着更高的功耗。而open-drain的好處之一是,允許你short多個open-drain的電路,共用一個上拉電阻,此種做法稱爲wired-OR連接,此時可以通過拉低任何一個IO的pin腳使得輸出爲低電平。爲了輸出高電平,則所有的都輸出高電平。此種邏輯,就是“線與”的功能,可以不需要額外的門電路來實現此部分邏輯。

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