STM8L的低功耗模式的配置

发布者:Lianai最新更新时间:2018-09-10 来源: eefocus关键字:STM8L  低功耗模式  配置 手机看文章 扫描二维码
随时随地手机看文章

低功耗可以说是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工作完成后继续停机。


停机的代码为:




DeInit外设;

关闭外设时钟;

逐个配置GPIO的电平

CLK_HaltConfig(CLK_Halt_FastWakeup,ENABLE);   //快速唤醒后时钟为HSI

PWR_FastWakeUpCmd(ENABLE);                    //开启电源管理里的快速唤醒

PWR_UltraLowPowerCmd(ENABLE);                 //使能电源的低功耗模式(这句话的作用很大)

RTC_ITConfig(RTC_IT_WUT, ENABLE);             //使能RTC中断

CLK_HSICmd(DISABLE);                          //关闭内部高速时钟(之前内核是工作在HSI下的)

//sim();                                      //关闭所有中断,手册上说最好关闭所有中断在进入停机模式,但是好像这条指令并不会关闭RTC中断,我也没用这行代码

halt();                                       //到这一步执行完后,内核时钟就停止了,进入停机模式

WakeUp_Init();                                //rtc唤醒后PC指针在这里,从这里开始执行,所以我们要在这里添加初始化各种外设和外部芯片的代码



最后我测出来实际进入休眠模式后电流5~6uA左右,和理想的还是有一点差距,因为我们的板子上带有稳压芯片,消耗量一部分的电流。


这里有网友分享的低功耗模式下电流的数据:


http://bbs.21ic.com/icview-670756-1-1.html


关键字:STM8L  低功耗模式  配置 引用地址:STM8L的低功耗模式的配置

上一篇:STM8L低功耗设置
下一篇:Atmega168 延时函数晶振频率的设置方法

推荐阅读最新更新时间:2024-03-16 16:13

什么是msp430低功耗模式?如何唤醒msp430低功耗模式
  单片机中,功耗最低的单片机要MSP430单片机,这是做手持设备最优选择,MSP430中,用到5种低功耗,LPM0,LPM1,LPM2,LPM3,LPM4,这五种低功耗各种解释如下 :   CPU的活动状态称为AM(ACTVE MODE)模式。其中AM耗电最大,LPM4耗电最省,仅为0.1uA。另外工作电压对功耗的影响:电压越低功耗也越低。 系统PUC复位后,MSP430进入AM状态。在AM状态,程序可以选择进入任何一种低功耗模式,然后在适当的条件下,由外围模块的中断使CPU退出低功耗模式,返回AM模式,再由AM模式选择进入相应的低功耗模式,如此类推。   CPU的结构:16个寄存器R0-R15,16位算数逻辑单元ALU和一
[单片机]
什么是msp430<font color='red'>低功耗</font><font color='red'>模式</font>?如何唤醒msp430<font color='red'>低功耗</font><font color='red'>模式</font>
STM8L驱动I2C类型的12864
原理 之前没有操作过12864这种类型的屏,但是,操作过其他类型的,原理都是相通的。12864是拥有128x64像素点这类屏幕的称号吧。屏幕有64行,128列;每个汉字是16x16,所以一个这样的屏,最多可以显示4x8的汉字或者8x16的字符。 我使用的是不带字库的I2C接口的屏幕,主芯片是ST7656。这样的屏,只能写,不能读。先配置屏幕,然后通过字模制作软件制作出待显示内容的像素数字,最后,通过数据线传送给屏幕显示。了解了原理后,接下来就根据主芯片的数据手册进行配置屏幕就好了。 硬件连线 CS:片选 RST: 复位 RS:数据或命令选择 SDA:I2C数据线 SCL:I2C时钟线 I2C采用的是软件模拟的 底层写操
[单片机]
STM32F0库函数初始化系列:GPIO配置
1 void GPIO_Configuration(void) 2 { 3 RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE); 4 RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE); 5 6 /* Configure ADC Channel as analog input */ 7 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 ; 8 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN; 9 GPIO_InitStructur
[单片机]
Nvidia承认部分配置其芯片笔记本仍有故障
Nvidia本周三向美国证券交易委员会提交的“Form 10-Q”文件中称,某些配置其芯片的笔记本电脑继续出现“故障”问题。   Nvidia称,虽然它没有继续看到使用Nvidia产品的笔记本电脑的“异常故障率”上升,但是,某些笔记本电脑仍然受到影响。Nvidia表示,它将继续对这些受影响的产品进行测试和调查。Nvidia补充说,我们不能肯定我们不会在其它MCP(媒体与通讯处理器)或者GPU(图形处理器)产品中发现故障。   Nvidia去年7月2日宣布,它计划支出一次性费用解决与某些版本的笔记本电脑图形芯片故障有关的问题。后来,Nvidia在2009财年第二季度支出了1.96亿美元用于用户质量保证、维修、退货、更换等与
[半导体设计/制造]
STM32CubeMx(Keil5)开发之路——1配置第一个项目
运行环境 Windows10 STM32CubeMX___Version 5.0.0 Keil5(MDK5)___Version 5.15 简介 本例程主要搭建第一个项目,并且完成最基本的项目所需配置,后续的教程都基于这篇教程。 STM32CubeMx配置 新建项目 搜索自己芯片的型号 点击选择封装形式 选择外部晶振 可以根据需求调节各个总线的时钟频率(就具体情况而定) DEBUG选项选择 Serial Wire (4线烧录,CLK,DIO,VCC,GND) 你会看到芯片引脚会占用这几个引脚,就是烧录用的CLK和DIO 点击 Project Manager 修改项目名称 修改项目保存路径 选择编写工具
[单片机]
STM32CubeMx(Keil5)开发之路——1<font color='red'>配置</font>第一个项目
STM32 的优先级NVIC配置
1、NVIC优先级介绍 2、NVIC优先级比较 提条件1:组别优先顺序(第0组优先级最强,第4组优先级最弱):*强调内容***NVIC_PriorityGroup_0 NVIC_PriorityGroup_1 NVIC_PriorityGroup_2 NVIC_PriorityGroup_3 NVIC_PriorityGroup_4 前提条件2:“组”优先级别 “抢”占优先级别 “副”优先级别 前提条件3:同一组优先级别中,不同的抢占级别之间,其中一抢占级别正在做事,另外抢占级别不能打断他;(即”同一组优先级下的中断源间,没有中断嵌套“) 前提条件4:不同组优先级别间,依据优先级强弱,优先级别高的组的中断源可以打
[单片机]
STM32 的优先级NVIC<font color='red'>配置</font>
疑似vivo Xplay7配置曝光:4K屏、首发骁龙845真旗舰
   尽管vivo自家的X系列手机一经推出就是大卖,凭借这一款机型就可以在3000元机型市场占领一席之地,但其实vivo一直都有推出真旗舰手机Xplay的传统,16年底发布的Xplay6就是最好的代表,比如6GB的运存、双曲面屏幕+双摄,骁龙820处理器等等。   从时间线来看,Xplay6发布也有一年多的时间了,按道理来说,Xplay7也应该好来了。其实从去年下旬,就有不少关于这款手机爆料的消息,曾有网友曝光过一组疑似vivo Xplay7的渲染图和“内部谍照”,从照片给出的信息来看,vivo Xplay7选择直接在屏幕上挖孔,实现了100%屏占比设计……   日前,有网友就再次曝光了这款手机的一些消息,同样是来自“内部培训图
[手机便携]
FPGA 重复配置和测试的实现
从制造的角度来讲,FPGA测试是指对FPGA器件内部的逻辑块、可编程互联线、输入输出块等资源的检测。完整的FPGA测试包括两步,一是配置FPGA、然后是测试FPGA,配置FPGA是指将FPGA通过将配置数据下载编程使其内部的待测资源连接成一定的结构,在尽可能少的配置次数下保证FPGA内部资源的测试覆盖率,配置数据称为TC,配置FPGA的这部分时间在整个测试流程占很大比例;测试FPGA则是指对待测FPGA施加设计好的测试激励并回收激励,测试激励称为TS。 通常来说,要完成FPGA内部资源的完整测试需要针对不同的待测资源设计多种配置图形,多次下载到FPGA,反复施加激励和回收测试响应,通过对响应数据的分析来诊断故障。因此,用于FPG
[测试测量]
FPGA 重复<font color='red'>配置</font>和测试的实现
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved