參考:http://www.elecfans.com/baike/bandaoti/jichuzhishi/20100304178298.html
https://wenku.baidu.com/view/230274e09b89680203d825a7.html?sxts=1567495956287
https://wenku.baidu.com/view/e1d4ca8308a1284ac8504342.html
https://wenku.baidu.com/view/dd2b2e07a6c30c2259019e3a.html
https://wenku.baidu.com/view/bf143e1a1a37f111f0855b1e.html



OC門主要有以下三個用途:
1、實現與或非邏輯
2、電平轉換
3、用做驅動器
OD門特點
上拉電阻很大,提供的驅動電流很小,叫弱上拉;反之叫強上拉。源極開路提供了靈活的輸出方式,但是也有其弱點,就是帶來上升沿的延時。因為上升沿是通過外接上拉無源電阻對負載充電,所以當電阻選擇小時延時就小,但功耗大;反之延時大功耗小。所以如果對延時有要求,則建議用下降沿輸出。
對於漏極開路(OD)輸出,跟集電極開路輸出是十分類似的。將上面的三極管換成場效應管即可。這樣集電極就變成了漏極,OC就變成了OD,原理分析是一樣的。
開漏輸出:輸出端相當於三極管的集電極. 要得到高電平狀態需要上拉電阻才行. 適合於做電流型的驅動,其吸收電流的能力相對強(一般20ma以內).
開漏形式的電路有以下幾個特點:
1. 利用外部電路的驅動能力,減少IC內部的驅動。當IC內部MOSFET導通時,驅動電流是從外部的VCC流經R pull-up ,MOSFET到GND。IC內部僅需很下的柵極驅動電流。
2. 一般來說,開漏是用來連接不同電平的器件,匹配電平用的,因為開漏引腳不連接外部的上拉電阻時,只能輸出低電平,如果需要同時具備輸出高電平的功能,則需要接上拉電阻,很好的一個優點是通過改變上拉電源的電壓,便可以改變傳輸電平。比如加上上拉電阻就可以提供TTL/CMOS電平輸出等。(上拉電阻的阻值決定了邏輯電平轉換的沿的速度 。阻值越大,速度越低功耗越小,所以負載電阻的選擇要兼顧功耗和速度。)
3. OPEN-DRAIN提供了靈活的輸出方式,但是也有其弱點,就是帶來上升沿的延時。因為上升沿是通過外接上拉無源電阻對負載充電,所以當電阻選擇小時延時就小,但功耗大;反之延時大功耗小。所以如果對延時有要求,則建議用下降沿輸出。
4. 可以將多個開漏輸出的Pin,連接到一條線上。通過一只上拉電阻,在不增加任何器件的情況下,形成“與邏輯”關系。這也是I2C,SMBus等總線判斷總線占用狀態的原理。補充:什么是“線與”?:
在一個結點(線)上,連接一個上拉電阻到電源VCC 或 VDD 和 n 個 NPN 或 NMOS 晶體管的集電極 C 或漏極 D, 這些晶體管的發射極 E 或源極 S 都接到地線上,只要有一個晶體管飽和,這個結點(線)就被拉到地線電平上.因為這些晶體管的基極注入電流(NPN)或柵極加上高電平(NMOS),晶體管就會飽和,所以這些基極或柵極對這個結點(線)的關系是或非NOR邏輯.如果這個結點后面加一個反相器,就是或OR 邏輯.
其實可以簡單的理解為:在所有引腳連在一起時,外接一上拉電阻,如果有一個引腳輸出為邏輯0,相當於接地,與之並聯的回路“相當於被一根導線短路”,所以外電路邏輯電平便為0,只有都為高電平時,與的結果才為邏輯1。
關於推挽輸出和開漏輸出,最后用一幅最簡單的圖形來概括:
該圖中左邊的便是推挽輸出模式,其中比較器輸出高電平時下面的PNP三極管截止,而上面NPN三極管導通,輸出電平VS+;當比較器輸出低電平時則恰恰相反,PNP三極管導通,輸出和地相連,為低電平。右邊的則可以理解為開漏輸出形式,需要接上拉。
組成開漏形式的電路有以下幾個特點:
1. 利用外部電路的驅動能力,減少IC內部的驅動(或驅動比芯片電源電壓高的負載)。當IC內部MOSFET導通時,驅動電流是從外部的VCC流經R pull-up ,MOSFET到GND。IC內部僅需很下的柵極驅動電流。如圖1。
2. 可以將多個開漏輸出的Pin,連接到一條線上。形成 “與邏輯” 關系。如圖1,當PIN_A、PIN_B、PIN_C任意一個變低后,開漏線上的邏輯就為0了。這也是I2C,SMBus等總線判斷總線占用狀態的原理。如果作為輸出必須接上拉電阻。接容性負載時,下降延是芯片內的晶體管,是有源驅動,速度較快;上升延是無源的外接電阻,速度慢。如果要求速度高電阻選擇要小,功耗會大。所以負載電阻的選擇要兼顧功耗和速度。
3. 可以利用改變上拉電源的電壓,改變傳輸電平。如圖2, IC的邏輯電平由電源Vcc1決定,而輸出高電平則由Vcc2(上拉電阻的電源電壓)決定。這樣我們就可以用低電平邏輯控制輸出高電平邏輯了(這樣你就可以進行任意電平的轉換)。(例如加上上拉電阻就可以提供TTL/CMOS電平輸出等。)
4. 開漏Pin不連接外部的上拉電阻,則只能輸出低電平(因此對於經典的51單片機的P0口而言,要想做輸入輸出功能必須加外部上拉電阻,否則無法輸出高電平邏輯)。一般來說,開漏是用來連接不同電平的器件,匹配電平用的。
5. 標准的開漏腳一般只有輸出的能力。添加其它的判斷電路,才能具備雙向輸入、輸出的能力。
6.正常的CMOS輸出級是上、下兩個管子,把上面的管子去掉就是OPEN-DRAIN了。這種輸出的主要目的有兩個:電平轉換、線與。
7.線與功能主要用於有多個電路對同一信號進行拉低操作的場合,如果本電路不想拉低,就輸出高電平,因為OPEN-DRAIN上面的管子被拿掉,高電平是靠外接的上拉電阻實現的。(而正常的CMOS輸出級,如果出現一個輸出為高另外一個為低時,等於電源短路。)
8.OPEN-DRAIN提供了靈活的輸出方式,但是也有其弱點,就是帶來上升沿的延時。因為上升沿是通過外接上拉無源電阻對負載充電,所以當電阻選擇小時延時就小,但功耗大;反之延時大功耗小。所以如果對延時有要求,則建議用下降沿輸出。
應用中需注意: 1. 開漏和開集的原理類似,在許多應用中我們利用開集電路代替開漏電路。例如,某輸入Pin要求由開漏電路驅動。則我們常見的驅動方式是利用一個三極管組成開集電路來驅動它,即方便又節省成本。如圖4。
2. 上拉電阻R pull-up的阻值決定了邏輯電平轉換的沿的速度。阻值越大,速度越低功耗越小。反之亦然。
當然open drain也不是沒有代價,這就是輸出的驅動能力很差。輸出的驅動能力很差的說法不准確,驅動能力取決於IC中的末級晶體管功率。OD只是帶來上升沿的延時,因為上升沿是通過外接上拉無源電阻對負載充電的,當電阻選擇小時延時就小、但功耗大,反之延時大功耗小。OPEN DRAIN提供了靈活的輸出方式,但也是有代價的,如果對延時有要求,建議用下降沿輸出。
電阻小延時小的前提條件是電阻選擇的原則應在末級晶體管功耗允許范圍內,有經驗的設計者在使用邏輯芯片時,不會選擇1歐姆的電阻作為上拉電阻。在脈沖的上升沿電源通過上拉無源電阻對負載充電,顯然電阻越小上升時間越短,在脈沖的下降沿,除了負載通過有源晶體管放電外,電源也通過上拉電阻和導通的晶體管對地 形成通路,帶來的問題是芯片的功耗和耗電問題。電阻影響上升沿,不影響下降沿。如果使用中不關心上升沿,上拉電阻就可選擇盡可能的大點,以減少對地通路的 電流。如果對上升沿時間要求較高,電阻大小的選擇應以芯片功耗為參考。