MSP430除了正常运行时的active模式外,还支持五种低功耗模式(Low-power mode),分别为LPM0、LPM1、LPM2、LPM3、LPM4,由状态寄存器中的CPUOFF、OSCOFF、SCG0、SCG1比特位设置。
六种模式对应的时钟状态为:
其中,LPM3、LPM4比较常用,对低功耗的贡献也最大。LPM3模式关闭了DCO、CPU,从而MCLK、SMCLK无法工作,ACLK(来源为LFXT1或VLO)可以正常工作并用于系统的定时唤醒。LPM4模式下所有内部时钟信号都关闭,系统只能由外部中断唤醒。几种模式的功耗情况大致如下图所示:
io430g2553.h头文件中已经宏定义好了几种模式的实现语句:
#define LPM0 __bis_SR_register(LPM0_bits) /* Enter Low Power Mode 0 */
#define LPM0_EXIT __bic_SR_register_on_exit(LPM0_bits) /* Exit Low Power Mode 0 */
#define LPM1 __bis_SR_register(LPM1_bits) /* Enter Low Power Mode 1 */
#define LPM1_EXIT __bic_SR_register_on_exit(LPM1_bits) /* Exit Low Power Mode 1 */
#define LPM2 __bis_SR_register(LPM2_bits) /* Enter Low Power Mode 2 */
#define LPM2_EXIT __bic_SR_register_on_exit(LPM2_bits) /* Exit Low Power Mode 2 */
#define LPM3 __bis_SR_register(LPM3_bits) /* Enter Low Power Mode 3 */
#define LPM3_EXIT __bic_SR_register_on_exit(LPM3_bits) /* Exit Low Power Mode 3 */
#define LPM4 __bis_SR_register(LPM4_bits) /* Enter Low Power Mode 4 */
#define LPM4_EXIT __bic_SR_register_on_exit(LPM4_bits) /* Exit Low Power Mode 4 */
示例
利用MSP430G2553 Timer0_A,产生频率为1Hz的方波,驱动LED进行显示。系统除了中断处理外,其余时间都处于LPM3模式。LPM3下时钟源只能使用ACLK,而ACLK的来源为LFXT1或VLO。G2 Launchpad随板提供了一个32.768k的晶体,若使用LFXT1,则需要将该晶体焊接到板子上。此例子中VLO作为ACLK的时钟源。
VLO的主要问题是不够精准。从MSP430G2553手册可以看出,VLO频率范围为4kHz~20kHz,且受温度、供电电压影响较大。
虽然手册给出的VLO典型值为12kHz,以下程序实测方波频率为约0.84~0.85kHz,即实际VLO的频率为约10kHz。
1 #include "io430.h"
2
3 #define LED1 BIT0 //red
4 #define LED2 BIT6 //green
5
6 void main(void)
7 {
8 // Stop watchdog timer to prevent time out reset
9 WDTCTL = WDTPW + WDTHOLD;
10
11 P1OUT = LED1;
12 P1DIR |= LED1+LED2;
13
14 BCSCTL1 = CALBC1_1MHZ; //Running at 1MHz
15 DCOCTL = CALDCO_1MHZ;
16
17 BCSCTL3 |= LFXT1S_2; //ACLK source: VLO; VLO typical freq = 12kHz
18 BCSCTL1 |= DIVA_2; //ACLK = VLO divided by 4: typical 3kHz
19
20 TA0CCR0 = 1500 - 1;//overflow freq = 3000/(TACCR0+1) = 2Hz (500ms)
21 TA0CCTL0 = CCIE; //enable interrupt
22 TA0CTL = TASSEL_1 + MC_1 +TACLR; //ACLK, no divide, up mode ,clear timer
23 //the actual overflow period measured: 585~595ms -> VLO freq is ~10k
24 //so the VLO is not very accurate.
25
26 __enable_interrupt();
27 LPM3; //enter the low-power mode 3
28
29 }
30
31 //ISR
32 #pragma vector = TIMER0_A0_VECTOR
33 __interrupt void CCR0_ISR(void)
34 {
35 //TA0CCR0 flag clearing is automatic
36 P1OUT ^= LED1 + LED2;
37 }
上一篇:MSP430学习笔记-时钟篇
下一篇:MSP430 G2553 计时/计数器 Timer_A
推荐阅读最新更新时间:2024-11-11 15:40
推荐帖子
- 缓启电路,快来看我的AD16
- 上次在坛子里面看到某个大大贴的一篇帖子讲的是用mos管来做电源反接保护。刚好我有个板子需要这个功能。顺带需要做个电压缓启电路,就是上电后,让电压缓慢升高当时没收藏那片帖子,现在又找不到了,这里就把图贴出来让大家给我看看,这个图能不能实现那个功能啊?如果需要预防自激震荡,该怎么做?缓启电路,快来看我的AD16Q1是怎么回事?画的是N沟道,标的型号却是P沟道 版主好,si2302是n的建議rj1=22k,cj1=10uf,3樓有datasheet,必要時可以加個rgd
- yl20084784 模拟与混合信号
- 跪求proteus7自动关闭的问题
- 我不知道为什么,每次用proteus的时候,都会出现自动关闭的情况,导致我根本无法用它做东西,看了很多论坛,有好多人都出现这种情况。。。求哪位大神指教啊。。。跪求proteus7自动关闭的问题看看这个:https://bbs.eeworld.com.cn/thread-291355-1-1.html先谢过啦。。我这就安装试试看回复沙发xu__changhua的帖子
- snail-fly 单片机
- evc 下使用adoce3.1 访问数据库编译通不过 求助
- 我在evc下编写使用adoce3.1访问sqlce数据库的程序,按照adoce访问的顺序创建connection出错,使用CoInitializeEx()函数报错:sqlcedemoDlg.obj:errorLNK2019:unresolvedexternalsymbol__imp__CoInitializeExreferencedinfunctionprotected:virtualint__thiscallCSqlcedemoDlg::OnInitDia
- yuchuang15 嵌入式系统
- VxWorks实时操作系统-VxWorks系统培训教材
- 教材简单介绍:课程设计------------------------------------------------培训分四个部分进行讲解:嵌入式实时操作系统VxWorks。VxWorks操作系统功能和使用方法。如何使用VxWorks搭建嵌入式系统。如何测试基于VxWorks的嵌入式设备以及案例分析。-------------------------------------------------课程介绍-----------------------------------
- zhaonaiqiang 实时操作系统RTOS
- 怎么用115200的波特率传输?
- 我用的是11.0592的频率上网查了很多资料,说用AT89S52的芯片用T2可以达到但我不知道T2初始化的程序,谁能给个出来?另外,初始化的参数怎么求呢?怎么用115200的波特率传输?不都是那个流程?选时钟源配置定时器装载定时值(可计算)启动定时器原来是求参数的,仔细算一下,应该不难,是可以实现的,根据公式波特率=Fosc/时钟数/(定时器溢出值-初值)/(32/2**SMOD)要计算最大波特率,则SMOD=1,(定时器溢出值-初值)最小=1,则波特率
- kknd21cn 嵌入式系统
- EMC测试基本环境要求-ISO 7637-2:2004
- 标准编号:ISO7637-2:2004标准名称:RoadvehiclesElectricaldisturbancesfromconductionandcouplingPart2:Electricaltransientconductionalongsupplylinesonly一般环境要求:4.2TesttemperatureandtestvoltageTheambienttemperatureduringthetest
- JackIeLc 汽车电子
设计资源 培训 开发板 精华推荐
- 使用 Analog Devices 的 LT1121CS8 的参考设计
- LTC3833EFE 演示板,VIN = 4.5V 至 24V,VOUT1 = 1.5V @ 15A,电感器 DCR 电流检测,89.4% 效率
- LGTISP--LGT单片机下载器
- 使用 NXP Semiconductors 的 MC9328MX21 的参考设计
- AD8657ACPZ-R7 4 mA至20 mA电流环路变送器的典型应用电路
- LT1021CCN8-5 精密 DAC 电压基准的典型应用
- 尺子书签
- LF60ABDT-TR 6V 极低压降稳压器的典型应用,带开关
- [多P视频测试]PCB+铜柱作为骨架的全协议双向快充移动电源
- LM3488 SEPIC EVAL