第六讲 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)时钟频率从低功耗的角度看,需要较低的频率,但是在实时应用中为了快速响应外部事件又需要有比较快的系统时钟。
这就需要系统具有两个高低不同的频率,在需要的时候可以在两个频率之间进行切换。
- 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信号;