第六讲 Msp430单片机的复位中断和低功耗
MSP430系统时钟与低功耗讲义
低频振荡器VLO
内部集成了一个低频振荡器VLO,值是12kHz,频率受温度和 供电电压影响(范围4kHz~20kHz)。 一般用于对频率精度要求不高的场合。
MSP430系统时钟与低功耗
MSP430G2553引脚图
MSP430系统时钟与低功耗
举例
例1:将MSP430G2553的时钟设置为MCLK和SMCLK,且均为8MHz ,ACLK设为32.768kHz。(芯片外接32.768kHz手表晶振) DCOCTL=CALDCO_8MHZ; BCSCTL1=CALBC1_8MHZ;
void main(void) {
WDTCTL = WDTPW + WDTHOLD; //关闭看门狗定时器
GPIO_Init();
//初始化GPIO
_enable_interrupts();
//等同_EINT,使能总中断
while(1)
{
__delay_cycles(1000000); //与CPU时钟相关的长延时
例4:将MSP430G2553的时钟设置:MCLK为4MHZ,SMCLK为2MHZ, ACLK设为32.768kHz.(芯片外接32.768kHz手表晶振) DCOCTL=CALDCO_8MHZ; BCSCTL1=CALBC1_8MHZ; BCSCTL2|=DIVM_1+DIVS_2;
MSP430系统时钟与低功耗
MSP430系统时钟与低功耗
P1OUT ^= BIT0;
//LED亮灭状态改变
P1OUT ^= BIT6;
//LED亮灭状态改变
}
}
MSP430系统时钟与低功耗
void GPIO_Init()
一张图理解msp430f4371的低功耗模式
一张图理解msp430f4371的低功耗模式430有6中工作模式,在此不再累述,C程序中,使430单片机低功耗进入低功耗的语句非常简单,只需一句LPM0/LPM1/LPM2/LPM3/LPM4即可使其进入低功耗状态。
看了一天430的系统时钟模块和低功耗状态,发现最靠谱的东西还是官网数据手则,迷惑了一天,最终一张图片使思维稍微清晰。
图片如下:从上图得到自己的理解,虽然可能有误,但暂时不影响对430单片机的使用:LPM0:CPUoff置位------------------------>;CPU不能用,MCLK不能用,其他一切照旧活动;LPM1:CPUoff置位,SGC0置位----------->;CPU不能用,MCLK不能用,FLL+停止操作,而ACLK和SMCLK正常活动;LPM2:CPUoff置位,SCG1置位----------->;CPU不能用,MCLK、FLL+、DCOCLK不能用,但直流发生器、ACLK正常工作;LPM3:CPUoff置位,SCG1置位,SCG0置位---->;CPU不能用,MCLK,FLL+,DCOCLK,直流发生器不能用,但ACLK不能用;LPM4:CPUoff置位,SCG1置位,SCG0置位,OSCoff置位----->;LPM3的基础上使ACLK也不能用。
作者认为自己理解有误的地方,就是SCG1的控制范围,即其到底是控制直流发生器还是调制器还是控制FLL+的,由于找不到相关资料,只有勉强做如下理解:SCG1置位的时候,调制器不能工作,自然DCOCLK不能用了,同时FLL+也不能工作,但直流发生器是工作的,只有当SCG1和SCG0同时置位的时候直流发生器才停止工作,这个时候甭管FLL+还是DCOCLK都不能工作了,有可能SCG0对直流发生器也有部分控制作用,但不像对FLL+那样完全控制。
以上理解可能有误,但希望真正懂得高手路过此帖的时候请给予指正,在此谢过。
MSP430系列16位超低功耗单片机原理与实践
MSP430单片机的中断系统 GIE、CPUOFF、
中断请求
中断响应过程
将当前指令执行完 PUSH PC PUSH SR 如果有多个中断 发生,选择最高 优先级的中断 如果是单源中断 则清除中断标志, 否则中断标志保 持置位状态
OSCOFF、 SCG1、C、N、 V、Z清零, SCG0不变
中断向量地址中 的内容装入PC, 开始执行中断服 务程序 POP SR
概述
单片微型计算机 单片机的概念 单片机的特点 单片机的应用
MSP430系列单片机 MSP430系列单片机的特点 MSP430系列单片机命名规则 MSP430系列单片机选型
单片微型计算机:单片机的概念
微处理器的发展一方面是朝着面向数据运算、 信息处理等功能的系统机方向发展。系统机 以速度快、功能强、存储量大、软件丰富、 输入/输出设备齐全为主要特点,采用高级语 言编程,适用于数据运算、文字信息处理、 人工智能、网络通信等场合。 另一方面,在一些应用领域中,如智能化仪 器仪表、电讯设备、自动控制设备、汽车乃 至家用电器等,要求的运算、控制功能相对
MSP430 Roadmap
MSP430X11X系列
MSP430X12X系列
MSP430X13X系列
MSP430X14X系列
MSP430F15X/F16(1)X 系列
MSP430F15X/F16(1)X 系列
MSP430X41X系列
MSP430F43X系列
MSP430F44X系列
函数类型 函数名(形式参数表) 形式参数说明 { 局部变量定义 函数体语句 } [ 存储变量类型 ] interrupt [ 中断矢量变量 ] 函数类型 函数名(形式参数表) 形式参数说明 { 局部变量定义 函数体语句 }
系统复位、中断及工作模式-利尔达MSP430培训资料
系统复位、中断及工作模式-利尔达MSP430培训资料系统复位、中断及工作模式嵌入式研发中心复位电路的结构POR(Power-on reset)的产生:上电 RST出现低电平 SVS产生复位动作 PUC(Power-up clear)的产生: POR信号 WDT时间溢出看门狗密钥错误 FLASH操作密钥错误 BOR(Brownout Reset)的产生: BOR 模块产生 PUC BOR PORBOR时序POR和BORBOR: MCLK< 4Mhz Brown-out!系统复位后的状态RSR/NMI为复位状态 IO口为输入状态各模块和寄存器恢复为初始化的状态状态寄存器SR复位看门狗WDT为看门狗状态 FFFE的内容装入PC指针软件必须完成的工作初始化堆栈指针SP,一般为RAM的顶端根据应用的需要,初始化WDT 对模块初始化特别注意:看门狗、晶振失败、FLASH写入失败都可以引起 RESET复位电路的设计1. RESET脚直接通过电阻上拉----不建议采用此方式2. RESET脚采用RC复位电路3. RESET脚采用电压监控芯片适用于MSP430没有BOR电路的芯片可以确保用户控制器中满足所有的工作电压条件MCU才启动4. MSP430F20xx的RESET与SBW共用,电容不要过大Device Pins Flash/RA Timers Communicatio BOR Features M n F11x1 20 4k/256 A3 Comp_A 8k/256 A3 ADC10 F11x2 20 F12x 28 8k/256 A3 Comp_A USART F12x2 28 8k/256 A3 USART ADC10 F13x 64 16k/512 A3,B3 USART ADC12 F14x 64 60k/2k A3,B7(2)USART ADC12, MPY 64 32k/1k A3,B3 USART, I2C ADC12, (2)DAC12, (3)DMA F15x F16x 64 60k/10k A3,B7 (2)USART, ADC12, (2)DAC12, (3)DMA I2C All devices include watchdog timer (WDT) and basic clock system (BCS)MSP430中断种类系统复位 POR、PUC、BOR和SVS 非屏蔽中断NMI 晶振失败 FLASH失败可屏蔽中断 TA、BT、COMP、UART等中断矢量结构中断进入进入中断需要6个指令周期1. 当前运行的指令完成,PC指向下一条指令 2. PC压栈 3. SR压栈 4. 选择高优先级中断 5. 单元中断中断标志清除,多元中断需要软件清除 6. 除SCG0外,SR被清除,如果是低功耗,退出低功耗,GIE的清除关闭可屏蔽中断7.装载PC指针中断前中断后特别注意:进入中断后,SP指针指向堆栈中的SR. 可以在中断程序中修改0(SP)内容改变中断返回后 SR状态。
MSP430--低功耗模式
OscOff:复位则LFXT激活,置位且LFXT不用于MCLK或SMCLK时,
LFXT振荡器禁止--对应着ACLK。
CPUOff:复位则MCLK激活,置位则MCLK停止。
解释:
(1)POR:POWERONRESET.上电或复位信号都可以发生POR。
PUC:POWERUPCLEAR.POR可以出发PUC,另外看门狗的事件可以出
发PUC。
(2)AM:全部活动
LPM0:CPUOFF=1,CPU被禁止,即MCLK被禁止。
LPM1:CPUOFF=1,SCG0=1。CPU-MCLK禁止,且若DCO未用做
MCLK或SMCLK,则DCO禁止。
LPM2:CPUOFF=1,SCG1=1。CPU-MCLK禁止,SMCLK禁止。(DCO
未用作MCLK,SMCLK则自动禁止)
LPM3:CPUOFF=1,SCG1=1,SCG0=1.CPU-MCLK禁止,SMCLK禁
止,DCO禁止。
LPM4:CPUOFF=1,SCG1=1,SCG0=1,OSCOFF=1.全部禁止,包括
ACLK也禁止。
5.系统工作原理:单片机各个模块运行完全独立。定时器,IO,AD,看门
狗等都可以在主CPU休眠的状态下独立运行。
short),位于in430.h
同理要清除SR中某一位的话就用_BIC_Βιβλιοθήκη R();IFG标志位清除.
执行中断处理子程序。
执行RETI指令,中断返回。
SR出栈
PC出栈
[cpp]viewplaincopy在CODE上查看代码片派生到我的代码片
voidmain(void)
{
BCSCTL1|=DIVA_2;//ACLK4分频:由LFXT1CLK提供(32kHZ)
MSP430
MSP430MSP430一、上电复位POR 和上电清除PUC二、低功耗控制但系统时钟发生器基本功能建立之后,CPU内的状态寄存器SR中的SCG1、SCG2、OscOff、CpuOff是低功耗的重要控制位;系统工作模式一共有6种,1种活动模式和5种低功耗模式;可以通过设置控制位使MSP430进入低功耗模式,由中断唤醒CPU,在执行完中断服务程序之后再回到低功耗模式,也可以在执行中断程序的时候间接访问堆栈修改状态寄存器的值,这样中断程序执行完之后就会进入另外一种低功耗模式或者处于活动模式。
三、时钟模块(一)、MSP430F149有三个时钟输入源:1、LFXT1CLK:如果LFXTCLK没有作用于SMCLK、MCLK信号,可以用OscOff置位以禁止LFXT1CLK工作;2、XT2CLK:若XT2CLK没有作用于SMCLK、MCLK信号,可以用控制位XT2OFF 关闭XT2;3、DCO振荡器:MSP430F149的两个外部振荡器产生的时钟信号都可以经过1、2、4、8分频后用作系统主时钟MCLK;当外部振荡器失效后,DCO 振荡器会自动被选作MCLK 的时钟源;(二)、MSP430F149提供3三种时钟信号:1、ACLK----辅助时钟,一般用于低速外设,由LFXT1CLK信号分频而得;2、MCLK----系统通过主时钟,一般用于CPU和系统,由以上三个时钟源任意一个分频而得;3、SMCLK---主要用于高速外设,由XT2CLK+XT2CLK 或LFXT1CLK+DCO分频而得。
(三)、如何控制MSP430的DCOCLK频率?——时钟模块的控制由5个寄存器来完成1、DCOCTL:定义8总频率之一2、BCSCTL1:控制XT2CLK的开启与关闭;控制LFXT1CLK的工作模式(低频或高频,高频下需要接高频时钟源);控制ACLK分频。
3、BCSCTL2选择MCLK时钟源;选择MCLK分频;选择SMCLK时钟源;选择SMCLK时钟源分频。
MSP430低功耗
MSP430低功耗对于嵌入式处理器系统来说,低功耗设计有3个基本原则:工作频率和功耗成反比关系。
工作电压和功耗成正比关系。
工作模块数量和功耗成正比关系。
MSP430系列MCU具有强大的低功耗模式设计。
在不同的低功耗模式下,配置不同的时钟信号来降低CPU及工作模块的工作频率;选择性的关闭暂时不使用模块和相关的时钟信号来降低工作模块的数量以达到降低整机功耗的目的。
MSP430的5xx系列和6xx还支持用户设置内核电压,通过降低内核工作电压来降低功耗。
低功耗模式是MSP430的特色功能,一般情况下,MSP430分为6种工作状态,分别是活动状态(AM)、低功耗模式0(LPM0)、低功耗模式1(LPM1)、低功耗模式2(LPM2)、低功耗模式3(LPM3)和低功耗模式4(LPM4)。
对于5xx系列的产品带实时时钟RTC的信号还具备低功耗模式3.5(LPM3.5)和低功耗模式4.5(LPM4.5)。
根据不同的应用合理地选用低功耗模式可以有效地降低MSP430功耗。
图3-8是MSP430F21x1工作在1MHz对应于AM模式和低功耗模式下的电流消耗。
从图中可以看到低功耗模式下,电流消耗要远小于AM模式。
下面对各种工作模式做详细的介绍。
MSP430的低功耗模式是通过状态寄存器SR各位的配置来完成的,SR寄存器如表3-6所示。
与低功耗模式相关的是系统时钟控制位(SCG0)和(SCG1)、振荡器关闭/开启位(OSCOFF)和CPU关闭/开启位(CPUOFF)。
SCG0位用于关闭DCO的直流发生器,也就是关闭DCOCLK;SCG1位用于关闭SMCLK;OSCOFF位用于关闭MSP430的振荡器,包括LFXT1和XT2;CPUOFF位用于关闭CPU。
表3-6 SR寄存器Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8Reserved VBit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0SCG1 SCG0 OSCOFF CPUOFF GIE N Z C5种低功耗模式可以使用表3-7区分,表中显示了5种低功耗模式下,CPU)、SMCLK、ACLK和DCO振荡器的关断状MSP430的时钟信号MCLK(态。
单片机MSP430的极低功耗系统设计
单片机MSP430的极低功耗系统设计<P <B 关键词:极低功耗系统MSP430 低功耗管理<P <B 1 影响系统功耗的主要因素对于一个数字系统而言,其功耗大致满足以下公式:P=CV2f,其中C为系统的负载电容,V为电源电压,f为系统工作频率。
由此可见,功耗与电源电压的平方成正比,因此电源电压对系统的功耗影响最大,其次是工作频率,再就是负载电容。
负载电容对设计人员而言,一般是不可控的,因此设计一个低功耗系统,应该考虑到不影响系统性能前提下,尽可能地降低电源的电压和使用低频率的时钟。
下面对TI公司新出MSP430来具体探讨这个问题。
2 基于MSP430极低功耗系统的设计MSP430具有工业级16位RISC,其I/O和CPU可以运行在不的时钟下。
CPU功耗可以通过开关状态寄存器的控制位来控制:正常运行时电流160μA,备用时为0.1μA,功耗低,为设计低功耗系统提供了有利的条件。
图1是我们设计的以MSP430为CPU的“精密温度测试仪”(下面简称测试仪)。
该产品使用电池供电,体积小巧,携带方便。
(1)电源电压在使用时应该尽可能地选择最低的电源电压。
对于MSP430而言,可用的最低电压是很低的,最低可达1.8V。
我们使用TI公司推荐使用的3V。
通常的电源只提供5V 电压,因此,需要将5V电压由一个3V的稳压管降压后给CPU供电,也可以直接锂电池供电。
3V不是标准的TTL电平,因此,在使用时需要用接口电路使CPU的非TTL标准电平能与TTL标准电平的器件连接。
这些接口电路应该也是低功耗的,否则会造成一方面使用低电压降低了功耗,另一个方面使用额外的接口电路又增加了系统的功耗。
或者直接使用支持3V电压的外围芯片。
(2)时钟频率从低功耗的角度看,需要较低的频率,但是在实时应用中为了快速响应外部事件又需要有比较快的系统时钟。
这就需要系统具有两个高低不同的频率,在需要的时候可以在两个频率之间进行切换。
MSP430低功耗模式初识
MSP430低功耗模式:工作频率越低,工作电压越低,工作模块越少MCU功耗越少MCLK:系统主时钟一般为8MHz,供CPU和系统使用;SMCLK:子系统时钟32—768KHz,供外围模块使用;ACLK:辅助子时钟,由LFXT1CLK产生,提供外围模块使用DCO:整合的高速数控振荡器,用于CPU和高速外围设备的主时钟源状态寄存器SR的低功耗控制位:SCG1:系统时钟发生器控制位1(System clock generator 1)置1时关闭SMCLKSCG0:系统时钟发生器控制位0(System clock generator 0)置1时关闭DC发生器OSCOff:晶振控制位(Oscillator Off Bit)置1时关闭LFXT1振荡器CPUOff:CPU控制位(CPU Off Bit)置1时关闭MCLK,此时除了RAM内容、端口、寄存器保持外,CPU处于停止状态,由中断将CPU从此状态唤醒。
1.MSP430内部各模块运行是完全独立的:TA、TB、I/O端口、A/D、WDT等均可在CPU休眠的状态下独立运行,各个片内模块也可通过禁止相应寄存器中的控制位关闭。
2.只要改变了SR中的模式控制位,工作模式也立即改变;有关的模块也因为相应的时钟源禁止而被关闭。
3.改变模式不影响所有的I/O引脚及RAM/寄存器的值。
低功耗模式的进入与退出:在AM模式下。
按低功耗模式设定SR中的控制位,MSP430就进入设定的低功耗模式。
任意中断均可以唤醒处于低功耗模式的MSP430,即切换到AM活动模式。
低功耗退出过程:当处于低功耗模式下的MSP430,有N类型号的非屏蔽或可屏蔽中断源产生,满足响应条件,CPU由硬件完成下面的操作:1.入栈保护当前PC2.入栈保护当前SR3.清零SR(置GIE=0,屏蔽可屏蔽中断,并结束低功耗模式,切换到活动模式)4.从中断向量表取中断向量至PC5.转去执行中断服务程序同样的,中断程序执行完毕,执行到RETI返回指令时:1.出栈恢复SR和PC的值2.因为回复了SR的值,使MSP430回到原来的低功耗模式!如果希望改变MSP430返回的低功耗模式时,需要在中断响应程序中修改堆栈中的SR控制位的值,使MSP430进入活动模式或其它低功耗模式进入低功耗模式:汇编语言:BIS.W #LPMn,SRC语言:_BIS_SR(LPMn_bits); 或者LPMn。
MSP430微控制器低功耗设计方法分析
MSP430微控制器低功耗设计方法分析随着物联网和嵌入式系统的快速发展,对微控制器低功耗设计方法的需求越来越迫切。
MSP430微控制器作为一种低功耗微控制器,具有出色的性能和低功耗特性,逐渐被广泛应用于各种电池供电的设备中。
本文将以MSP430微控制器为例,深入探讨其低功耗设计方法。
在设计MSP430微控制器应用时,低功耗是一个重要的考虑因素。
为了最大程度地减少功耗,我们可以采取以下几种方法。
1. 优化算法设计:在编写程序时,我们可以通过优化算法来减少微控制器的工作负载和能耗。
例如,避免使用复杂的循环和浮点运算,改用简单的逻辑和整数运算,可以有效降低功耗。
2. 睡眠模式:MSP430微控制器具有多种睡眠模式,可以在不需要工作时进入低功耗状态。
通过选择合适的睡眠模式,可以最大程度地降低功耗。
在睡眠模式中,MSP430微控制器会关闭一些不必要的模块和电源,从而降低功耗。
3. 时钟管理:时钟是微控制器的核心,也是功耗的主要来源之一。
合理管理时钟可以有效减少功耗。
在MSP430微控制器中,可以通过调整时钟频率、选择更低功耗的时钟源以及使用MCLK、SMCLK和ACLK等不同的时钟模块来实现功耗优化。
4. I/O 管理:I/O 端口通常是微控制器的功耗主要负责者之一。
通过合理管理I/O 端口,可以降低功耗。
例如,及时关闭不需要的输入/输出端口,降低端口的驱动能力或适当使用外部中断等方法。
5. 采用低功耗模块:MSP430微控制器具有丰富的低功耗模块和外设,可以根据需求选择合适的模块来降低功耗。
例如,MSP430可以通过功耗优化的ADC模块、计时器模块和UART模块等,实现对外设的低功耗控制。
除了以上几种方法,还有一些其他的设计技巧可以帮助我们在低功耗条件下充分发挥MSP430微控制器的优势。
6. 电源电压调整:降低微控制器的电源电压可以有效减少功耗。
MSP430微控制器通常具有多种电源供电电压选择,可以根据应用需求选择合适的工作电压。
MSP430中断
MSP430中断中断源(中断分类)中断首先需要有中断源发出中断请求,并征得系统允许(屏蔽,优先权)后才会发生。
转去执行中断服务程序前需保护中断现场,执行完中断服务程序后应恢复中断现场。
MSP430有三种中断类型:系统中断,可屏蔽中断,不可屏蔽中断NMI。
不可屏蔽中断NMI不能被总中断使能位GIE控制,而是由特殊的标志位(NMIIE , ACCVIE , OFIE)来控制的。
NMI中断可由以下三种中断源产生:(1)当RST/NMI引脚配置为NMI模式,引脚上出现上升沿下降沿。
(2)Flash访问错误。
当Flash访问出错时,ACCVIFG被置位,当ACCVE被置位时,Flash;访问出错产生一个NMI事件。
(3)发生晶振失效。
当OFIE被置位时,晶振失效产生一个NMI事件。
中断处理从接受中断请求开始到开始执行中断服务程序的第一条指令,中断的准备过程需要6个周期。
(1)若CPU处于AM状态,则完成正在执行的指令;若CPU处于处于低功耗状态,则退出低功耗状态。
(2)把PC寄存器内容入栈。
(3)把SR寄存器内容入栈。
(4)如果同时有多个中断,则选择优先级最高的中断。
(5)如果中断是单源中断,则中断标志位自动复位;如果中断是多中断源,则需要中断服务程序复位。
(6)SR清零,结束低功耗模式。
由于GIE被清除,其他的中断被屏蔽。
因此,中断不能被嵌套。
(7)中断向量表被装入PC寄存器,并从该地址开始执行中断服务程序。
中断返回过程中断由RETI指令结束,从中返回需要消耗5个是种周期。
(1)将SR寄存器的值从堆栈弹出,恢复中断前的设置。
(2)将PC寄存器的值从堆栈弹出,程序从PC的地址执行。
中断标志位中断产生的时候,CPU会自动进入相应的中断服务程序。
当多种中断对应了一个中断源时,需要判断到底是哪个中断发生的时候就要用到IFG标识位。
通过读取IFG标识来确定是哪一种中断。
MSP430系列超低功耗16位单片机原理与应用
振荡器控制逻辑
LFXT1
振荡器控制 逻辑
XT2振荡器控
制逻辑
DCO振荡器
控制逻辑
MSP430-2002~2004 -
30
DCO频率的调节 频率的调节
MSP430-2002~2004 -
8
第一章习题
微处理器的发展方向是什么? 单片机的概念是什么? 单片机和我们通常所用的微型计算机有什么区别和联系? 单片机常见的领用领域有哪些? 如何理解MSP430系列单片机的“单片”解决能力? MSP430系列单片机最显著特性是什么? 如何理解MSP430系列单片机的低功耗特性? 为什么MSP430系列单片机特别适用于电池供电和手持设备? 如何理解MSP430系列单片机的强大处理能力?在开发环境方面, MSP430系列单片机和传统单片机相比,有哪些显著优势? 构成MSP430系列单片机的各类存储器有什么特点?各自适用于哪些场 合? MSP430系列单片机应用选型的依据是什么?
MSP430-2002~2004 -
23
本章小结
在结构上MSP430系列单片机集成了一部计算机的各个基本 组成部分。虽然其工作原理与普通微机并无差异,但 MSP430系列单片机在结构上更加突出了体积小、功能强、 面向控制的特点,具有很高的性能价格比。 MSP430系列单片机由CPU、存储器和外围模块组成,这些 部件通过内部地址总线、数据总线和控制总线相连构成单 片微机系统。 MSP430的内核CPU结构是按照精简指令集的宗旨来设计的 。具有丰富的寄存器资源、强大的处理控制能力和灵活的 操作方式。 MSP430的存储器结构采用了统一编址方式,可以使得对外 围模块寄存器的操作象普通的RAM单元一样方便、灵活。 MSP430存储器的信息类型丰富,并具有很强的系统外围模 块扩展能力。
MSP430低功耗模式
5种低功耗模式分别为LPM0~LPM4(LOW POWER MODE),CPU的活动状态称为AM(ACTVE MODE)模式。
其中AM耗电最大,LPM4耗电最省,仅为0.1uA。
另外工作电压对功耗的影响:电压越低功耗也越低。
系统PUC复位后,MSP430进入AM状态。
在AM状态,程序可以选择进入任何一种低功耗模式,然后在适当的条件下,由外围模块的中断使CPU退出低功耗模式,返回AM模式,再由AM模式选择进入相应的低功耗模式,如此类推。
工作模式的选择由状态寄存器SR中的SCG1、SCG0、OSCOFF、CPUOFF 位控制。
由于在CPU的头文件中对CPU内的各寄存器和模块的各种工作模式都作了详尽的定义,所以编程时尽可能的利用就是了。
如:要进入低功耗模式0,可在程序中直接写:LPM0; 。
进入低功耗模式4,可以写:LMP4;就可以了。
退出低功耗模式如下:LPM0_EXIT; //退出低功耗模式0LPM4_EXIT; //退出低功耗模式4MSP430的电压已经降到了3.3v,虽然不是最低的(arm的部分芯片内核工作电压降到了1.8v),但是这已经是比较低的了;MSP430比较出彩的地方一个是把一颗芯片分成了N个不同的模块部分,不用的部分功能模块可以关闭掉,电流近似为零;另一个出彩的地方是,可以有三个时钟源,并产生更多的内部可用工作频率,让内部各个模块工作在不同的频率,不用的时钟还可以关掉(具体参看上一节MSP430之系统时钟篇)。
后两种方法主要是通过软件的方式进行设置的,具体来讲,MSP430可以有6种不同的工作模式:设置其工作模式主要是设置寄存器SR的SCG0、SCG1、OscOff、CPUOff 位。
SCG0=1且DCOCLK没有用于MCLK和SMCLK时,直流发生器禁止;SCG1=1时,SMCLK禁止; CPUOff=1时,MCLK被禁止;只有CPUOff=1时,OscOff才可以=1,此时晶振被禁止。
msp430复位问题
MSP430单片机硬件知识-复位MSP430单片机是TI公司1996年开始推向市场的超低功耗微处理器,另外他还集成了很多模块功能,从而使得用一片MSP430 芯片可以完成多片芯片才能完成的功能,大大缩小了产品的体积与成本。
如今,MSP430单片机已经用于各个领域,尤其是仪器仪表、监测、医疗器械以及汽车电子等领域。
下面来说一下它的主要特点:(1)低电源电压范围,1.8~3.6V。
(2)超低功耗,拥有5种低功耗模式(以后会详细介绍)。
(3)灵活的时钟使用模式。
(4)高速的运算能力,16位RISC架构,125ns指令周期。
(5)丰富的功能模块,这些功能模块包括:A:多通道10-14位AD转换器;B:双路12位DA转换器;C:比较器; D:液晶驱动器;E:电源电压检测;F:串行口USART(UART/SPI);G:硬件乘法器;H:看门狗定时器,多个16位、8位定时器(可进行捕获,比较,PWM输出);I:DMA控制器。
(6)FLASH存储器,不需要额外的高电压就在运行种由程序控制写擦欧哦和段的擦除;(7)MSP430芯片上包括JTAG接口,仿真调试通过一个简单的JTAG接口转换器就可以方便的实现如设置断点、单步执行、读写寄存器等调试;(8)快速灵活的变成方式,可通过JTAG和BSL两种方式向CPU内装在程序。
关于他的内存器结构,在匠人的博客里已有详细的介绍,大家去看就是了。
在这里我主要说说MSP430单片机的复位吧。
MSP430的复位信号有2种:上电复位信号(POR)、上电清除信号(PUC)。
还有能够触发POR和PUC的信号:5种来在看门狗,1种来自复位管脚,1种来自写FLASH键值出现错误所产生的信号。
POR信号只在2种情况下发生:(1)微处理上电;(2)RST/NMI管脚上产生低电平时系统复位。
PUC信号产生的条件:(1)POR信号产生;(2)看门狗有效时,看门狗定时器溢出;(3)写看门狗定时器安全键值出现错误;(4)写FLASH存储器安全键值出现错误。
MSP430的低功耗事件驱动工作模式
MSP430的低功耗事件驱动工作模式MSP430系列单片机的各个模块都可以独立运行,如定时器、输入/输出端口、A/D转换、看门狗、液晶显示器等都可以在CPU休眠的状态下独立工作。
若需要主CPU工作,任何一个模块都可以通过中断唤醒CPU,从而使系统以最低功耗运行。
让CPU工作于突发状态可以充分利用CPU的低功耗性能。
通常,使用软件将CPU设定到某一低功耗模式,在需要时使用中断将CPU从休眠状态中唤醒,完成工作后又可以进入相应的休眠状态。
如:让CPU工作在LPM3状态,通过中断事件转换到AM活动模式,根据运行需要,又可以从AM状态进入相应的低功耗模式:LPM0/LPM3或LPM4。
系统的这些低功耗特性是靠系统对中断的响应来实现的。
系统响应中断的过程:(1)硬件自动中断服务。
包括PC入栈、SR入栈;中断向量赋给PC;GIE、CPUOFF、OSCOFF和SCG1清除;以及IFG标志位清除(单源中断标志)。
(2)执行中断处理子程序。
(3)执行RETI指令(中断返回),包括SR出栈;PC出栈。
例如:系统初始化完成后工作于低功耗模式0,中断事件触发到活动模式,中断处理结束后进入低功耗模式3。
;主程序……;初始化操作开始……;……;初始化结束BIS #GIE+CPUOFF, SR ; 主程序中设置低功耗模式0,LPM0;……;程序在这里停止;中断子程序…………;中断处理结束BIS #GIE+CPUOFF+SCG1+SCG0, 0(SP) ; 设置SR为低功耗模式3,LPM3RETI; 中断返回;系统进入低功耗模式3……如果主程序期待在中断返回之后继续执行某些操作,可以在中断处理子程序中改变SR的值为AM模式,系统中断退出后根据恢复的SR和PC的值,来执行设定的某些操作。
;主程序……;初始化操作开始……;……;初始化结束BIS #GIE+CPUOFF, SR ; 主程序中设置低功耗模式0,LPM0L1 操作1L2 操作2……;;中断子程序……;中断处理开始…………;中断处理结束BIS #GIE+CPUOFF, 0(SP) ; 设置SR为活动模式,AMRETI; 中断返回,系统进入活动模式……主程序执行到LPM0处停止执行,L1,L2等语句不执行。
MSP430单片机的中断
MSP430 单片机的中断
中断是MSP430 微处理器的一大特色,有效地利用中断可以简化程序和提高执行效率。
MSP430 的几乎每个外围模块都能够产生中断,为MSP430 针对事件(即外围模块产生的中断)进行的编程打下基础。
MSP430 在没有事件发生时进入低功耗模式,事件发生时,通过中断唤醒CPU,事件处理完毕后,CPU 再次进入低功耗状态。
由于CPU 的运算速度和退出低功耗的速度很快,所以在应用中,CPU 大部分时间都处于低功耗状态。
MSP430 的中断分为3 种:系统复位、不可屏蔽中断、可屏蔽中断。
(1)系统复位的中断向量为0xFFFE。
(2)不可屏蔽中断的中断向量为0xFFFC。
响应不可屏蔽中断时,硬件自动将OFIE、NMIE、ACCVIE 复位。
软件首先判断中断源并复位中断标志,接着执行用户代码。
退出中断之前需要置位OFIE、NMIE、ACCVIE,以便能够再次响应中断。
需要特别注意点:置位OFIE、NMIE、ACCVIE 后,必须立即退出中断相应程序,否则会再次触发中断,导致中断嵌套,从而导致堆栈溢出,致使程序执行结果的无法预料。
(3)可屏蔽中断的中断来源于具有中断能力的外围模块,包括看门狗定时器工作在定时器模式时溢出产生的中断。
每一个中断都可以被自己的中断控制位屏蔽,也可以由全局中断控制位屏蔽。
低功耗讲解
MSP430单片机低功耗控制与系统工作模式详解2011-01-22 11:14CPU内状态寄存器SR中的SCG0、SCG1、OscOff和CPUOff位是重要的低功耗控制位。
只要任意中断被响应,PC和SR就被压入堆栈保存,在中断程序执行的过程中,SR 被清除(因为SR被清除,其GIE也被清除,所以中断嵌套被禁止,如果手动将GIE置位,将不论优先级的将该中断服务程序中断),CPU进入AM模式,中断处理之后,又可以恢复先前的工作方式(在中断处理子程序执行期间,通过间接访问堆栈数据,可以操作这些位;这样允许程序在中断返回(RETI)后,以另一种功耗方式继续运行)。
各控制位作用如下:SCG1:当SCG1复位时,使能SMCLK;SCG1置位则禁止SMCLK。
SCG0:当SCG0复位时,直流发生器被激活(相当于DCO被激活),只有SCG0被置位且DCOCLK信号没有用于MCLK或SMCLK,直流发生器才能被禁止。
OscOff:当OscOff复位时,LFXT晶体振荡器激活,只有当OscOff被置位且不用于MCLK 或SMCLK时,LFXT晶体振荡器才能被禁止。
CPUOff:当CPUOff复位时,用于CPU的时钟信号MCLK被激活,当CPUOff置位时,MCLK 停止。
控制位SCG1、SCG2、OscOff和CPUOff可由软件配置成6种不同的工作模式:1种活动模式和5种低功耗模式。
如下表所示:工作模式控制位CPU状态、振荡器及时钟活动模式(AM)SCG1=0SCG0=0OscOff=0CPUOff=0CPU处于活动状态MCLK活动SMCLK活动ACLK活动低功耗模式0 (LPM0)SCG1=0SCG0=0OscOff=0CPUOff=1CPU处于禁止状态MCLK被禁止SMCLK活动ACLK活动低功耗模式1 (LPM1)SCG1=0SCG0=1OscOff=0CPUOff=1CPU处于禁止状态如果DCO未用作MCLK或SMCKL,则直流发生器被禁止,否则仍保持活动MCLK被禁止SMCLK活动ACLK活动低功耗模式2 (LPM2)SCG1=1SCG0=0OscOff=0CPUOff=1CPU处于禁止状态如果DCO未用作MCLK或SMCKL,自动被禁止MCLK被禁止SMCLK被禁止ACLK活动低功耗模式3 (LPM3)SCG1=1SCG0=1OscOff=0CPU处于禁止状态DCO被禁止,直流发生器被禁止MCLK被禁止CPUOff=1 SMCLK被禁止ACLK活动低功耗模式4 (LPM4)SCG1=XSCG0=XOscOff=1CPUOff=1CPU处于禁止状态DCO被禁止,直流发生器被禁止所有振荡器停止工作MCLK被禁止SMCLK被禁止ACLK被禁止MSP430单片机低功耗控制与系统工作模式详解2011-01-22 11:14CPU内状态寄存器SR中的SCG0、SCG1、OscOff和CPUOff位是重要的低功耗控制位。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本讲主要内容
MSP430单片机的复位中断和低功耗模 式
中断方式的按键控制实现
MSP430F6638功能框图
系统复位、中断及工作模式
BOR/POR/PUC
复 位 电 路 结 构
BOR(Brownout Reset)的产生
器件上电;
RST/NMI管脚配置为复位模式时,管脚上的
低电平信号;
状态寄存器SR复位
看门狗WDT为看门狗状态 FFFE的内容装入PC指针
上电后软件必须完成的工作
初始化堆栈指针SP,一般为RAM的顶端 根据应用的需要,初始化WDT
对模块初始化
特别注意:看门狗、晶振失败、FLASH写入
失败都可以引起RESET
复位电路的设计
1. RESET脚直接通过电阻上拉----不建议采用此方式
实验思考题
1、Lab8和Lab2的执行结果有何不同?为什么?
2、在中断服务程序中,如果把下面的语句注释掉,程 序是什么执行结果?为什么? P4IFG &= ~BIT0; // P4.0 IFG cleared
Lab9 动动手,P4.1中断方式控制P4.6 的LED
MSP430F6638 Key
P4.1
2. RESET脚采用RC复位电路
3. RESET脚采用电压监控芯片
适用于MSP430没有BOR电路的芯片
可以确保用户控制器中满足所有的工作电压条件MCU才
启动
4. MSP430F5xx/6xx的RESET与SBW共用,电容不要过大
MSP430中断种类
系统复位 POR、PUC、BOR和SVS 不可屏蔽中断 NMI 晶振失败 FLASH失败 DMA 可屏蔽中断 TA、BT、COMP、UART等 外设
R LED
P4.6
R
本讲主要内容
MSP430单片机的复位中断和低功耗模 式
中断方式的按键控制实现
思考题
1、MSP430系列单片机的POR、PUC和BOR信 号分别是如何产生的? 2、简述MSP430系列单片机复位后的状态及 软件必须完成的工作。 3、MSP430单片机工作模式有哪些位控制? 4、简述MSP430单片机低功耗设计的基本原 则。
不论对于内核还是对于各外围模块,选择尽可能低的运行频率,如果不影响功能应设计自
动关机
本讲主要内容
MSP430单片机的复位中断和低功耗模 式
中断方式的按键控制实现
Lab8 按键中断方式控制led灯的 亮灭
MSP430F6638 Key
P4.0
R LED
P4.5
R
参考例程:msp430x54x_P1_02
谢 谢 各 位!
实现代码(2)
#pragma vector=PORT4_VECTOR __interrupt void Port_4(void) { P4OUT ^= BIT5; // P4.5 = toggle P4IFG &= ~BIT0; // P4.0 IFG cleared }
实验现象
1、每按S7按键一次,LED5状态反转一次;
看门狗定时器工作在看门狗模式的溢出;
看门狗操作密码错误; Flash存储器操作密码错误; 电源管理模块操作密码错误;
POR信号产生时,一定会引起PUC,但POR信号不一 定是由PUC信号产生
BOR时序
BOR和POR
系统复位后的状态
RST/NMI为复位状态
IO口为输入状态 各模块和寄存器恢复为初始化状态
Lab8 按键中断方式控制led灯的亮灭
实现代码(1)
#include <msp430.h> int main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer P4DIR |= BIT5; // Set P4.5 to output direction P4REN |= BIT0; // Enable P4.0 internal resistance P4OUT |= BIT0; // Set P4.0 as pull-Up resistance P4IES |= BIT0; // P4.0 Hi/Lo edge P4IFG &= ~BIT0; // P4.0 IFG cleared P4IE |= BIT0; // P4.0 interrupt enabled __bis_SR_register(LPM4_bits + GIE); // Enter LPM4 w/interrupt __no_operation(); // For debugger }
ORG -- 定义中 断向量所在的地 址 DW -- 放置中断 矢量
MCU工作模式
MSP430X5XX/6XX
时 钟 模 块 结 构
MCU工作模式
汇编模式下工作模式的转换
C语言下工作模式的转换
各种模式下的转换
各种模式下的功耗
低功耗模式下功耗的计算
低功耗原则
最大化LPM3的时间,用32KHz晶振作为ACLK时钟,DCO用于CPU激活后的突发短暂运行
用接口模块代替软件驱动功能。 用中断控制程序运行 用可计算的分支代替标志位测试产生的分支 用快速查表代替冗长的软件计算 在冗长的软件计算中使用单周期的CPU寄存器 避免频繁的子程序和函数调用
尽可能直接用电池供电
设计外设时的常规低功耗原则:
将不用的FETI输入端连接到VSS
JTAG端口TMS、TCK和TDI不要连接到VSS CMOS输入端不能有浮空节点,将所有输入端接适当的电平
MSP430中断优先级
中断矢量结构
中断向量表位置从FFFFh至FF80h 最多64个中断向量
中断进入
中断返回
中断编程
汇编语言程序 例子
C语言例子
#pragma vector=TIMERA0_VECTOR __interrupt void Timer_A (void) { P5OUT ^= 0x02; CCR0 += 50000; } TIMERA0_VECTOR是TA的CCR0中断 矢量地址,不同的中断服务程序有不同的 地 址,详见:msp430.h库文件
MSP430系列单片机 原理与应用
东南大学信息科学与工程学院
2016.09
第六讲 MSP430单片机的复位、中断和低功耗
模式
2016-10-21
本讲复位、中断和工作模式( User’s Guide Ch1 )
上述内容请自己参照User’s Guide中的相应章节学习。
从LPM3.5或者LPM4.5模式唤醒
一个软件的BOR事件
POR(Power On Reset)的产生
BOR信号;
电源管理SVS产生;
一个软件的POR事件
BOR信号产生时,一定会引起POR,但BOR信 号不一定是由POR信号产生
PUC(Power up Clear)的产生
POR信号;