管脚复用功能之 上拉、下拉、模拟、浮空输入;推挽、开漏、复用输出
0.三极管基础
要理解推挽输出,首先要理解好三极管(晶体管)的原理。下面这种三极管有三个端口,分别是基极(Base)、集电极(Collector)和发射极(Emitter),下图是NPN型晶体管。
NPN型晶体管-1,这种三极管是电流控制型元器件,注意关键词电流控制。意思就是说,只要基极B有输入(或输出)电流就可以对这个晶体管进行控制了。当控制端有电流输入的时候,就会有电流从输入端进入并从输出端流出。
PNP管正好相反,当有电流从控制端流出时,就会有电流从输入端流到输出端。
1.上拉输入:上拉就是把电位拉高,比如拉到VCC。上拉就是将不确定的信号通过一个电阻钳位在高电平!电阻同时起限流作用!强弱只是上拉电阻的阻值不同,没有什么严格区分。
2.下拉输入:就是把电压拉低,拉到GND。与上拉原理相似。
3.浮空输入:浮空(floating)就是逻辑器件的输入引脚即既不接高电平,也不接低电平。由于逻辑器件的内部结构,当它输入引脚空闲时,相当于该引脚接了高电平。一般实际运用时,引脚不建议悬空,易受干扰。通俗讲就是让管脚什么都不
接,浮空着。由于浮空输入一般多用于外部按键输入,结合图上的输入部分电路,我理解为浮空输入状态下,IO的电平状态是不确定的,完全由外部输入决定,如果在该引脚悬空的情况下,读取该端口的电平是不确定的。
4.模拟输入:模拟输入是指传统方式的输入。数字输入是输入PCM数字信号,即0,1的二进制信号,通过模数转换,转换成模拟信号,经前级放大进入功率放大器,功率放大器还是模拟的。
5.推挽输出:可以输出高、低电平,连接数字器件;
推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截至。高低电平由IC的电源决定。推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工
作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小、效率高。输出既可以向负载灌电流,也可以从负载抽取电流。推拉式输出级既提高电路的负载能力,又提高开关速度。
来看一个典型的推挽输出电路:
推挽输出电路
上面的三极管是N型三极管,下面的三极管是P型三极管,请留意控制端、输入端和输出端。当Vin电压为V+时,上面的N型三极管控制端有电流输入,Q3导通,于是电流从上往下通过,提供电流给负载。
推挽输出电路-推电流,经过上面的N型三极管提供电流给负载(Rload),这就叫「推」。
当Vin电压为V-时,下面的三极管有电流流出,Q4导通,有电流从上往下流过。
推挽输出电路-挽电流
经过下面的P型三极管提供电流给负载(Rload),这就叫「挽」。以上,这就是推挽(push-pull)电路。
6.开漏输出:输出端相当于三极管的集电极。要得到高电平状态需要上拉电阻才行,适合于做电流型的驱动,其吸收电流的能力相对强(一般20mA以内)。
6.1 开集电路
如图,开集的意思,就是集电极C一端什么都不接,直接作为输出端口。如果要用这种电路带一个负载,比如一个LED,必须接一个上拉电阻,就像下图这样。
开集电路-带负载,当Vin没有电流,Q5断开时,LED亮;当Vin流入电流,Q5导通时,LED灭。
6.2 开漏电路,就是把上图中的三极管换成场效应管(MOSFET)。这样集电极就变成了漏极,OC就变成了OD,原理分析是一样的。N型场效应管各个端口的名称:(栅极:Grid / 漏极:Drain / 源极:Source)
6.3 场效应管
场效应管是电压控制型元器件,只要对栅极施加电压,DS就会导通。结型场效应管有一个特性就是它的输入阻抗非常大,这意味着:没有电流从控制电路流出,也没有电流进入控制电路。没有电流流入或流出,就不会烧坏控制电路。而双
极型晶体管不同,是电流控制性元器件,如果使用开集电路,可能会烧坏控制电路。这大概就是我们总是听到开漏电路而很少听到开集电路的原因吧?因为开集电路被淘汰了。
可以利用改变上拉电源的电压,改变传输电平。如图2-2, IC的逻辑电平由电源Vcc1决定,而输出高电平则由Vcc2(上拉电阻的电源电压)决定。这样我们就可以用低电平逻辑控制输出高电平逻辑了(这样你就可以进行任意电平的转换)。(例
如加上上拉电阻就可以提供TTL/CMOS电平输出等。)
开漏电路就是指以MOSFET的漏极为输出的电路。一般的用法是会在漏极外部的电路添加上拉电阻。完整的开漏电路应该由开漏器件和开漏上拉电阻组成。如下图2-1所示:
7、复用输入:可以理解为GPIO口被用作第二功能时的配置情况(即并非作为通用IO口使用)。端口必须配置成复用功能输出模式(推挽或开漏)
推挽输出和开漏输出的区别
推挽输出,可以输出高电平,连接数字器件:
输出0时,N-MOS导通,P-MOS高阻,输出0。
输出1时,N-MOS高阻,P-MOS高阻,输出1;(不需要外部上拉电阻)
开漏输出:
输出端相当于三极管的集电极,要得到高电平状态需要上拉电阻才行,适合做电流型驱动;
输出0时,N-MOS导通,P-MOS不被激活,输出0;
输出1时,N-MOS高阻,P-MOS不被激活,输出1(需要外部上拉电阻);可以读IO输入电平变化,此模式可以把端口作为双向IO使用;
转自:https://www.zhihu.com/question/28512432/answer/41217074