一般MCU的待机功耗完全取决于其本身设计功耗,一般都是uA级,对于绝大多数的应用足够了,但对于一些特殊需要的场合要求待机功耗接近于零,目前只有极少数MCU能做到nA级的睡眠待机电流,但成本极高,这对于成本吃紧的项目来说是一大挑战。那有没有一种既简单低价成本又能实现零功耗的方法呢?当然有啦,要不然你就不会看到这篇文章了。
MCU睡眠功耗uA级
首先,直接上原理图,看着很简单,你没看错就是这么简单。其中Q1和Q2控制MCU供电,MCU需要用2个IO口来控制,其中一个IO1口用来检测按键,用于唤醒,同时也是功能按键,其通过D1和D2与外围电路隔离不受外围电路影响;另一个IO2口用来唤醒开机后输出高电平控制Q2导通来产生类似自锁的效果;R5位按键上拉电阻,MCU有上拉的可以去掉,Q1和Q2也可以用场效应管替代,注意极性。
硬件电路图
具体实现过程如下。首先通电时Q1、Q2都截止,MCU断电,此时没有按按键,那整个电路不消耗任何电流;当有按键按下后,Q1基极拉低导通,MCU上电后单片机启动,然后软件控制IO2口输出高电平进而控制Q2导通,Q1基极保持低电平维持导通,相当于形成自锁,此过程一般mS级足够完成(特殊启动的除外)只要按键时间大于MCU启动时间即可,自锁形成后同时也就可以进行按键功能判断操作了;因为有D1和D2的隔离,之后按键的正常功能操作就不受影响了;如果需要关机,软件执行按键操作后控制IO2口输出低电平使Q2截止,然后Q1也截止,MCU断电进入零功耗状态。
关键零件作用:Q1作为MCU供电开关;Q2主要与Q2组合形成自锁电路,D1防止自锁形成后IO1口被强拉到低电平,按键就会失去作用;D2主要是用来防止MCU断电后,5V电压通过Q1的BE节R2D1流到MCU内部造成功耗甚至是工作。
通常我们会觉得要低功耗就必须要低功耗的单片机,有时候真的需要转个思路去解决问题,使用这个电路后普通的单片机也一样可以做到零功耗,电路虽然不算完美,但对于一些低成本低功耗要求的场合还是挺实用的,大家觉得怎么样,欢迎评论区一起讨论吧。