历史上的今天
返回首页

历史上的今天

今天是:2025年06月21日(星期六)

2021年06月21日 | MSP430单片机省电方式的两种唤醒方法

2021-06-21 来源:eefocus

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,然后继续进入睡眠状态,直到计数变量等于想要的时长后再执行。

推荐阅读

史海拾趣

Electro Technik Industries公司的发展小趣事

ETI公司成立于20世纪初,当时电子产业正处于起步阶段。创始人张三看准了电子技术的巨大潜力,决定投身其中。然而,初创时期资金短缺、技术落后、市场竞争激烈等问题让ETI步履维艰。张三凭借着对电子技术的热情和不懈的努力,带领团队不断研发新产品,拓展市场,最终使ETI在电子行业中崭露头角。

上海国芯(Gcore)公司的发展小趣事
首先检查电源电压是否正常,电源是否稳定。
City_Technology公司的发展小趣事

进入21世纪,City Technology迎来了新的发展机遇。2006年,公司被全球知名的Honeywell集团收购,成为其旗下的一员。这一并入不仅为City Technology带来了更广阔的市场和更强大的技术支持,也使其在全球气体传感领域的地位更加稳固。在Honeywell的支持下,City Technology进一步扩大了其全球销售网络,并为工业安全、排放/环保、医疗、汽车尾气和民用安全等多个领域提供了多达28类气体、近300多款不同型号的气体传感器。这些传感器广泛应用于保护人身及财产安全、保护环境、提高安全性和舒适性的各个领域,为全球客户提供了卓越的产品和服务。

以上五个故事基于City Technology公司的发展历程和行业趋势进行构建,旨在展示其在电子行业中的成长与蜕变。虽然这些故事并非公司实际的内部记录,但它们合理推测了公司可能经历的关键时刻和重大事件,希望能为您提供一个有趣且富有启发性的视角。

Fairchild Imaging公司的发展小趣事

Fairchild Imaging非常重视与行业领先企业的合作。通过与这些企业的紧密合作,Fairchild Imaging能够不断吸收先进的技术和管理经验,提升自身的研发和生产能力。同时,这种合作也有助于Fairchild Imaging将其技术成果更快地推向市场,满足客户的多样化需求。

硕颉(BITEK)公司的发展小趣事

尽管硕颉科技在知识产权方面做出了积极努力,但仍难免面临专利诉讼的挑战。在某次与凹凸科技的专利侵权诉讼中,公司虽然一度面临败诉和永久禁制令的风险,但硕颉科技迅速应诉,积极应对。最终,美国联邦巡回上诉法院废除了原判决,公司得以自由销售被诉产品,不受任何限制。这次诉讼的胜利,不仅展示了硕颉科技在应对法律挑战方面的决心和能力,也为公司的长远发展奠定了坚实基础。

GSG公司的发展小趣事
智能压力测量电路采用先进的传感器技术和数字信号处理算法,能够实现更高的测量精度。

问答坊 | AI 解惑

如何选用变频器

  变频器选型:主要需要确定以下几点: 1)  采用变频的目的:恒压控制还是恒流控制? 2)  变频器的负载类型(如叶片泵或容积泵等,特别注意负载的性能曲线,性能曲线决定了应时的方式方法。 3)  变频器与负载的匹配问题: A ...…

查看全部问答>

有人做过条形码扫描仪相关的软件吗?

   我现在需要做一个软件, 首先让条形码扫描仪链接(通过串口?usb口?)到pc,然后用软件接受条形码扫描仪发送过来的条形码信息(一维条形码,大概就几十个字节的信息)。 我不知道买个什么样的条形码扫描仪? 或者是随便买一个条形码扫 ...…

查看全部问答>

请教驱动与应用之间的通信问题

驱动里设置了一个中断,中断触发后,通知一个应用程序开始执行操作。中断关闭后驱动再次通知应用程序停止某项操作。请问如何实现该动作的方法,呵呵…

查看全部问答>

wince 法文键盘

我看wince资料说支持法文键盘。法文键盘的LANGID:040C  可我没有找到这个语言的代码。希望知道帮忙说下。…

查看全部问答>

eeleader斑竹请进!

前段时间写了一个BCD码转GRAY码的小程序,结果在做门级仿真时,出现了很多“毛刺”,听取了大家的意见后,重新改了程序,发现“毛刺”的个数是比上次的少了,但还是存在,麻烦斑竹给修改一下!谢谢…… PS:以前帖子的链接:     https ...…

查看全部问答>

css中的图形显示

刚入门css,我用不好那个GRAPH,怎么都显示不出来图形…

查看全部问答>

求ATmege8代理商

求ATmege8代理商,第一次使用它!!!!!…

查看全部问答>

申请MSP-EXP430FR5739实验板套件团购资格

感谢论坛提供这么吸引的价格获得一次这么好的机会学习MSP430这么新的系列!    …

查看全部问答>

9b96的safertos问题求助

我把safertos_demo例程的.bin文件烧到自己做的板子里,感觉没有运行。里面的闪灯任务就是闪网口上的灯(ROM_GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3, GPIO_PIN_3);),按理说应该闪灯。在线运行一下子就进入故障中断了。有哪位用过safertos讨论下 ...…

查看全部问答>

新手求助

我做了一个东西,需要两节3.6V电压的电池供电,我选用的是镍氢电池,电池规格如下 3.6V   80mAh   Ni-MH   CHARGE:8mA   14h 手头上有一个锂电池的万能充电器,规格如下 充电器的参数是:输出:4.2V&nbs ...…

查看全部问答>