X
首页
技术
模拟电子
单片机
半导体
电源管理
嵌入式
传感器
最能打国产芯
应用
汽车电子
工业控制
家用电子
手机便携
安防电子
医疗电子
网络通信
测试测量
物联网
最能打国产芯
大学堂
首页
直播
专题
TI 培训
论坛
汽车电子
国产芯片
电机驱动控制
电源技术
单片机
模拟电子
PCB设计
电子竞赛
DIY/开源
嵌入式系统
医疗电子
颁奖专区
【厂商专区】
【电子技术】
【创意与实践】
【行业应用】
【休息一下】
最能打国产芯
活动中心
直播
发现活动
颁奖区
电子头条
参考设计
下载中心
分类资源
文集
排行榜
电路图
Datasheet
最能打国产芯
微控制器 MCU
[经验] MSP430单片机da省电方式的两种唤醒方法
Jacktang
2016-3-31 07:38
楼主
1 MSP430省电方式简介
MSP430以其低功耗著称于世,它可以外接2个时钟源——XIN、XT2IN,内部还有1个DC0
振荡器
,可以产生高达8 MHz的内部时钟。一般XT2IN的频率为高频,按实际应用时的要求来选用;XIN为低频,可以是32 768Hz。XIN的用途主要是在低功耗时使系统保持“活着”。MSP430共有5种省电方式,即LPM0~4。其中,
LPM0:CPU、MCLK关闭,SMCLK、ACLK打开,功耗79uA;
LPM1:CPU、MCLK、DCO关闭,SMCLK、ACLK打开,功耗4luA;
LPM2:CPU、MCLK、SMCLK、DC0关闭,DC产生器、ACLK打开,功耗17uA;
LPM3:CPU、MCLK、SMCLK、DC0、DC产生器关闭,ACLK打开。功耗2uA;
LPM4:CPU及所有模块都关闭,功耗0.1 uA。
系统在LPMO-3方式下可以被唤醒,LPM4则不能。大多数应用场合都希望MSP430平时进入睡眠状态,降低功耗,而后定时或被外界中断唤醒,执行相应的程序后再次进入睡眠状态,然后再次被唤醒,其中因为LPM3是满足要求且功耗最低的一种方式,所以它被使用得最多。本文就来讨论这种方式下的睡眠与唤醒。
2 睡眠与唤醒
主程序循环运行的流程如图1所示。
每一次循环中都要判断睡眠条件是否成立,若成立则切换时钟,进入睡眠方式。至此,CPU不再执行任何程序,直到CPU被唤醒后才继续执行。唤醒条件可以是定时中断、外部I/O中断,或串行口中断。下面的PowerManagement代码为进入睡眠前后和被唤醒后执行的相应操作。SerialReceiveInterrupt代码为串行口接收到1个字符中断后进行的相应操作,TimerBInterrupt代码为定时器B5定时时间到后进行的相应操作。2个中断程序中,在唤醒CPU之前均将时钟调整到正常工作时的高速时钟源上,设置相应的标志,然后再执行唤醒子程序clrLPM3。编译软件为IAR embedded workbench 1.26。
3 睡眠时长
如果睡眠是靠串行口中断来唤醒,则睡眠时长为不定长,什么时候来了中断,什么时候醒来。所以在此只讨论定时器产生中断来唤醒的情况。
定时器B的控制寄存器的说明如图2所示。
图2 定时器B的控制寄存器
CNTLx:计数器长度,00=16位,MSP430定时器B的计数器TBR最大为0xFFFF;01=12位,TBR最大为0x0FFF,10=10位,TBR最大为0x03FF,11=8位,TBR最大为0xFF。
TBSSELx:定时器B的时钟源选择,00=TBCLK,01=ACLK,10=SMCLK,11=INCLK。
IDx:定时器B的时钟源分频因数,00=不分频,01=2分频,10=4分频,11=8分频。
MCx:定时器B的计数方式选择位,00=暂停计数,01=加计数方式,10=连续计数方式,11=加减计数方式。详细内容请参考MSP430的数据手册。
前述程序中定时器B的控制字TBCTL=TBSSEL0+ID0+ID1+MC1+TBCLR。定时器B的时钟源选择为TBSSEL0,该值在MSP430x14x.h头文件中的定义为0x0100,即选择的时钟源为ACLK(32768hz)。ID0在MSP430x14x.h定义为0x40,ID1在MSP430x14x.h定义为0x80,二者相加为0xC0,即定时器B的时钟源为8分频。MC1在MSP430x14x.h定义为0x20,即定时器B采用连续计数方式。
以上时钟选择了ACLK为32 768,再进行8分频,等于4 096,则定时器B的时钟最终运行频率为4 096 Hz,每计1个数所需时间为(1/4 096)S。又由于前面把定时器B5的计数值设为TBR-10=0xFFFF-10=0xFFF0=65 536-10=65 526,则计满65 526数需要的时间为65 526×(1/4 096)s=15.997 s≈16 s。因此,用定时器定时到产生中断作为唤醒源,最大睡眠时间不超过16 S。如果任务不需要这么快执行一次,可以每次醒来后先不去执行任务,而是给1个计数变量加1,然后继续进入睡眠状态,直到计数变量等于想要的时长后再执行。
结语
MSP430是一款非常好的低功耗
单片机
,用好它的省电功能,可以大大延长电池的寿命。因此该产品被广泛地应用于电池供电的工控产品中。本文的代码都是实际应用中的程序代码,经过了实际的检验。
作者:中国国土资源经济研究院 侯志成
来源:单片机与
嵌入式
系统应用 2009 (4)
点赞
回复评论
暂无评论,赶紧抢沙发吧
最新活动
报名直播赢【双肩包、京东卡、水杯】| 高可靠性IGBT的新选择——安世半导体650V IGBT
30套RV1106 Linux开发板(带摄像头),邀您动手挑战边缘AI~
安世半导体理想二极管与负载开关,保障物联网应用的稳健高效运行
免费申请 | 上百份MPS MIE模块,免费试用还有礼!
PI 电源小课堂|无 DC-DC 变换实现多路高精度输出反激电源
2024 瑞萨电子MCU/MPU工业技术研讨会——深圳、上海站, 火热报名中
随便看看
汽车新热点: T-BOX系统解决方案深度剖析
dxf文件中LWPOLYLINE和POLYLINE有什么区别
4G与5G网络有哪些区别
nRF24L01与LANUCHPAD的调试
Altera-FPGA烧写步骤及注意事项
【SensorTag】the sixth week:电路原理图
专业音响的发祥地
MSP430怎么烧断熔丝?
本人菜鸟,用lm3s811,哪位大神给点概念性指导……
EMC系列之以太网接口EMC设计标准电路
谁有 Windows CE实用开发技术 或者哪里能下?
寻视频电话开发人员
急求电脑配置
Sate210-F 开发板/核心板正常启动uboot,kernel,android4.0打印信息输出参考
成功移植ffmpeg 0.6到ARM平台
高价求购 Tornado V 2.2.1的序列号
骗子邮件,还是个外国骗子
MSP432UART测试
北京是个什么地方??
基于LPC2104型CPU的汽车行使记录仪
电子工程世界版权所有
京B2-20211791
京ICP备10001474号-1
京公网安备 11010802033920号
回复
写回复
收藏
回复