单片机驱动能力不够怎么解决 (单片机高电平驱动能力弱)

输出端口驱动能力不足时,也就是驱动负载电流过大时,通常表现为输出高电平1时输出电压不够高,而输出低电平0时输出电压不够低。

输出端口驱动能力不足时的现象

单片机高电平驱动能力弱,单片机调试心得

图1 推挽输出端口电路结构

图1 推挽输出端口电路结构

在“单片机硬件进阶心得2:推挽输出端口电路结构”一文中,我们讨论了典型的推挽输出端口电路,如图1所示。

当端口输出高电平1时,内部MOS管Q1导通、Q2截至。理想情况下MOS管的漏极源极压降Vds=0V,所以端口输出高电平1时输出电压为电源Vcc。

当端口输出低电平0时,内部MOS管Q1截至、Q2导通。理想情况下MOS管的漏极源极压降Vds=0V,所以端口输出低电平0时输出电压为0V。

由于实际情况Vds是不可能为0的,所以输出高电平1时达不到电源电压Vcc的水平,而是Vcc-Vds。输出低电平0时也不可能低至0V,而是Vds。

MOS管的漏极源极压降Vds与端口输出电流有关,端口输出电流越大,Vds越大。所以当负载电流过大时,就会导致Vds过大,从而导致输出高电平电压Vcc-Vds不够高,而输出低电平电压Vds不够低。

危害

如图2所示,以5V CMOS逻辑电平为例:当输入信号电压在3.5V-5V之间时,电路解析为高电平1;当输入信号电压在0V-1.5V时,电路解析为低电平0;当输入信号电压在1.5V-3.5V之间时,属于不确定状态,会导致逻辑错乱,对于数字电路来讲是绝对不允许的。

单片机高电平驱动能力弱,单片机调试心得

图2 COMS逻辑电平门限电压

后记

大家搞单片机有没有经历过这样的阶段,明明设计的电路板没有问题,反复检查代码也没有问题,但是就是不能实现自己想要的功能。没有任何思路解决分析问题,心情是无比的低落、沮丧,感觉天都塌下来了。。。我在初学单片机的时候,就经历过这样一段过程。

2000年前搞单片机的,那是还没有SOC的概念,芯片功能都很单一,一个电路板上有好多元器件,像与或非各种逻辑门电路、译码器、锁存器、245驱动器、SRAM、EPROM、ADC等等经常会在一个电路板上出现。单片机外部总线上经常是需要挂一堆的芯片,从而出现一个输出脚驱动多个输入脚的情况,极易导致输出引脚电流驱动能力不足。

记得那时刚开始跟老师学习搞单片机开发时,老师设计原理图、PCB图,我负责焊接、调试、写测试代码。调试的过程中,经常发生一些怪异的现象,明明原理图、电路板都没有问题,焊接也是杠杠的,但是就是不能正常工作。每当遇到这种问题,我都是一筹莫展,只能等待老师过来指点迷津。

我将调试过程和故障现象进行描述后,每次老师都能给出建议,如何如何测试,问题点可能在哪里。按照老师指点,再通过逻辑笔、万用表、示波器的一番组合动作,最后经常找到的一类故障是某些信号输出高电平不够高、或者是输出低电平不够低,从而导致逻辑电平1与0混乱。(每次问题得到验证和解决后,老师极高的思维敏捷性都深深感触着我们几个小伙伴,都十分期盼自己啥时候也能像老师一样快速分析定位到问题啊)。

单片机高电平驱动能力弱,单片机调试心得

单片机高电平驱动能力弱,单片机调试心得