用水果供电的AVR单片机——挑战MSP430的低功耗
我本来觉得水果电池驱动LCD只是展示会上的噱头,三片柠檬的电力,应该足够带动LCD的。不过最初当我用Mega8L做了一个电路却不能用水果电池驱动时,我下决心亲自实践一番,看看水果供电的AVR单片机能否成功。这样我可以验证对低功耗单片机设计的一些认识;而我手头上一个用MSP430的项目,样机已经做好多时了,觉得MSP430不爽(不只是贵,我们还要维护两套平台),有心想要改成AVR。那个MSP430功耗真是低,3节五号镍镉电池供电的样机,停停走走用了一年多。喜欢MSP430做低功耗设计的朋友,欢迎来砸砖。
这是水果电池的电极,阳极是做PCB的覆铜板,阴极是镀锌螺丝。将上述电极浸入滴过醋的三个水杯里,我测到水果电池的容量能达到:空载电压3V,短路电流400uA。这使我有信心演示出水果供电的AVR单片机。
http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_349891.jpg
水果电池的电极 (原文件名:IMG_1383b.jpg)
我用Mega8L做了一个电路,驱动静态的笔端式LCD,能够在2~3节电池下工作,却不能用水果电池驱动。原来Mega8L标称的最低工作电压是
2.7V,实际可以工作到2.5V。水果电池电压被拉到1.9V,电流60uA,可见水果电池的容量很小。我没有花时间去改进水果电池,倒是想进一步
改进AVR。
于是我先用Tiny13做了一个闪烁LED的实验,成功的验证了水果对AVR单片机供电的可能。Tiny13是可以工作到1.8V的。LED是Fairchild的
HLMP-D150,小电流时的亮度要比普通LED好。实际上当LED点亮时,绝大部分功耗在LED上。
http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_349892.JPG
Tiny13驱动LED闪烁(亮) (原文件名:IMG_1378b.JPG)
http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_349893.JPG
Tiny13驱动LED闪烁(灭) (原文件名:IMG_1379b.JPG)
http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_349894.JPG
一周以后的水果电池 (原文件名:DSCF0073b.JPG)
我想用Mega88P之类的PicoPower技术的AVR芯片代替Mega8,工作电流比前一代产品小,工作电压可以低到1.8V。终于收到了从Armok那里买的
Mega88。虽然Mega88和Mega8 Pin-pin 兼容,但和Mega8的寄存器略有不同,还得重新为Mega88编译代码。3V下LCD亮了,但是2.3V下LCD已经
完全黯淡无光。原来LCD是设计在5V工作的,于是又装了一个2倍负压电路,用对称的PWM波驱动倍压电路。
http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_349895.JPG
Mega88驱动LCD显示数字0~9 (原文件名:DSCF0086b.JPG)
最终能工作的水果供电的AVR单片机的配置如下:
硬件:Mega88,32KHz外部晶振,2倍负压电路由AVR的PWM驱动,LCD是静态的笔端式LCD,用Mega88的IO口直接驱动,没有分时扫描。
软件:在Timer0中断服务程序中每2秒钟刷新LCD显示,平时AVR工作在空闲模式。Timer1提供PWM波形驱动2倍负压电路。
测量数据:
电路工作时水果电池电压2.5V,整机电流30uA,2倍负电压提供电压大约-3V。
参考我们的论坛中的帖子“用水果供电的单片机最小系统”。 Mega88 低功耗的设置和循环显示数字0~9的代码。
Mega88驱动静态LCDourdev_349896.txt(文件大小:4K) (原文件名:m88fruit_1.txt) 强啊 牛X...... 整机电流30uA?idle状态还是active状态?
估计active状态应该高于30uA... 我用m48时直接驱动动态lcd电流最小时小余20uA,每秒还要进行200Hz的显示扫描,其他什么都不做,测温时30uA(Pt100电阻);
降低功耗的方法:
关闭电压检测,关闭比用的模块,WDT电流几个uA,管不管随意,使用t2的异步时钟定时唤醒,平常用掉电模式,还有都忘记了自己找吧 我用的是32KHz的晶体,全速工作的时候也只有大约30uA。你可看M88手册,是一致的。
我还有一些地方没处理好,所以active+idle的电流不应该这么大。做了一些改进和尝试。
1)昨天的测试使用的电表不够准,今天用Fluke 15B电表和2.5V稳压电源测的,电流21uA。绝对的电流值仅供参考。
2)禁止CKOUT熔丝,节约2uA
3)PRR= 0xC7,关掉一些模块,节约2uA
4)试着将不用的引脚改为输入和内部上拉,没有电流减少(高电压时有明显的帮助)
5)PWM比较耗电,但是静态显示不能关PWM,可能改成动态刷新会进一步省电。
不管怎样,32KHz全速运行的M88,用水果电池驱动都没有问题。 从手册上看:
http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_349970.jpg
(原文件名:CAP12.jpg)
http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_349971.jpg
(原文件名:CAP11.jpg)
全速工作估计也有50uA,再加上LCD~~~ mark ,楼主厉害~! testcode请看下图。
http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_349972.JPG
(原文件名:active_32KHz.JPG) 强 关注。
也想用AVR替代430。
阿莫置酷吧。 LZ强悍 牛得很啊,有空看看用几瓶不干净的水也试试看能否产生足够的电能点这LED,如果行,比水果要好,至少不像水果那样放一两天都坏了…… 有创意!!! 430出来快10年了吧? 最终能工作的水果供电的AVR单片机的配置如下:
硬件:Mega88,32KHz外部晶振,2倍负压电路由AVR的PWM驱动,LCD是静态的笔端式LCD,用Mega88的IO口直接驱动,没有分时扫描。
软件:在Timer0中断服务程序中每2秒钟刷新LCD显示,平时AVR工作在空闲模式。Timer1提供PWM波形驱动2倍负压电路。
-------------------------------------------------------------------------------------------------------------------
能不能把那个负压电路贴出来啊,谢谢 mark 发现我下载的DataSheet还是旧的版本,新的手册,Atmega88能耗确实改进不少。
谢谢xiaoxu191提示! 佩服。 【18楼】 testcode
我手上的M48P/88P/168P的手册,也没有32KHz的图。
关于M48P/88P/168P,我对PicoPower又有新的理解。
从手册上看不出active mode下整体功耗的改进,这可以比较电气指标的各个图得知,也许只是文档本身的修订,指标定得宽松一点,我没有M88P的芯片,无从比较。
但是在power-down mode下,所谓PicoPower技术还是有明显改进的,感觉是冲着MSP430来的。体现在M48P/88P/168P的上,主要有两点:
1)MSP430有零功耗BOD,Atmel说我的BOD虽然有20uA的巨大耗电,但是我反应快,说我电流大,我就允许在掉电模式下彻底关掉BOD来降低功耗,RAM低至VCC=0.3V还能保持,VCC=1V左右产生POR退出掉电模式,自动打开BOD。感觉是个补丁,但比20uA的BOD功耗强呀。
2)Power-save mode下维持32KHz晶振运行的电流降低不少,够小的,只有1uA。这样有助于应用省电模式的低功耗,用Timer2唤醒,像【5楼】那样;做个实时时钟也很好了。 用M48做微功耗设备很久了,用T24/T25也做过几个了
MSP430相比Mx8/Tx4/Tx5的优势已经很不明显了,而缺点却相当明确:同样速度几乎同样功能,两三倍的差价,用哪个?
另外,我个人认为,目前AVR系列最有竞争力的型号就是Mx8/Tx4/Tx5/PWM3这四个子系列了,其它什么M128、xmega之类的,至少在中国,都纯属扯淡…… 【21楼】 watercat
呵呵,是的M128现在的确竞争力在下降,就按Xmega那价格,几乎可以把m128 m64之类的芯片一锅端了,现在M3内核的芯片来势很凶,AVR不升级的确是不行啊,AVR32和Xmega~ 【16楼】 avrkiller
http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_350750.JPG
供LCD的负电压电路 (原文件名:_2VCC_boost.JPG)
【13楼】 maskiss 火线
不干净的水也能做电解液,我最初是在饮用水里滴了几滴醋。消耗得快的是负极的锌,你看几个小时以后镀锌螺丝就腐蚀成这个样子了。
http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_350751.JPG
腐蚀的负极 (原文件名:DSCF0092.JPG) 绝对酷 莫老大抓紧置酷啊 Cool ! 果然是暴强! 这个好不好还需要市场来说吧。MSP430是16位,Xmega是8位的吧,两者没有直接可比行吧?就像51和ARM一样啦 COOL 太好玩啦! cool! 水果电池,那个番茄做的,怎么知道哪个是正极,拿个负极啊,看着那个盘子里的番茄觉得太深奥了!
强! 可否提供下整个原理图?!我对AVR低功耗很有兴趣想了解得更深一点,还有LCD驱动电路! 不是AVR猛,是水果电池猛
用430做这个,电流估计也就3 - 5uA左右, 用这个电池可以挂一排单片机 技术就是辩论,就是严肃的探讨
佩服lz的较真精神!太cool! 30楼想想化学。两种金属比较活泼的是负极,Zn_Cu电池的电动势在0.6V cool 【31楼】 mikezfq
我还真没有原理图,因为AVR的最小系统,除了MCU和可选的晶振,其它什么都没有了。我手上就有很多自制的AVR的最小系统板,引出一个ISP接口,并将MCU所有的引脚都连到排针上,就可以开发AVR了。至于液晶,我手上正好有两个8字的静态笔段液晶,就是只有一个公共端的引脚,其它各段分别连到各自的引脚的那种,这样的液晶不就和LED数码管一样吗?我都是直接飞线的。如果用到多个公共端的液晶,可以显示更多笔段,需要动态驱动,但是功耗也不会大多少。
【32楼】 laoma
水果电池的负载能力很有限。在动态唤醒MCU的过程中,电池电压会随之波动,还是留点裕量的好。这对受测的MCU的要求是:尽量小的平均工作电流,较低电压下还能工作。
我正想知道MSP430的实际结果。 厉害!
图文并茂。 有前途! 果然牛!!!
佩服!!!!
学习了!! LZ,关键是LCD的驱动是类似交流驱动,和LED很大不同,请问你是如何做的?! 顶 牛X... 强!!! cool! niu 想吃 水果电池????!!!!! 强人啦! 强人. 牛人;太酷了! 路过,支持 强悍我的 MEGA都是跑在5V的 哟 惭愧 顶啊,强 有创意! 不知道在海水里面,可否用这种铜-锌电池。如果能用的话,我的水下设备就有无穷的电力了,呵呵呵。 LS的潜水艇的干活? 新能源。居然用水果。不比太阳能差了。 要是用250Hz晶振的话..功耗更低了吧?
【57楼】 Friendz
这会不断消耗铜和锌,并且会有铜离子出现.... 好玩对孩子 最有用了让他们好奇呀 厉害厉害 很有参考价值,但是430迄今为止还不能被解密,只是AVR不能比拟的。 赞一个!!! 牛!学习了! 强悍 厉害啊,楼主化学不错啊... 楼主西红柿那里买的啊,好象买几个回来吃哈.......下次做水果电池别用这么好的西红柿啊,真的觉得有点浪费了哈哈......顶一个... 哈哈,现在西红柿不比普通电池便宜 mark cool 来顶一下 牛! 记号一下,努力学习 很希望别的IC厂家也赶紧搞出像430这种低功耗的片子来,那就太爽啦,哈哈哈哈…… 真是开眼见了啊~ 想知道楼主 装置坚持显示了多少时间???
换成苹果可能会更好些吧 原电池啊。。。苹果不行吧,糖分要水解的。。。变成酒精就只能烧了。。。哈 水果还能回收利用少个汤吗???哈哈 开眼界了! 可以尝试换不同的水果,看看哪种水果发电量比较大 膜拜啊!!! 微小之中见强大!
牛!!! 呵呵做个时钟放到水果摊上,烂掉的水果就当电池用吧呵呵 这个好! 不错,标记下 这儿牛人就像牛身上的毛一样——————多! 见到过用一节CR2032就能工作2年的东西,MSP430的,
每隔10秒,居然还有LED闪一下! 没有做不到只有想不到哇!! 我用盐水,碳棒做正极,铁棒做负极,点亮一个LED没问题,亮度还挺高的……哈哈!
只要能在水中被腐蚀的金属都能做负极,正极用碳棒即可。 另外,水果的内阻很大,相当一部分电力消耗在水果上了。 小时候经常用一个铁片加一铜片放在盐水里试,电流很大的, 不错。又懂了很多。 MARK 有味道! 我对楼主的敬佩有如滔滔江水连绵不绝。。。 太投入了,厉害!我很想知道哪种水果的“电量”更高,呵呵。苹果、柠檬? 要无机酸的效果才好,应为酸的电离程度高,有机酸的效果不明显。
或许加点盐可能好一些。 mark 强!顶你! 大开眼界