硬件工程师的笔试题中经常会考 OC 门和 OD 门,有的放在面试中问,多个 OC 或者多个 OD 门能组成线与结构,线与结构考的更频繁,还有一个推挽输出,有一些单片机的 GPIO 用的就是这种结构,如最常见的 STM32。
1. OC 门
OC 意为集电极开路,结构如下:
OC 门电路
A=0,①截止,②导通,相当于开关闭合,输出 0V(实际输出不是 0V,因为三极管存在饱和压降)。A=1,①导通,②截止,相当于开关断开,C 点呈现高阻态,通常情况下 C 点要有上拉电阻,以输出高电平。I2C,SMB 类型总线就是 OC 门或 OD 门,也是因为这种 IO 的高阻态输出和线与逻辑才能让他们能够有一个 master,多个 slave,也不会出现短路情况。
使用注意事项:
上拉电阻太小,会增大饱和压降,导致输出的低电平很高。
上拉电阻太大,会延缓信号的上升沿。
OC 门可以连在一起,做“线与逻辑”。
上拉电压可以根据下一级输入端的电平标准来选择,但也要注意芯片输出端口的电压 maximal rating
2. OD 门
把 OC 门的三极管换成场效应管,就是 OD 门,OD 意为漏极开路。
OD 门电路
A=0,①关闭,②导通,相当于开关闭合,输出 0V(因为 MOS 管的导通阻抗很低,所以输出几乎等于 0)。A=1,①导通,②关闭,相当于开关断开,C 点呈现高阻态,通常情况下 C 点要有上拉电阻,以输出高电平。I2C,SMB 类型总线就是 OC 门或 OD 门,也是因为这种 IO 的高阻态输出,和“线与逻辑”才能让他们能够有一个 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 烧毁。