
不知各位兄弟有没有做过低功耗的产品,本人将在做低功耗的产品中的一些心得与体会发上来和大家探讨与学习,希望能够起到抛砖引玉的效果。; a4 f8 r" d8 D; ~7 b7 b$ [![]() ![]() 6 {1 r# x( f+ W( o, Y/ E0 Q 0 d8 N1 n) s T% W7 m8 H* w8 B 公司是做车载GPS终端的,某款终端客户要求在低功耗状态下采用电池工作30天,由于车载GPS终端一般采用GPS模块采集经纬度信息通过GPRS网络上传数据中心的方式来工作,所以两个模块都是耗电大户,GSM模块在GPRS联网状态下峰值电流可达2A,其工作电流最大可达220ma,GPS模块一般在60-70ma左右,所以低功耗状态下必须切断这两个模块的电源,由于终端体积较小无法采用体积更大蓄电池来供电,最大只能选用3.7V 2400ma的锂电池来供电,这样就决定了终端必须在休眠时进入超低功耗状态下,经过设计电路,将GSM模块与GPS模块的电源分别通过使用可控LDO用CPU来控制切断电源,样机制作完毕,调试发现电流比预先设计的大2ma左右,无法达到要求,理论上在终端进入低功耗状态下其耗电应该在1ma以下,但是目前看来多出来了2ma左右,真是百思不得其解,进一步分析电路发现,GSM模块与GPS模块即使在关断其电源的情况下居然也有近1ma左右的电流消耗,发现了问题所在就剩仔细排查了,终于发现了为什么会有1ma的电流消耗,如上图所示,终端在休眠时CPU依次将GPS模块GSM模块电源切断,此时两个模块均处于掉电状态,但是此时CPU的串口引脚还接在模块的串口引脚上,由于模块或者IC在设计的时候考虑到防止引脚上出现高于电源电压的电平出现,于是在总线上做了如图2的一种保护,当模块处于掉电的状态时,其总线由于有二极管进行保护则其电压被箝位0.3-0.7V左右,所以当CPU的TX引脚输出为高电平(3.3V)时则电压一部分电压直接经过到电源的二极管达到了VCC引脚,进而经过了整个模块形成的负载,构成回路,虽然不足以让模块正常工作,但其损耗的电源对于一款低功耗的产品来说还是很可观的,所以,要求软件工程师在CPU进入休眠状态时,先将接到两个模块的串口的I/O口设置为高阻态,经过测试,终端在低功耗状态下已经可以达到800ua,满足之前的计算要求,可以达到客户要求,至此样机测试完成$ `0 D# p3 w; p7 p7 {5 T , p4 T1 |$ d: c % I4 R; c/ K( |4 E 总结:将模块的串口的I/O口tx,rx设置为高阻态^-^# u8 x; P# E, ?$ h7 ~6 E1 P& Z ' U Q& h% B' F8 E& `9 f |
我记得几秒钟就可以了
大家一起学习...........
呵呵,大家一起学习.....
低功耗很值得一学.......
互相学习..........
恩恩,有好的一起分享.......