硬件工程師的筆試題中經常會考 OC 門和 OD 門,有的放在面試中問,多個 OC 或者多個 OD 門能組成線與結構,線與結構考的更頻繁,還有一個推挽輸出,有一些單片機的 GPIO 用的就是這種結構,如最常見的 STM32。
1. OC 門
OC 意為集電極開路,結構如下:
OC 門電路
?
A=0,①截止,②導通,相當于開關閉合,輸出 0V(實際輸出不是 0V,因為三極管存在飽和壓降)。A=1,①導通,②截止,相當于開關斷開,C 點呈現高阻態(tài),通常情況下 C 點要有上拉電阻,以輸出高電平。I2C,SMB 類型總線就是 OC 門或 OD 門,也是因為這種 IO 的高阻態(tài)輸出和線與邏輯才能讓他們能夠有一個 master,多個 slave,也不會出現短路情況。
使用注意事項:
上拉電阻太小,會增大飽和壓降,導致輸出的低電平很高。
上拉電阻太大,會延緩信號的上升沿。
OC 門可以連在一起,做“線與邏輯”。
上拉電壓可以根據下一級輸入端的電平標準來選擇,但也要注意芯片輸出端口的電壓 maximal rating
2. OD 門
把 OC 門的三極管換成場效應管,就是 OD 門,OD 意為漏極開路。
OD 門電路
A=0,①關閉,②導通,相當于開關閉合,輸出 0V(因為 MOS 管的導通阻抗很低,所以輸出幾乎等于 0)。A=1,①導通,②關閉,相當于開關斷開,C 點呈現高阻態(tài),通常情況下 C 點要有上拉電阻,以輸出高電平。I2C,SMB 類型總線就是 OC 門或 OD 門,也是因為這種 IO 的高阻態(tài)輸出,和“線與邏輯”才能讓他們能夠有一個 master,多個 slave。
使用注意事項:
上拉電阻太小,會導致 MOS 管②的導通電流過大,燒毀 MOS 管。
上拉電阻太大,會延緩信號的上升沿。
OD 門可以連在一起,做“線與邏輯”。
上拉電壓可以根據下一級輸入端的電平標準來選擇,但也要注意芯片輸出端口的電壓 maximal rating
3. 推挽輸出
推挽輸出又叫 push-pull,很多芯片的部分 GPIO 會支持這個功能。
用 NPN+PNP 制作的推挽輸出結構如下:
三極管推挽輸出
用 PMOS+NMOS 制作的推挽輸出結構如下:
input 輸出高電平時,PMOS 截止,NMOS 導通,output=0V
input 輸出低電平時,PMOS 導通,NMOS 截止,output=VDD
MOS 管推挽輸出
推挽輸出結構的低電平輸出能力與 OC 門或 OD 門是一樣的,但是高電平輸出能力比 OC 門或 OD 門強很多,因為是直接上拉到了電源!因此推挽輸出可以輸出很高的電流。需要注意的是,配置為推挽輸出的兩個管腳,如果連載一起,一個配置為輸出高,另一個配置為輸出低,會產生很大的電流,導致 IO 燒毀。