GPIO三种输出状态:推挽输出 / 开漏输出 / 高阻态
一、GPIO基本的输出方式:
GPIO有三种状态:高电平,低电平,浮空/高阻态
设计时发现芯片的管脚描述中:有的支持推挽输出,有的支持开漏输出。就是GPIO的三种状态的组合
二、推挽输出(push-pull):
描述GPIO输出高低电平时,电流的一个动作。要么推出去,要么挽回来。
(1)推出去:上端的MOS管打开,下端的MOS管关闭,GPIO输出高电平,电流走向如图
(2)挽回来:上端的MOS管关闭,下端的MOS管打开,GPIO输出低电平,给外部的MOS管栅极放电
三、开漏输出(OD,Open Drain):
选择下面这两种状态组合时。发现Q1始终是关闭的,故视为端的MOS管Q1不存在,那么下端的Q2的漏极处于开路模式,所以叫开漏模式
(1)开漏模式可改变高电平的电压:
如下图,如果使用GPIO去做外部芯片的使能脚(GPIO的上拉电平是5V),假设外部芯片的使能脚的电压只能承受3.3V以内。使用推挽模式进行控制,那么Q1打开,Q2关闭,外部使能脚要承受5V电压,就不可行
① 如果使用开漏模式去输出,外部接个3.3V的上拉,就可以实现
1) 当Q2打开时,EN被拉到低电平
2) 当Q2关闭时,Q2的漏极是浮空的状态,即高阻态(无限大的电阻),则EN被拉到3.3V
(2)开漏模式可支持几个GPIO同时控制一个输入:
① 使用推挽输出,会烧毁
② 使用开漏输出
四、开集模式(OC):
OC门是针对三极管来说,OD门是针对MOS管来说。现在MOS管用普遍,而且性能要比晶体管要好,所以很多开漏输出电路,和上面讲的推挽输出电路都用MOS管实现。由于使用MOS管的情况较多,很多时候就用"开漏输出"这个词代替了开漏输出和开集输出。