低功耗可以说是stm8l系列单片机的核心特色了。假设假设我们有一个温度传感器设备,他处于某种很特殊的地方,只能使用电池,而且我们很难去更换,那么低功耗就显得尤为重要。那么继续假设我们这个温度传感器不需要一直工作,只需要1小时采集一次数据就行了,也就是说,一个小时内,我们这个传感器只工作1秒钟,那么剩下的59分59秒怎么办?也许有的同学就会说了,while(1)循环啊,这种回答就很没有灵性。都不需要工作了,我们还关机不就行了,让它一小时启动一次,测量完就继续关机。那么就可以让电池里的电物尽其用。stm8l就有一个停机指令halt(),执行这条指令后,内核时钟停止工作,就相当于关机了。
但是并不是停机了,整个电路中的电流消耗就达到了最小!
第一:
虽然MCU是停机了,但是电路板还有其他的芯片在工作,它们仍然在消耗电量,所以我们在停机前应该要把其他芯片给关闭(可以通过特定的指令或者片选线)。条件好的可以直接用切断它们的电源。
第二:
我是这样理解的:进入停机模式后,只是MCU中最耗电的内核部分被关了,而所有寄存器和内存中的值是保持不变的,所以它的外设还在消耗电量,所以我们要在停机之前把开启的外设给关了。这里要注意一点:外设开启时是先开时钟再设置寄存器,关闭时先清除寄存器再关闭时钟。我是这样理解的:操纵一个外设的寄存器肯定是需要时钟的,如果我们先把时钟给关了,那么还怎么操作寄存器呢,如果光关了时钟,不清寄存器的相应位,那么外设还处于“静态耗电”的状态。在研究低功耗的过程中,我被这个坑了好久。关于这一点的实例可以参考这篇博客:
http://blog.csdn.net/qq_25186745/article/details/52777375
第三:
关于IO口的电平,这个是非常重要的一点,和之前提到的外设一样,GPIO也是一种外设,但是特殊的是,这个外设是和芯片外部直接打交道的,如果GPIO外部接了个上拉电阻,而你在停机之前设置的IO口是低电平的,那么电流不就通过电阻,流到IO口里来了,比如正常的说接了个10k的上拉电阻,接到3.3v电压上,那么电流就是330uA,这个值可不小呢,stm8l在停机时极限最小电流好像能达到0.4uA。那么你这个电路就是因为这个电阻,停机电流比别人大了将近800倍了,那么假如你的产品能待机1年,人家待机800年,这还怎么比?所以IO口是绝对不能被忽视的。stm8l芯片复位以后所有引脚都是浮空输入模式,理论上悬浮空输入时IO口的状态为高阻态是最省电的,那么我们只要把所有IO都DeInit就可以了。但是事实上不是,我把没有用到的管脚全部推挽输出高电平或低电平,不用的外部晶振的引脚要改为上拉输入才省电,外部有上拉下拉电阻的引脚分别推挽输出高电平和低电平,一般电路中上拉电阻比较多(比如IIC的总线外部都有上拉的)。和外部芯片相连的引脚都推挽输出低电平,因为外部芯片断电后所有引脚都是高阻态或接地的吧,如果你弄个高电平,就可能会有电流流过去。
在实际的项目中我们采用的方法是进入停机模式后,只有RTC时钟在工作,然后RTC每隔一段时间唤醒一次MCU,MUC工作完成后继续停机。
关键字:STM8Lhalt() 低功耗
引用地址:
STM8Lhalt()低功耗mode
推荐阅读最新更新时间:2024-03-16 16:15
MSP430G2:低功耗模式下的IO学习
MSP430最大的特点是超低功耗,本次学习的是超低功耗模式下的IO操作。 /********************************************************** * 超低功耗频率 1.5KHZ * P1.0有1/100的周期激活 * 超低功耗的范例 * ACLK = VL0, MCLK = VLO/8 ~1.5kHz, SMCLK = n/a,主时钟选择超低功耗,超低频率的内部晶振的8分频, * VLO:Internal Very-Low-Power Low-Frequency Oscillator 内部的超低功耗,低频率振荡器 * BCSCTL3 是 Basic clock syst
[单片机]
【超低功耗系列二】低功耗设计应用考虑
在这篇文章里我们来分享一下如果一个项目有低功耗的需求,那在这个项目中如何去做芯片的选型、与MCU相关的低功耗系统设计考虑(硬件考虑和软件考虑及系统考虑),也就是从项目的角度出发如何做低功耗设计的考虑因素。 整体来说,按照你的应用需求会先选择一颗芯片,现在假设我们选好了芯片,基于应用需求,需要做低功耗设计,降低功耗是需要软件和硬件协同工作才能解决的。 从芯片选型开始说,有一些设计大家可能沿用原先项目中使用过的低功耗芯片,在此基础上做低功耗设计,不断从软件和硬件角度来降低功耗,最终看能不能达到我们的需求,如果达不到,再换其他的芯片,还有一些情况,我们可能要完全从头去选一个MCU芯片,一般这时候还是要看项目需求,要求做到的工作,再加上休
[单片机]
从内核构架和制作工艺着手,了解工业互联网中低功耗设计
ARM9性能不够?Cortex-A8成本偏高?528MHz主频的Cortex-A7是否能填补空缺呢?若528MHz的主频略有欠缺,那800MHz主频的Cortex-A7是否能打消您的疑虑呢? 微电子行业的高速发展,MCU的内核也在迅猛发展,工程师们对MCU的选型也提出了更高的功能和性能方面的需求。嵌入式MCU选型主要是以性能和外围功能为主。下面我们来主要看下Cortex-A7和Cortex-A8的性能和外围功能的区别。 图1 ARM发布的内核构架时间 首先,我们了解下ARM Cortex-A系列内核的发布时间。 我们从图1,可以看出Cortex-A8发布的时间很早,是属于ARMv7-A架构的第一款Cortex
[嵌入式]
华虹NEC在0.18微米EEPROM平台上推出超低功耗IP
纯晶圆代工厂上海华虹NEC电子有限公司(以下简称“华虹NEC”)日前宣布,公司的0.18微米嵌入式EEPROM(电可擦除只读存储器)工艺平台上推出超低功耗EEPROM IP。 针对RFID、电子护照以及各种非接触式智能卡的需求,华虹NEC在0.18微米嵌入式EEPROM工艺平台上进一步推出超低功耗IP。该IP具有单元面积小,功耗低,速度快,可靠性强的优点,能满足产品在信息安全、低功耗、高速运作的要求。
[焦点新闻]
STM32使用UCOSII支持低功耗模式
在不在系统的裸奔的软件中,使用RTC+STOP模式很容易实现低功耗模式,但是在UCOS之类的操作系统,实现这一模式就有点麻烦,最大的问题是任务切换是无法控制的,经常出现唤醒之后程序跑飞的情况。 首先,要把休眠的代码段放在低优先级任务中,不一定是系统自带的空闲任务,也可以是用户自定义的最低优先级的任务。 其次,在休眠代码的前后加上两个指令: //=================================================================================== OSSchedLock(); //禁止任务调度 while(1) { .....//休眠代码RTC+STOP P
[单片机]
超低功耗单片机MSP430F413实现的智能遥控器设计
引言 目前市场上常见的无线遥控器多数为四键和十二键,主要用于汽车防盗系统、家庭防盗系统及遥控玩具等方面,这些应用简单、实用、成本低。但对于一些工程中需要距离在100米以上,控制或设定一些数据时,并要求一个遥控器对多于12个甚至上百个设备时,上述遥控器对操作人员就不方便,而且系统性能不够稳定。鉴于上述情况我们便提出在此基础上,采用单片机编写地址,通过操作键设置,液晶显示遥控器的输出。同时对耗电量、多个控制的设定、便于携带、操作方便及性能稳定等的严格要求,于是便设计开发出一种新型智能遥控器。该型遥控器以TI公司的超低功耗单片机 MSP430F413为微处理器,配有低功耗3位液晶显示器EDS812A,还有传输比很高的光,整个系统采用锂
[单片机]
低功耗工业互联网网关解决方案
ARM9性能不够?Cortex-A8价格偏高?528MHz主频的Cortex-A7是否能填补空缺呢?若528MHz的主频略有欠缺,那800MHz主频的Cortex-A7是否能打消您的疑虑呢? 微电子行业的高速发展,MCU的内核也在迅猛发展,工程师们对MCU的选型也提出了更高的功能和性能方面的需求。嵌入式MCU选型主要是以性能和外围功能为主。下面我们来主要看下Cortex-A7和Cortex-A8的性能和外围功能的区别。 图1 ARM发布的内核构架时间 首先,我们了解下ARM Cortex-A系列内核的发布时间。 我们从图一,可以看出Cortex-A8发布的时间很早,是属于ARMv7-A架构的第一款Cortex-A系列
[网络通信]
低功耗电源的电感选择
script language=javascript src="/data/js/10.js" /script script type=text/javascript /script script type=text/javascript src="http://pagead2.googlesyndication.com/pagead/show_ads.js" /script script src="http://pagead2.googlesyndication.com/pagead/js/r20101117/r20110307/show_ads_impl.js" /script script google_pro
[电源管理]