单片机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管来驱动。
为何带不动大负载?探索单片机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 扩展模块的作用?通过单片机IO控制扩展口,增加单片机IO口能控制的端口的数量。单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的...
单片机 能不能直接 驱动 步进电机?一、单片机不能直接驱动步进电机。原因是单片机虽然是主要起控制作用,但其端口主要是起到信号控制作用,而不能起到功率驱动。一般单片机的I/O口的输出电流都在...
51 单片机IO 口能 驱动 两个PC817吗?要不要加三极管放大电流?PC817的驱动电流范围上限是十几毫安到30毫安,一般的51单片机IO口都没有这么大的驱动能力,需要另加三极管。PC817的驱动电流范围上限是十几毫安到30毫安,一般...
单片机 能同时控制多个继电器吗?1、可以的!不过这可是比较麻烦的事啦。是可以控制的,但控制起来就麻烦了。2、首先要解决电路问题,可以采用并行接口扩展,用并行接口芯片,如锁存器,74HC573...
用 单片机 能做到同时控制最多81个继电器按需要接通和断开吗?可以实现单片机控制81个继电器。如果单片机的引脚比较多,GPIO数量超过81个,那么可以直接用单片机的GPIO口来驱动。但是如果单片机的GPIO口比较少,那么就需要考...
单片机 智能小车pmw?不需要单独的PWM模块,仅靠单片机和电机驱动(L298N)足够了。具体是在程序中用单片机的IO口模拟出PWM信号来,也就是控制IO口输出的高低电平的时间,利用不同时...
单片机 可以直接 驱动 步进控制器么?单片机可以直接驱动步进电机控制器,但不可以直接驱动步进电机。需要注意的是,步进电机控制器通常都是PWM接口,所以最好选型有PWM功能的单片机。如果用IO口模...
一个 单片机 有几组 io ?一个单片机有多少组io取决于单片机型号和制造商的设计。在计算机科学和嵌入式系统中,io通常指输入/输出引脚。它们用于接收外部信号和控制外部元件,如LED、电...
怎么使用 单片机驱动 直流有刷电机?-ZOL问答直流有刷电机的驱动比较简单,正反转的话用几个三极管和电阻就够了,具体可以查一下H桥电路。我截个图给你吧。图中,DCMTR1和DCMTR2为单片机的任意两个IO...
stc104f100w 单片机io 口输出电流?传统单片机一般为10ma左右,现在的单片机一般20-25ma,但多个IO口加起来总电流有限制,根据厂家和封装不同而变化,有的不能超200ma,有的不能超400ma如果外设要...