Open-Drain與Push-Pull

GPIO的功能,簡單說就是能夠根據本身的須要去配置爲輸入或輸出。(General Purpose Input Output,簡稱爲GPIO或總線擴展器,利用工業標準I2C、SMBus?或SPI?接口簡化了I/O口的擴展。當微控制器或芯片組沒有足夠的I/O端口,或當系統須要採用遠端串行通訊或控制時,GPIO產品可以提供額外的控制和監視功能。)可是在配置GPIO管腳的時候,常會見到兩種模式:開漏(open-drain,漏極開路)和推輓(push-pull)。對此兩種模式,有何區別和聯繫,下面整理了一些資料,來詳細解釋一下:spa

【Push-Pull推輓輸出】設計

原理:接口

輸出的器件是指輸出腳內部集成有一對互補的MOSFET,當Q1導通、Q2截止時輸出高電平;而當Q1截止導通、Q2導通時輸出低電平。Push-Pull輸出,實際上內部是用了兩個晶體管(transistor),此處分別稱爲Top-Transistor和Bottom-Transistor。經過開關對應的晶體管,輸出對應的電平。Top-Transistor打開(Bottom-Transistor關閉),輸出爲高電平;Bottom-Transistor打開(Top-Transistor關閉),輸出低電平。Push-pull即可以漏電流(sink current),又能夠集電流(source current)。其也許有,也許沒有另一個狀態:高阻抗(high impedance)狀態。除非Push-pull須要支持額外的高阻抗狀態,不然不須要額外的上拉電阻。產品

特色:在CMOS電路里面應該叫CMOS輸出更合適,由於在CMOS裏面的push-pull輸出能力不可能作得雙極那麼大。輸出能力看IC內部輸出極N管P管的面積。push-pull是如今CMOS電路里面用得最多的輸出級設計方式。原理

優勢:(1)能夠吸電流,也能夠貫電流;(2)和開漏輸出相比,push-pull的高低電平由IC的電源低定,不能簡單的作邏輯操做等。擴展

缺點:一條總線上只能有一個push-pull輸出的器件;配置

【Open-Drain開漏輸出】im

原理:call

開漏電路就是指以MOSFET的漏極爲輸出的電路。指內部輸出和地之間有個N溝道的MOSFET(Q1),這些器件能夠用於電平轉換的應用。輸出電壓由Vcc決定。Vcc能夠大於輸入高電平電壓VCC (call UP-Translate)也能夠低於輸入高電平電壓VCC(call Down-Translate)
Open-Drain輸出,則是比push-pull少了個top transistor,只有那個bottom transistor。(就像push-pull中的那樣)當bottom transistor關閉,則輸出爲高電平。此處無法輸出高電平,想要輸出高電平,必須外部再接一個上拉電阻(pull-up resistor)。Open-drain只可以漏電流(sink current),若是想要集電流(source current),則須要加一個上拉電阻。通信

優勢:
(1)對於各類電壓節點間的電平轉換很是有用,能夠用於各類電壓節點的Up-translate和Down-translate轉換
(2)能夠將多個開漏輸出的Pin腳,鏈接到一條線上,造成「與邏輯」關係,即「線與」功能,任意一個變低後,開漏線上的邏輯就爲0了。這也是I2C,SMBus等總線判斷總線佔用狀態的原理。
(3)利用 外部電路的驅動能力,減小IC內部的驅動。當IC內部MOSFET導通時,驅動電流是從外部的VCC流經R pull-up ,MOSFET到GND。IC內部僅需很小的柵極驅動電流。
(4)能夠利用改變上拉電源的電壓,改變傳輸電平,如圖, IC的邏輯電平由電源Vcc1決定,而輸出高電平則由Vcc2決定。這樣咱們就能夠用低電平邏輯控制輸出高電平邏輯了。

OD輸出電平的原理

缺點:開漏Pin不鏈接外部的上拉電阻,則只能輸出低電平。當輸出電平爲低時,N溝道三極管是導通的,這樣在Vcc'和GND之間有一個持續的電流流過上拉電阻R和三極管Q1。這會影響整個系統的功耗。採用較大值的上拉電阻能夠減少電流。可是,可是大的阻值會使輸出信號的上升時間變慢。即上拉電阻R pull-up的阻值 決定了邏輯電平轉換的沿的速度。阻值越大,速度越低功耗越小。反之亦然。

相關文章
相關標籤/搜索