硬件工程師的筆試題中經(jīng)常會考 OC 門和 OD 門,有的放在面試中問,多個(gè) OC 或者多個(gè) OD 門能組成線與結(jié)構(gòu),線與結(jié)構(gòu)考的更頻繁,還有一個(gè)推挽輸出,有一些單片機(jī)的 GPIO 用的就是這種結(jié)構(gòu),如最常見的 STM32。
1. OC 門
OC 意為集電極開路,結(jié)構(gòu)如下:
OC 門電路
?
A=0,①截止,②導(dǎo)通,相當(dāng)于開關(guān)閉合,輸出 0V(實(shí)際輸出不是 0V,因?yàn)?a class="article-link" target="_blank" href="/baike/1454817.html">三極管存在飽和壓降)。A=1,①導(dǎo)通,②截止,相當(dāng)于開關(guān)斷開,C 點(diǎn)呈現(xiàn)高阻態(tài),通常情況下 C 點(diǎn)要有上拉電阻,以輸出高電平。I2C,SMB 類型總線就是 OC 門或 OD 門,也是因?yàn)檫@種 IO 的高阻態(tài)輸出和線與邏輯才能讓他們能夠有一個(gè) master,多個(gè) slave,也不會出現(xiàn)短路情況。
使用注意事項(xiàng):
上拉電阻太小,會增大飽和壓降,導(dǎo)致輸出的低電平很高。
上拉電阻太大,會延緩信號的上升沿。
OC 門可以連在一起,做“線與邏輯”。
上拉電壓可以根據(jù)下一級輸入端的電平標(biāo)準(zhǔn)來選擇,但也要注意芯片輸出端口的電壓 maximal rating
2. OD 門
把 OC 門的三極管換成場效應(yīng)管,就是 OD 門,OD 意為漏極開路。
OD 門電路
A=0,①關(guān)閉,②導(dǎo)通,相當(dāng)于開關(guān)閉合,輸出 0V(因?yàn)?MOS 管的導(dǎo)通阻抗很低,所以輸出幾乎等于 0)。A=1,①導(dǎo)通,②關(guān)閉,相當(dāng)于開關(guān)斷開,C 點(diǎn)呈現(xiàn)高阻態(tài),通常情況下 C 點(diǎn)要有上拉電阻,以輸出高電平。I2C,SMB 類型總線就是 OC 門或 OD 門,也是因?yàn)檫@種 IO 的高阻態(tài)輸出,和“線與邏輯”才能讓他們能夠有一個(gè) master,多個(gè) slave。
使用注意事項(xiàng):
上拉電阻太小,會導(dǎo)致 MOS 管②的導(dǎo)通電流過大,燒毀 MOS 管。
上拉電阻太大,會延緩信號的上升沿。
OD 門可以連在一起,做“線與邏輯”。
上拉電壓可以根據(jù)下一級輸入端的電平標(biāo)準(zhǔn)來選擇,但也要注意芯片輸出端口的電壓 maximal rating
3. 推挽輸出
推挽輸出又叫 push-pull,很多芯片的部分 GPIO 會支持這個(gè)功能。
用 NPN+PNP 制作的推挽輸出結(jié)構(gòu)如下:
三極管推挽輸出
用 PMOS+NMOS 制作的推挽輸出結(jié)構(gòu)如下:
input 輸出高電平時(shí),PMOS 截止,NMOS 導(dǎo)通,output=0V
input 輸出低電平時(shí),PMOS 導(dǎo)通,NMOS 截止,output=VDD
MOS 管推挽輸出
推挽輸出結(jié)構(gòu)的低電平輸出能力與 OC 門或 OD 門是一樣的,但是高電平輸出能力比 OC 門或 OD 門強(qiáng)很多,因?yàn)槭侵苯由侠搅?a class="article-link" target="_blank" href="/tag/%E7%94%B5%E6%BA%90/">電源!因此推挽輸出可以輸出很高的電流。需要注意的是,配置為推挽輸出的兩個(gè)管腳,如果連載一起,一個(gè)配置為輸出高,另一個(gè)配置為輸出低,會產(chǎn)生很大的電流,導(dǎo)致 IO 燒毀。