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
推挽输出结构的低电平输出能力与OC门或OD门是一样的,但是高电平输出能力比OC门或OD门强很多,因为是直接上拉到了电源!因此推挽输出可以输出很高的电流。
需要注意的是,配置为推挽输出的两个管脚,如果连载一起,一个配置为输出高,另一个配置为输出低,会产生很大的电流,导致IO烧毁。