社区导航

 

搜索
查看: 453|回复: 0

[原创] msp430单片机开发实录(25)

[复制链接]

7316

TA的帖子

4951

TA的资源

博客管理员

Rank: 6Rank: 6

资源大师勋章

发表于 2019-1-19 17:16 | 显示全部楼层 |阅读模式



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







msp430单片机开发实录(25)


现象:

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


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


验证:

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


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

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

GMT+8, 2019-2-21 07:40 , Processed in 0.083192 second(s), 16 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表