GPIO电路图以及上拉电阻的作用
GPIO电路图以及上拉电阻的作用
GPIO(General Purpose Input/Output)是微控制器中常见的输入输出接口,其电路设计和上拉电阻的使用对于理解嵌入式系统至关重要。本文将从普通IO口、强推挽输出和开漏级OC门三个方面,深入解析上拉电阻的作用。
一、普通IO口
当基级(②位置)为低电平时,NPN管导通,此时单片机IO口输出的是低电平;当基级(②位置)为高电平时,NPN管截止,此时单片机IO口输出的是高电平。
这里注意,④位置上是一个上拉电阻,其作用在于增强驱动能力。假设要通过单片机IO口输出电流来驱动小灯发亮,①的位置电阻一般有20k左右,发出的电流250uA,基本上可以忽略不计。加上一个上拉电阻后,总电流 = ①位置电流 + ④位置电流(①与④构成并联电路)。
为什么不设置让①的位置电阻R小一点,这样电流大一点,就不需要上拉电阻了呢?因为单片机是控制单元,设计时最好把强电流设计到外围电路里,如果设计到单片机内部,会烧坏板子。
这里体现出上拉电阻的其中一个作用——加大电流,加强了驱动的能力。
二、强推挽输出
强推挽输出意味着能输入输出大电流。前面已经提到,单片机内部最好避免设计大的电流,因此这个功能的IO要少用。
内部总线输入高电平,上面的NPN导通,则IO口输出大电流(因为上面的三极管VCC电源下面没有接上拉电阻,I = VCC/电阻+NPN内部电阻),所以IO出口的地方一般接一个电阻限流。
内部总线输如低电平,下面的NPN导通,则此时如果IO口外面接一个VCC(不带上拉电阻),就会有大电流灌输进来。
这里体现了上拉电阻的另一个作用——限流。
三、开漏级OC门
开漏状态是指当内线是高电平,则NPN的基级是低电平,此时NPN不导通,那么IO口此时相当于是悬浮在空气中的,所以无法确定它的状态(不知道是低电平还是高电平),这个状态就是开漏状态。
所以此时要向外围电路输出一个高电平是不可能的,如果想输出一个高电平,则必须在NPN的集电极上面来一个上拉电阻。这时又体现出上拉的一个作用:就是将不确定的信号通过一个电阻嵌位(保持)在一个高电平上,下拉同理。
这里对于OC门还有一个应用,可以控制高电位的电路,如果外围电路需要大的电压,则可以用OC门加上拉电阻来完成这个功能,如下图所示,当内部总线为高电平,则NPN截止,最右边加一个12v的上拉电阻,使得电位钳在12v供外围电路使用。