历史上的今天
返回首页

历史上的今天

今天是:2025年04月28日(星期一)

正在发生

2021年04月28日 | MSP430省电方式的两种唤醒方法

2021-04-28 来源:eefocus

1MSP430省电方式简介


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是一款非常好的低功耗单片机,用好它的省电功能,可以大大延长电池的寿命。因此该产品被广泛地应用于电池供电的工控产品中。本文的代码都是实际应用中的程序代码,经过了实际的检验。


推荐阅读

史海拾趣

3M公司的发展小趣事
  1. 起源和早期发展: 3M公司(Minnesota Mining and Manufacturing Company)创立于1902年,在美国明尼苏达州成立。最初,公司主要从事矿石开采和研磨业务,以及生产砂纸和磨粉。在早期几十年里,3M致力于技术创新和产品开发,包括防水砂纸、透明胶带等产品,为公司奠定了良好的发展基础。

  2. 科技创新和产品多样化: 20世纪中叶,3M公司持续推动科技创新,不断扩展产品线。其中,最著名的是1950年代推出的可粘贴便签纸(Post-it)和1960年代推出的微型胶带(Scotch-Brite),这些产品成为公司的标志性产品,极大地推动了其业务的发展。

  3. 国际化战略和全球扩张: 20世纪后半叶,3M公司加速了国际化战略,并在全球范围内扩张业务。通过收购和合作,公司进入了新的市场和领域,如医疗保健、电子、汽车、能源等。3M在全球建立了广泛的生产基地和研发中心,成为一家跨国企业。

  4. 持续创新和技术领导: 3M公司一直致力于持续创新和技术领导,投入大量资金用于研发和技术创新。公司不断推出新产品和解决方案,满足市场需求并保持竞争优势。特别是在电子领域,3M推出了许多创新产品,如电子材料、封装材料、导热材料等,为电子行业提供了关键的解决方案。

  5. 可持续发展和社会责任: 3M公司致力于可持续发展和社会责任,在全球范围内推动环保和社会公益事业。公司制定了一系列环保政策和计划,努力降低能源消耗、减少废物排放,并积极参与社区建设和公益活动,为社会做出积极贡献。

CalRamic Technologies Llc公司的发展小趣事

为了保证产品质量的稳定性和可靠性,CalRamic Technologies在公司成立不久后,就开始着手建立严格的质量管理体系。他们引入了国际先进的质量管理理念和方法,对每一个生产环节进行严格把控。这一举措大大提高了产品的合格率和客户满意度,为公司的长期发展奠定了坚实基础。

Epitex Inc公司的发展小趣事

随着技术的不断进步,Epitex不断加大对研发的投入。XXXX年,他们成功研发出了一种具有更高导热性能的电子材料,这种材料在高性能计算机和服务器等高端电子产品中得到了广泛应用。这一技术突破不仅提升了Epitex的市场竞争力,也为其带来了可观的经济效益。

在技术突破的基础上,Epitex开始积极拓展国际市场。他们通过与全球知名的电子制造商建立合作关系,将产品推向了更广阔的舞台。同时,Epitex还积极参与国际技术交流和展览,提升了公司在国际市场的知名度。

ELNA(依娜)公司的发展小趣事

ELNA公司的故事始于1940年代,当时该公司推出了其第一台缝纫机。这款缝纫机以其精湛的工艺和卓越的性能迅速在市场上崭露头角。ELNA凭借对品质的坚持和对技术的不断创新,逐渐在缝纫机行业树立了良好的口碑。

随着业务的扩展,ELNA开始涉足电子领域,并逐步将其在机械制造和精密加工方面的技术优势应用到电子产品中。这一转变为公司未来的发展奠定了坚实的基础。

Dow-Key Microwave Corporation公司的发展小趣事

在Dow-Key Microwave的发展历程中,企业文化和团队建设始终是公司关注的重点。公司注重培养员工的团队合作精神和创新能力,为员工提供良好的工作环境和发展机会。同时,公司还建立了完善的管理制度和激励机制,确保公司的运营效率和员工的工作积极性。这些措施的实施,使得Dow-Key Microwave成为了一个充满活力和创新精神的企业,为公司的发展提供了有力保障。

请注意,以上故事仅为概述性质,具体细节可能因实际情况而有所不同。如需了解更多关于Dow-Key Microwave Corporation公司的信息,建议查阅相关报道或公司官方网站。

EMI Filter Company公司的发展小趣事

Murata是一家历史悠久的电子元器件公司,他们早在电子设备发展的初期就认识到了EMI滤波器的重要性。随着电子产品的不断小型化,Murata看到了小型化EMI滤波器的巨大市场需求。他们通过与多家科研机构和高校合作,成功研发出了一系列高性能、小型化的EMI滤波器。这些滤波器不仅性能优越,而且体积小巧,非常适合用于现代电子设备中。Murata因此赢得了大量的市场份额,并成为了EMI滤波器领域的佼佼者。

问答坊 | AI 解惑

英特尔院士寄语中国年轻IT技术人员

三个建议:英特尔院士寄语中国年轻IT技术人员      日前,在英特尔中国研究中心成立十周年暨\"2008英特尔中国研究论坛\"在京举   行之际,英特尔企业技术事业部高级院士、通信技术实验室总监康凯文(Kevin &nbs ...…

查看全部问答>

MEMS振荡器要取代石英晶体振荡器?

石英振荡器用了好多年了,现在听说MEMS也可以用来做振荡器,看到一个专家发了一通高论,MEMS振荡器真的有那么好,有兴趣的兄弟看一下 MEMS和石英技术争夺振荡器市场…

查看全部问答>

tornado的操作

调试程序时,在某一行上 ,点击小手,设置断点 可是我运行程序时,程序并不在断点处 停止 是不是还有其他的地方需要设置的~ 谢谢,在线等待你的回复! wdStart(id,5*60,(FUNCPTR)taskDelete,tid1); 是不是定时5秒? …

查看全部问答>

ds1302 在液晶1602上显示的问题

#include #include\"1602.h\" uchar year,yue,ri,shi,fen,miao,aa,t,t1,t2,t3,t4; /*******************宏定义*******************/ #define REST_OUT P2DIR|=BIT4 #define REST_IN P2DIR&=~BIT4 #define REST_H P2OUT|=BIT4 #define REST_ ...…

查看全部问答>

为何在platform.bib和platform.reg加入驱动后,内核中没有啊?

我在platform.bib和platform.reg中加入了驱动 并且驱动也放到了release目录下 为何不能编入到内核中呢? 而且我看了下reginit.ini和ce.bib中也没有相应的信息 请问高手们问题出在哪里啊?…

查看全部问答>

evc短信程序问题!!急!

在evc下用SmsOpen时,出现:\"Cannot execute program\" 谢谢!! …

查看全部问答>

推荐一款4.3寸液晶屏,绝对超值。。。

http://item.taobao.com/item.htm?id=6984836496   才60块,还带触摸,绝对超值商家人很好的  虽然是停产的产品,但作为DIY还是不错的。。。       我买了两个,正准备用在MIPS的网络电视机上  …

查看全部问答>

数字中频技术的研究与FPGA实现(优秀论文)

2.分析了数字中频主要应用数字变频系统的基本原理与结构,对其关键模块数字混频模块和抽取(内插)滤波模块在FPGA中的实现进行了研究。对于数字混频模块,讨论了查找表法和CORDIC法的实现结构及其参数的确定,指出了两种方法的优缺点及其性能改进方 ...…

查看全部问答>

【晒经典】随便晒点

本帖最后由 dontium 于 2015-1-23 12:45 编辑 倒置达林顿输出级600-1.2GHz  压控振荡器、950-2200MHz压控振荡器3-6GHz压控振荡器500-1000MHz压控振荡器1.5V升压到9V1.5V升压驱动led简易电路合成孔径雷达方框图温度模拟PID控制电路用两个三极 ...…

查看全部问答>

大家是用什么方法在C2000中进行中断嵌套的?

最近写程序,发现在C2000中进行中断嵌套不是很方便。 大家来说说你用什么方法。…

查看全部问答>