注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题

tiankai001的个人空间 http://home.eeworld.com.cn/space-uid-139222.html [收藏] [复制] [分享] [RSS]

日志

msp430单片机开发实录(25)

已有 66 次阅读2019-1-19 17:16 |个人分类:Proteus for msp 430




此内容由EEWORLD论坛网友tiankai001原创,如需转载或用于商业用途需征得作者同意并注明出处







msp430单片机开发实录(25)


现象:

产品开发完成,并且经过严苛、详细的测试后,已经开始批量生产了,但是大家提出一个问题:能不能把功耗再降低一些,目前产品的功耗有些高(超过50uA),用干电池供电的话,用不了1年就要换电池。


试验:
因为我们一直以来的产品都是电池供电的,对于产品的功耗一直都做得很低,这也是我们一直使用TI的MSP430系列单片机的原因,因为它的超低功耗做的确实很好。
不过这款产品因为功能太多,并且有一个很好点的地方:每1s都要进行一次串口通信(每次通信几十个字节,波特率9600),在最初方案设计以及产品验证时,所有参与人员都认为目前的功耗已经做到最好了,没有再下降的空间了。并且这款产品的功耗与其他厂家同类产品相比,功耗基本一样。所以就觉得功耗降不下来了。
但是今天忽然考虑到一个问题:msp430单片机数据手册上说,低功耗状态下,单片机检测到中断后,进行中断处理时,自动退出低功耗状态,处理完中断后,退出中断时自动进入低功耗状态,而如果在退出中断时手动添加了退出低功耗状态的语句,那退出中断后,是不会进入低功耗状态的。而我们的程序由于接受完完整的一帧数据后,需要进行及时处理,所以在退出中断时,添加了退出低功耗状态的语句,在主循环中处理完数据后,才会再次进入低功耗状态。
因为串口采用的中断方式,每次中断接受一个字节,所有数据接收完后才会处理,所以,能不能在没有接收完所有数据的时候,串口中断退出时直接进入低功耗状态?
于是对程序进行了优化:只有在接收完一帧数据后才退出低功耗状态,否则不退出低功耗状态


验证:

根据这个想法,对程序中的串口中断函数退出时根据条件退出或不退出低功耗状态,经过测试,电流减小了20uA左右,效果明显
备注:
msp430单片机的的超低功耗确实很强大,但是实现起来是需要不断地深入研究,实践,最后总能做到更低功耗。

本文来自论坛,点击查看完整帖子内容。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2019-2-21 08:07 , Processed in 0.036634 second(s), 11 queries , Gzip On, MemCache On.

Powered by EEWORLD电子工程世界

© 2019 http://bbs.eeworld.com.cn/

返回顶部