MSP430的5种低功耗模式及IO端口介绍
第五讲 MSP430单片机工作模式
第五讲 MSP430单片机工作模式
一、430单片机的工作模式
430单片机由5种工作模式:活跃模式(Active mode)、低功耗模式1-4 (Low Power Mode 1-4,LPM1-4)。 考虑单片机的不同工作模式,是从下面3方面出发的: • 超低功耗 • 速度和数据吞吐量 • 独立外设流耗最小化 不同的工作模式,这些方面或有很大不同。
进位标志位。当一个字节或字运算的结果产生一个进位时置位,并且 当没有出现进位时清除。
Z
C
针对基本时钟系统的运行模式
430被启用的中断事件将MSP430 从任一低功耗模式中唤醒。程序流如下: • 进入中断处理例程:
– PC 和SR 被存储在堆栈上
如上图示,超快速的1μs DCO启动使基于MSP430的系统能 够尽量长时间地保持低功耗模式,从而延长电池使用寿命。 DCO可全面实现用户编程。
四、应用举例
修改第二件中的示例,main函数改为: int main (void) { // stop watchdog timer WDTCTL = WDTPW + WDTHOLD; // Set LED P1OUT &= ~0x01; // Setup Blinky P1DIR = 0x01; // initialize timer interrupt Init(); // loop forever so that we have // time to try the buttons for(;;) LPM0;
低功耗应用的原则 通常,减少功耗的最重要的因素是使用MSP430 时钟系统来大大增加LPM3 内的时间。具有一个实时时钟功能并且所有中断有效的LPM3 功耗的典型值少于 2μA。一个32kHz 手表晶振用于ACLK 并且CPU 由DCO(通常关闭)计时,此 DCO 有一个1μs 的唤醒时间。 • 使用中断来唤醒处理器并控制程序流。
5种低功耗模式及IO端口介绍
MSP430-5种低功耗模式MSP430-5种低功耗模式作者:佚名MSP430来源:不详点击数:794 更新时间:2007-8-45种低功耗模式分别为LPM0~LPM4(LOW POWER MODE),CPU的活动状态称为AM(ACTVEMODE)模式。
其中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-IO端口介绍MSP430-IO端口介绍作者:佚名MSP430来源:不详点击数:2137 更新时间:2007-8-4MSP430的端口有P1、P2、P3、P4、P5、P6、S和COM(型号不同,包含的端口也不仅相同,如MSP430X11X系列只有P1,P2端口,而MSP430X4XX系列则包含全部上述端口),它们都可以直接用于输入/输出。
MSP430系统中没有专门的输入/输出指令,输入/输出操作通过传送指令来实现。
端口P1`P6的每一位都可以独立用于输入/输出,即具有位寻址功能。
常见的键盘接口可以直接用端口进行模拟,用查询或者中断方式控制。
由于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种低功耗模式下,MSP430的时钟信号MCLK(CPU)、SMCLK、ACLK和DCO振荡器的关断状态。
msp430各功能模块的介绍
各个时钟信号源介绍如下:1、LFXT1CLK:低频/高频时钟源。
可以外接32768Hz的时钟芯片或频率为450KHz~8MHz的标准警惕或共振器。
2、XT2CLK:高频时钟源。
需要外接两个震荡电容器。
可以外接32768Hz的时钟芯片或频率为450KHz~8MHz的标准警惕或共振器和外部时钟输入。
较常用的晶体是8MHz的。
3、DCOCLK:内部数字可控制的RC振荡器。
MSP430单片机时钟模块提供3个时钟信号以供给片内各部分电路使用,这3个时钟信号分别是:(1)ACLK:辅助时钟信号。
ACLK是从LFXT1CLK信号由1/2/4/8分频器分频后得到的。
由BCSCTL1寄存器设置DIV A相应位来决定分频因子。
ACLK可提供给CPU外围功能模块做时钟信号使用。
(2)MCLK:主时钟信号。
MCLK是由3个时钟源所提供的。
它们分别是:LFXT1CLK、XT2CLK、和DCO时钟源信号。
MCLK主要用于MCU和相关模块做时钟。
同样可设置相关寄存器来决定分频因子及相关设置。
(3)SMCLK:子系统时钟。
SMCLK由2个时钟源信号提供,他们分别是XT2CLK 和DCO。
如果是F11或F11X1系列单片机,则由LFXT1CLK代替XT2CLK。
同样可设置相关寄存器来决定分频因子及相关的设置。
低频振荡器LFXT1:LFXT1支持超低功耗,它在低频模式下使用一个32768Hz的晶体。
不需要任何电容因为在低频模式下内部集成了电容。
低频振荡器也支持高频模式和高速晶体,但连接时每端必须加电容。
电容的大小根据所接晶体频率的高低来选择。
低频振荡器在低频和高频模式下都可以选择从XIN引脚接入一个外部输入时钟信号,但所接频率必须根据所设定的工作模式来选择,并且OSCOFF位必须复位。
高频振荡器LFXT2:LFXT2作为MSP430的第二晶体振荡器。
与低频相比,其功耗更大。
高频晶体真大气外接在XIN2和XOUT2两个引脚,并且必须外接电容。
一张图理解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基本外设-低功耗模式资料
与
和LPM4.5,后两种模式并非全部系列都具有),通过不同
应
程度的休眠,可降低系统功耗。
用
• MSP430系列单片机各个模块运行完全独立,定时器、输入
/输出端口、A/D转换、看门狗、液晶显示器等都可在CPU
休眠状态下运行。系统能以最低功耗运行,当需要CPU工
作时,任何模块都可以通过中断唤醒CPU,完成工作后又
术
时钟源被禁止而被关闭。
与
➢ 任意中断均可唤醒处于低功耗模式的MSP430,使
应
MSP430切换到AM活动模式,即退出低功耗模式
用
。
在低功耗模式下,所有的I/O引脚和RAM寄存器将保
单 片
持不变。可以通过开中断后用中断事件来唤醒LMP0 到LMP4。
机 系统响应中断的过程
技
➢ 硬件自动中断当前服务
低功耗模式0 (LPM0)
SCG1=0, SCG0=0, OSCOFF=0, CPUOFF=1
CPU禁止MCLK禁止 定 时 器 、 ADC、 DMA、 UART 、 SMCLK活动ACLK活动 WDT、I/O、比较器、外部中断、
DCO可用 FLL可用 RTC、串行通信、其他外设
低功耗模式1 (LPM1)
术
OSCOFF和CPUOFF这4个控制位的配置来关闭系统
与
时钟,使MSP430单片机从活动模式进入到相应的低
应
功耗模式。再通过中断方式从各种低功耗模式回到活
用
动模式。
SCG1、SCG0、 OSCOFF、CPUOFF
活动模式
低功耗模式
中断
§3.2 低功耗模式
单
片
注意:在任何一种低功耗模式下,CPU都被关闭,程序将停止 执行,直到被中断唤醒或单片机复位。因此在进入任何一种低
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铁电产品的路线图原理及功能介绍
行速率,如果满速跑没有这幺低功耗。有些场景我们的机器其实大部分都在
待机,等待定时采样一下或者外部传感器变化了出发采集,那幺待机模式能
做到0.5uA,这个时候其实部分外设是不工作了,是与运行模式的主要差
别。如果有些仪器甚至不会周期性工作,必须等待用户操作了之后才进行工
作,那平时进入关闭模式做到0.1uA就很小很小了,可能耗电速度赶不上电
池自放电的速度了。上面的这些模式需要我们用的时候根据场景灵活安排,
如果上来就最好频率甚至超频运行,使能不需要的管脚输出以及外设,想做
到超低功耗也是很难的。
快速唤醒
MSP430唤醒时间不到1us,对使用的实时性影响较小。
各种外设
这里总的来说,在2553上就有16位比较器(位长越长可设置的定时时间
越长),IO引脚触摸功能,UART、SPI、I2C等常见串行通信接口、10位
6、多达24个支持触摸感测的I/O引脚
7、USCI\UART\SPI\I2C
8、用于模拟信号比较功能或者斜率模数(A/D)转换的片载比较器
9、带有内部基准、采样与保持以及自动扫描功能的10位200ksps模数
(A/D)转换器
超低功耗
低功耗是430最大亮点,运行模式也只有230uA,当然限制了1MHz的运
MSP430铁电产品的路线图原理及功能介绍
MSP430特性:
1、低电源电压范围:1.8V至3.6V
2、超低功耗
运行模式:230μA(在1MHz频率和2.2V电压条件下)
待机模式:0.5μA
关种节能模式
4、可在不到1μs的时间里超快速地从待机模式唤醒
5、两个16位Timer_A,分别具有三个捕获/比较寄存器
MSP 430基础IO口
学习过51单片机的同学都知道,IO口的操作是所有单片机系统的基本操作,单片机作为一个核心的运算和处理器件必须能够对外部的信号做出反应,那么如何让MSP430得知外部信号变化和做出反应就是我们今天要学习的主要内容这里还是以MSP430G2553单片机为例MSP430单片机的IO口都有以下几个相关的寄存器:1、PnDIR:输入输出方向寄存器0-输入1-输出2、PnOUT:输出寄存器0-低电平1-高电平3、PnIN:输入寄存器这是一个只读寄存器用来读取外部电平状态4、PnIFG:中断标志寄存器0-没有中断请求1-有中断请求该寄存器有8个标志位,对应相应的引脚是否有待处理的中断请求这8个中断标志共用一个中断向量,中断标志不会自动复位,必须软件复位外部中断时间的时间必须>=1.5倍的MCLK时间以保证中断请求被接受5、PnIE:中断启用寄存器0-不启用中断1-启用中断6、PnIES:中断触发边沿选择寄存器0-上升沿中断1-下降沿中断7、PnSEL:功能选择寄存器0-选择引脚为普通IO口1-选择引脚为外围模块功能(第二功能引脚)8、PnSEL2:功能选择寄存器2和PnSEL共同作用选择不同功能,当选择引脚作为普通IO口使用时PnSEL和PnSEL2都应该清零(默认)9、PnREN:上拉/下拉电阻使能寄存器0-禁止1-使能OK,以上就介绍完了和IO口相关的寄存器,是不是觉得好多,头晕?不过头晕之余看看描述,还是能够理出一些思绪的。
本篇我们只讨论IO作为普通输入输出口使用所以像PnSEL、PnSEL2、PnIE寄存器就直接写入0x00就好了,或者说可以默认不作修改。
像PnIFG 和PnIES寄存器那就和我们本篇完全无关了。
让我们看看MSP430G2553这个单片机的管脚是如何分布的吧,好让大家有个IO口的存在概念:图片太小?符号密密麻麻看不清?OK,cloud用表格给大家划分一下最简单的引脚图:VCC MSP430G2553GNDP1.0P2.6 / XINP1.1P2.7 / XOUTP1.2TESTP1.3/RSTP1.4P1.7P1.5P1.6P2.0P2.5P2.1P2.4P2.2P2.3看了这张图大家应该都明白了我们的MSP430G2553单片机只引出了P1口和P2口。
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单片机工作模式
• 应该只在需要时打开外设。
• 使用低功耗集成外设模块来取代软件启动的功能。例如Timer_A 和Timer_B 可自动生成PWM 并且捕捉外部时序,而无需CPU 资源。 • 计算出的转移和快速表查询应该用来取代标志轮询和长软件计算。 • 由于开销,应避免频繁的子例程和函数调用。 • 对于较长的软件例程,应使用单周期CPU 寄存器。
上图描述了状态寄存器位。 下面我们给予细致的解释。
位
V
说明
溢出位当一个算术运算的结果溢出带符号变量范围时,这个位被置位。 ADD(.B)MADDC(.B) 在以下情况时置位: 正+正=负 负+负=负 否则复位 SUB(.B)MSUBC(.B)MCMP(.B) 在以下情况时置位: 正-负=负 负-正=正 否则复位
CPU 关闭。当置位时,关闭CPU。
红色标出的四个位和CPห้องสมุดไป่ตู้工作模式相关。
GIE
通用中断使能。当置位时,启用可屏蔽中断。当置位时,所有可屏蔽 中断被禁用。
N
负标志位。当一个字节或者字运算的结果为负时置位,当结果不为负 时清除。 字运算:N 被设定为结果的位15 的值。 字节运算:N 被设定为结果的位7 的值。 零标志位。当一个字节或字运算的结果为0 时置位,当结果不为0 时 清除。
设置中断返回后的状态寄存器
__intrinsic unsigned short _BIC_SR_IRQ(unsigned short); 清零中断返回后的状态寄存器
在头文件msp430g2553.h中: #define CPUOFF (0x0010u) #define OSCOFF (0x0020u) #define SCG0 (0x0040u) #define SCG1 (0x0080u) #define LPM0_bits #define LPM1_bits #define LPM2_bits #define LPM3_bits #define LPM4_bits (CPUOFF) (SCG0+CPUOFF) (SCG1+CPUOFF) (SCG1+SCG0+CPUOFF) (SCG1+SCG0+OSCOFF+CPUOFF)
MSP430的低功耗设计
MSP430低功耗设计经常有人询问,MSP430的低功耗是如何实现的,该如何设计,功耗能做到多少?其实这些问题都不是简单能够回答的,一个系统的的低功耗设计,不仅仅是依靠MCU就能实现的,当然MCU 是非常重要的部分。
下面我就针对MCU的低功耗设计谈谈我的一些心得。
一般来讲MCU的功耗取决于三个方面,低功耗控制,低功耗工作模式选择,低功耗软件设计,本文将针对这三个方面进行阐述。
一、MSP430的低功耗控制1.1低功耗的基本原则针对MCU而言,有几个基本的原则,●工作频率越低,MCU的功耗越小我们在看数据手册的时候,经常会看到一个参数就是每MHZ消耗的功耗。
例如:100uA/1MHz,m 1.8v。
通常情况MCU会有三个参数,分别是运行模式功耗,空闲模式功耗和掉电模式功耗。
从参数可以看出,MCU的功耗直接和你使用的工作频率有关,在进行低功耗设计的时候一定要选择合适的工作频率。
●工作电压越低,MCU的功耗越小从上个例子也可以看出,MCU的功耗直接和工作电压相关。
厂家一般给出的都是MCU的最低工作电压,事实上很多产品由于外设原因,电源原因,都不是工作在MCU的最低工作电压上的,数据手册上的参数仅供对比参考,不能作为绝对值进行计算。
●工作的外设越少,MCU的功耗越小这个条比较好理解。
MCU的外设使用越多,功耗就越大。
另外,还有一个比较重要的原则,就是在FLASH中运行比在RAM中运行消耗更多的功耗。
所以如果MCU的RAM够大,可以把最常用的主循环和处理函数放在RAM中运行,这样可以节约大于30%的功耗。
注1:STM没有提供测试电压的参数,这个指标就无实际意义。
从上表可以看出,各个厂家提供的参数都不是在同样的环境测得的,各位同学在使用时要进行甄别,不要只盯着数字看。
1.3MSP430的低功耗设计针对如上的三条,MSP430都做了比较好的低功耗设计。
有的同学只是简单的对比数据手册上的技术参数来判定一个MCU的功耗情况,其实并不是很了解MCU的系统是如何实现低功耗的设计的。
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) ;。
MSP430教程3:MSP430单片机硬件知识
MSP430教程3:MSP430单片机硬件知识MSP430单片机是TI公司1996年开始推向市场的超低功耗微处理器,另外他还集成了很多模块功能,从而使得用一片MSP430 芯片可以完成多片芯片才能完成的功能,大大缩小了产品的体积与成本。
如今,MSP4 30单片机已经用于各个领域,尤其是仪器仪表、监测、医疗器械以及汽车电子等领域。
下面来说一下它的主要特点:(1)低电源电压范围,1.8~3.6V。
(2)超低功耗,拥有5种低功耗模式(以后会详细介绍)。
(3)灵活的时钟使用模式。
(4)高速的运算能力,16位RISC架构,125ns 指令周期。
(5)丰富的功能模块,这些功能模块包括:A:多通道10-14位AD转换器;B:双路12位D A转换器;C:比较器;D:液晶驱动器;E:电源电压检测;F:串行口USART(UART/SPI);G:硬件乘法器;H:看门狗定时器,多个16位、8位定时器(可进行捕获,比较,PWM输出);I:DMA控制器。
(6)FLASH存储器,不需要额外的高电压就在运行种由程序控制写擦欧哦和段的擦除;(7)MSP430芯片上包括JTAG接口,仿真调试通过一个简单的JTAG接口转换器就可以方便的实现如设置断点、单步执行、读写寄存器等调试;(8)快速灵活的变成方式,可通过JTAG和BSL两种方式向CPU内装在程序。
关于他的内存器结构,在匠人的博客里已有详细的介绍,大家去看就是了。
在这里我主要说说MS P430单片机的复位吧。
MSP430的复位信号有2种:上电复位信号(POR)、上电清除信号(PUC)。
还有能够触发POR 和PUC的信号:5种来在看门狗,1种来自复位管脚,1种来自写FLASH键值出现错误所产生的信号。
POR信号只在2种情况下发生:(1)微处理上电;(2)RST/NMI管脚上产生低电平时系统复位。
PUC信号产生的条件:(1)POR信号产生;(2)看门狗有效时,看门狗定时器溢出;(3)写看门狗定时器安全键值出现错误;(4)写FLASH存储器安全键值出现错误。
低功耗讲解
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位是重要的低功耗控制位。
MSP430F169
MSP430F169中文资料:内部结构,引脚图及特点介绍MSP430F169 为16-Bit RISC 架构,最高运算速度8MIPS 之单芯片微控制器,为目前业界专为低功耗应用需求,所设计的微控制器。
广泛应用在计步器、血糖计、三用电表、功率计等可携式产品应用上。
MSP430F169 芯片脚位如【图1】所示。
有五种省电工作模式,从LPM3 待机模式(消耗2.6μA @ Vcc = 3 )回复到正常工作模式( 消耗500μA @ Vcc = 3 ,1MIPS )小于6μs 的唤醒时间、且允许双外部工作频率输入、内建整合多款低功耗外围模块[17],若能再配合适当韧体程控,有相当出色优异的低功耗表现。
采用von-Neumann 结构设计共享内存地址总线(Memory address bus , MAB)及(Memory data bus , MDB),其所有内存位置,如特殊功能缓存器(SFRs)、Flash memory、RAM 或是众多模拟数字外围模块等,皆映像至同一寻址区块【图3】。
因此不需经由RAM 就能直接在Flash 内以bit、byte 及word 直接执行与存取[18]。
MSP430F169内部架构示意图如【图2】所示。
其内部各模块功能特色如下所列:1. 60KB + 256Byte可低电压作动的Flash模块(read 1.8 V、write2.7 V)可作为控制器韧体程序代码和数据的存取。
2KB 随机存取内存(RAM),在LPM4待机模式下(消耗0.5μA @ Vcc = 3),储存在RAM内的数据仍可保持。
2. 相当具弹性的工作频率系统,内建一组内部基本RC震荡频率DCO (Digitally-controlled oscillator )当外部电源供应给芯片工作电压为3.6 V时,最大可运作到8 MHz,但会随着芯片工作温度、电压而有所飘移。
另外允许两个独立外部工作频率输入,可串接的振荡器频率范围为一组LFXT1CLK(可外接低/高频振荡源):32.768KHz~8MHz及另一组XT2CLK(仅可外接高频震荡源):450KHz~8MHz。