MSP430省电方式的两种唤醒方法

作者:瑞博官网 发布时间:2021-01-13 23:35

  著称于世,它可以外接2个时钟源XIN、XT2IN,内部还有1个DC0振荡器,可以产生高达8 MHz的内部时钟。一般XT2IN的频率为高频,按实际应用时的要求来选用;XIN为低频,可以是32 768Hz。XIN的用途主要是在低时使系统保持“活着”。MSP430共有5种省电方式,即LPM0~4。其中,

  系统在LPMO-3方式下可以被唤醒,LPM4则不能。大多数应用场合都希望MSP430平时进入睡眠状态,降低功耗,而后定时或被外界中断唤醒,执行相应的程序后再次进入睡眠状态,然后再次被唤醒,其中因为LPM3是满足要求且功耗最低的一种方式,所以它被使用得最多。本文就来讨论这种方式下的睡眠与唤醒。

  每一次循环中都要判断睡眠条件是否成立,若成立则切换时钟,进入睡眠方式。至此,CPU不再执行任何程序,直到CPU被唤醒后才继续执行。唤醒条件可以是定时中断、外部I/O中断,或串行口中断。下面的PowerManagement代码为进入睡眠前后和被唤醒后执行的相应操作。SerialReceiveInterrupt代码为串行口接收到1个字符中断后进行的相应操作,TimerBInterrupt代码为定时器B5定时时间到后进行的相应操作。2个中断程序中,在唤醒CPU之前均将时钟调整到正常工作时的高速时钟源上,设置相应的标志,然后再执行唤醒子程序clrLPM3。编译软件为IAR embedded workbench 1.26。

  如果睡眠是靠串行口中断来唤醒,则睡眠时长为不定长,什么时候来了中断,什么时候醒来。所以在此只讨论定时器产生中断来唤醒的情况。

  IDx:定时器B的时钟源分频因数,00=不分频,01=2分频,10=4分频,11=8分频。

  MCx:定时器B的计数方式选择位,00=暂停计数,01=加计数方式,10=连续计数方式,11=加减计数方式。详细内容请参考MSP430的数据手册。

  以上时钟选择了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 s16 s。因此,用定时器定时到产生中断作为唤醒源,最大睡眠时间不超过16 S。如果任务不需要这么快执行一次,可以每次醒来后先不去执行任务,而是给1个计数变量加1,然后继续进入睡眠状态,直到计数变量等于想要的时长后再执行。

  ,用好它的省电功能,可以大大延长电池的寿命。因此该产品被广泛地应用于电池供电的工控产品中。本文的代码都是实际应用中的程序代码,经过了实际的检验。


瑞博官网
© 2013 北京格林吉能源科技有限公司.版权所有