1706|0

2781

帖子

417

TA的资源

五彩晶圆(中级)

楼主
 

MSP430教程11:MSP430单片机低功耗结构 [复制链接]

当系统时钟发生器基本功能建立之后,CPU内状态寄存器SR的SCG1,SCG0,CPUOFF,OSCOFF位是重要的低功耗控制位。只要任意中断被响应,上述控制位就被压入堆栈保存,中断处理之后,又可恢复先前的工作方式。在中断处理子程序执行期间,通过间接访问堆栈数据,可以操作这些控制位;这样允许程序在中断返回(RETI) 后,以另一种功耗方式继续运行。
        各控制位的作用如下:
SCG1: 复位,使能SMCLK;置位,禁止SMCLK。
SCG0: 复位,激活直流发生器,只有SCG0置位,并且DCOCLK没有被用作MCLK或SMCLK时,直流发生器才能被禁止。
OSCOFF:复位,激活LFXT1,只有当OSCOFF被置位并且LFXT1CLK不用于MCLK或SMCLK时,FLXT1才能被禁止;当使用晶体振荡器关闭选项OSCOFF时,需要考虑晶体振荡器的启动设置时间
CPUOFF:复位,激活MCLK;置位,关闭MCLK。

       控制位SCG1、SCG0、CPUOFF、OSCOFF可由软件配制成六种不同的工作模式:

工作模式                 控制位                   CPU状态、振荡器及时钟

                                 SCG1=0                   CPU活动
                                 SCG0=0                   MCLK活动
      AM                      CPUOFF=0              SMCLK活动
                                 OSCOFF=0              ACLK活动

                                 SCG1=0                   CPU禁止
      LPM0                   SCG0=0                   MCLK禁止
                                 OSCOFF=0                SMCLK活动
                                 CPUOFF=1               ACLK活动

                                 SCG1=0                   CPU禁止
                                                         MCLK禁止
      LPM1                  SCG0=1      如果DCOCLK位用作MCLK或SMCLK,则直流发生器禁止,
                                                  否则,仍然活动
                                 OSCOFF=0             SMCLK活动
                                 CPUOFF=1               ACLK活动

                                 SCG1=1                   CPU禁止
                                            如果DCO未被用作MCLK或SMCLK,自动禁止
                                 SCG0=0                   MCLK禁止         
      LPM2                    OSCOFF=0             SMCLK禁止     
                                 CPUOFF=1             ACLK活动

                                 SCG1=1                 CPU禁止
                                                    DCO被禁止,直流发生器被禁止
                                 SCG0=1                   MCLK禁止
      LPM3                    OSCOFF=0             SMCLK禁止
                                 CPUOFF=1             ACLK活动

                                 SCG1=1                   CPU禁止
                                 SCG0=1                   DCO被禁止,直流发生器被禁止
      LPM4                OSCOFF=1              所有振荡器停止工作
                                                       MCLK、SMCLK禁止
                                CPUOFF=1               ACLK禁止



低功耗的设计技巧问题



1.LPM4:在振荡器关闭模式期间,处理机的所有部件工作停止,此时的电流消耗最小。此时只有在系统上电电路检测到低点电平或任一请求异步响应中断的外部中断事件时才会从新工作。因此在设计应含有可能需要用到的外部中断才采用这种模式,否则发生不可预料的结果。

2.LPM3:在DC发生关闭期间,只有晶振是活动的。但此时设置基本时序条件的DC发生器的DC电流被关闭。由于此电路的高阻设计,使功耗被抑制。当从DC关闭到启动DC需要一段时间(ns~us)

3.LPM2:在此期间晶振和DC发生器是工作的,所以可以实现快速启动

4.LPM1:在此期间振荡器已经工作,所以不存在启动延时问题

_BIS_SR(LPM3_bits)           _BIC_SR_IRQ(LPM3_bits)
LPM3                                 LPM3_EXIT



系统响应中断过程:



1.硬件自动中断服务
a.PC入栈
b.SR入栈
c.中断向量赋给PC
d.GIE、SCG1、CPOOFF和OSCOFF清楚
e.IFG标志位清除(单源中断标志比如WDTIFG

2.执行中断处理子程序

3.执行RETI指令

4.SR出栈

5.PC出栈

低功耗应用
void main(void)
{
     WDTCTL=WDT_ADLY_1000;
     IE1 | = WDTIE;
     P1DIR | = 0X01;
     _EINT();
     for(;;)
       {
             LPM3;
             _NOP();
       }      
}

interrupt[WDT_VECTOR]   watchdog_timer(void)
{
     P1OUT ^ = 0X01;
}

 
点赞 关注(1)
个人签名

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表