设计与开发

单片机io驱动能力 为何带不动大负载?探索单片机IO口驱动能力受限的原因!

小编 2024-11-24 设计与开发 23 0

为何带不动大负载?探索单片机IO口驱动能力受限的原因!

最近,我在用单片机制作一个简易的门禁开锁系统,用到的器件和电子模块有STM32单片机、矩阵键盘、光耦隔离继电器(12V单路)、电磁锁、RFID-RD522射频模块和指纹模块。在测试继电器的时候,发现12v的继电器触发端口的高低电平和数字电子的高低电平不是统一区分的。该继电器的高电平需要4.5v才能触发,但我使用的SM32单片机的IO口只能输出3.3v的高电平。为了测试该模块的好坏,就用了一块51单片机,这就引出了今天的话题。

在测试过程中,发现51单片机原本应该输出高电平的管脚在接了继电器模块后,电压直接被拉低到了3v。看到这个现象,就猜测造成此现象的原因应该是IO口驱动能力不足造成的。取下继电器模块,用万用表测了一下继电器的阻抗,400欧姆左右,相对来说,明显就是一个大负载。

这里介绍2个概念:拉电流和灌电流。

拉电流:IO口输出端向外界提供电流。相当于外界将电流从IO口拉向自己。

灌电流:IO口输出端从外界吸收电流。相当于外界将电流注入IO口。

单片机的数据手册上标明了每个端口的驱动能力,51单片机的端口最大的灌电流才6mA。6mA什么概念?6mA的驱动电流要使负载达到5v电压需要多大的负载?根据欧姆定律,至少需要接近1K的电阻。而上述继电器的阻值才400欧姆左右,当然输出达不到5v。

IO口驱动能力理解

以51单片机的P1口为例,我们看一下它的内部结构

当晶体管导通时,P1端口输出0(低电平)。当晶体管截止时,P1口输出1(高电平)。当P1端口接负载RL时,晶体管截止时,就相当于内部上拉电阻和负载RL串联。此时RL两端真的能够输出高电平吗?

答案是不一定的!根据电阻分压。Vout = VCC/(1+R/RL)只有分母接近1的时候,输出才是高电平VCC。能够输出高电平的条件是:RL >> R 。而R是IO口内部固定的,是某一个值。我们可以得出串联电路中电流(驱动电流)的表达式,从表达式中,我们可以看出,负载小(电阻R大)的时候,需要的驱动电流就小,负载大(电阻R小)的时候,需要的驱动电流就大。

提高单片机的IO驱动能力

1、用低电平+非门的组合驱动。单片机输出低电平的时候的驱动能力要高于输出高电平时候的驱动能力,单片机输出0,经过非门就变成了1。

2、外部加三极管驱动电路。但需要注意的是,驱动一些电感性元器件的时候,一定要在电感性元器件两端加一个二极管来泄流(泄流二极管)。三极管导通的时候,电感性器件上肯定会有电流存在。当三极管截止时,由于电感电流不能突变,所以如果不加二极管续流,电感上的电流会直接加在三极管上,很有可能损坏三极管。

单片机IO口驱动,为什么一般都选用三极管而不是MOS管?

文章转载自公众号:硬件笔记本

这里其实有两个问题:

1.单片机为什么不直接驱动负载?

2.单片机为什么一般选用三极管而不是MOS管?

图1

答:

1.单片机的IO口,有一定的带负载能力。但电流很小,驱动能力有限,一般在10-20mA以内。所以一般不采用单片机直接驱动负载这种方式。

2.至于单片机为什么一般选用三极管而不是MOS管?需要了解三极管和MOS管的区别,如下:

①三极管是电流控制型,三极管基极驱动电压只要高于Ube(一般是0.7V)就能导通。

②MOS管是电压控制型,驱动电压必须高于阈值电压Vgs(TH)才能正常导通,不同MOS管的阈值电压是不一样的,一般为3-5V左右,饱和驱动电压可在6-8V。

我们再来看实际应用:

处理器一般讲究低功耗,供电电压也越来越低,一般单片机供电为3.3V,所以它的I/O最高电压也就是3.3V。

①直接驱动三极管

3.3V电压肯定是大于Ube的,所以直接在基极串联一个合适的电阻,让三极管工作在饱和区就可以了。Ib=(VO-0.7V)/R2。

图2 驱动三极管示意图

②驱动MOS管

通过前面也了解到,MOS管的饱和电压>3.3V,如果用3.3V来驱动的话,很可能MOS管根本就打不开,或者处于半导通状态。

在半导通状态下,管子的内阻很大,驱动小电流负载可以这么用。但是大电流负载就不行了,内阻大,管子的功耗大,MOS管很容易就烧坏了。

所以,一般选择I/O口直接控制三极管,然后再控制MOS管。

图3 I/O口驱动三极管后再驱动MOS管

当I/O为高电平时,三极管导通,MOS管栅极被拉低,负载RL不工作。

当I/O为低电平时,三极管不导通,MOS管通过电阻R3,R4分压,为栅极提供合适的阈值电压,MOS管导通,负载RL正常工作。

为什么要这样操作呢?一定要用三极管来驱动MOS管吗?

那是因为三极管带负载的能力没有MOS管强,当负载电流有要求时,必须要用MOS管来驱动。

图3 I/O口驱动三极管后再驱动MOS管

当I/O为高电平时,三极管导通,MOS管栅极被拉低,负载RL不工作。

当I/O为低电平时,三极管不导通,MOS管通过电阻R3,R4分压,为栅极提供合适的阈值电压,MOS管导通,负载RL正常工作。

为什么要这样操作呢?一定要用三极管来驱动MOS管吗?

那是因为三极管带负载的能力没有MOS管强,当负载电流有要求时,必须要用MOS管来驱动。

相关问答

单片机驱动能力 如何提高?最好是电路图。89c52芯片的?

单片机是弱电控制中心单片机只是一个控制中心,IO的驱动能力是很弱的,只能用于信号处理或者信号控制,最多是驱动一个LED作为指示灯。驱动负载需要加入三极管、...

如何提高 单片机 驱动能力 ?

如果用NPN的管子的话建议在单片机IO上加上拉电阻,或者干脆改成PNP的管子,比如9012或者8550,如果电机电流很大,就要用大功率的管子.上拉电阻就是一头接电源一...

为什么 单片机io 口不能用来 驱动 ?

单片机的IO口是用来输入输出数字信号的,它们通常只承受很小的电流和电压。如果你尝试用IO口来直接驱动负载(例如电机、灯泡、继电器等),可能会导致IO口烧毁或...

请问如何用 单片机 IO 口直接控制继电器?

你的电路接法是否错误呢?查看一下,单片机从理论上讲是不能直接驱动继电器的,不管你的接法如何,直接连接可能会烧坏单片机I/O口,你的原因可能是已经把I/O口烧...

51 单片机IO 口能 驱动 两个PC817吗?要不要加三极管放大电流?

PC817的驱动电流范围上限是十几毫安到30毫安,一般的51单片机IO口都没有这么大的驱动能力,需要另加三极管。PC817的驱动电流范围上限是十几毫安到30毫安,一般...

单片机 性能标准?

单片机主要性能指标主要有最高运行频率(指令周期)内部RAMHeROM大小,片上外设(如定时器,串口,AD)多少,功耗的大小,IO口驱动能力单片机主要性能指标主要有最...

单片机 不接电阻用 io 口直接 驱动 led可以吗?

P0口是双向三态I/O口。双向:输入输出;三态:高、低、高阻通常用作地址/数据线,输出电流很小,如果相当普通IO口用需要加上拉电阻。由于P0口内部没有上拉电...

stc104f100w 单片机io 口输出电流?

传统单片机一般为10ma左右,现在的单片机一般20-25ma,但多个IO口加起来总电流有限制,根据厂家和封装不同而变化,有的不能超200ma,有的不能超400ma如果外设要...

单片机io 口高电平可以代替vcc吗?

这个问题我来回答一下。单片机的io口高电平是不可以代替vcc的,一般io口线的驱动能力都非常微弱,只能输出几十毫安级别的电流,因此是无法代替vcc作为电源使用的...

单片机 能做到同时控制最多81个继电器按需要接通和断开吗?

可以实现单片机控制81个继电器。如果单片机的引脚比较多,GPIO数量超过81个,那么可以直接用单片机的GPIO口来驱动。但是如果单片机的GPIO口比较少,那么就需要考...

猜你喜欢