STM8L低功耗调试总结

2019-11-14来源: 51hei关键字:STM8L  低功耗  调试总结

STM8L低功耗调试


资料准备

功耗数据目标

实现低功耗

资料准备


在调试STM单片机相关功能时,习惯性的进入到STM官方论坛进行资料下载。调试STM8功耗也不例外,找到STM8L的应用笔记,选择最热,先看看官方提供的STM8入门文档,入门资料可以选择中文或者英文(STM8L和STM8AL入门)。

在这里插入图片描述

资料里面有一段话,对功耗调试相当重要:

6.6 不使用的 I/O 和特性

微控制器都是为多种应用设计的,通常一个应用不会使用 100 % 的微控制器资源。

为了避免不必要的功率消耗 (对电池供电应用特别重要),同时提高 EMC 性能,闲置时

钟、计数器或 I/O 都不应浮空。 I/O 应该外部强制 (上拉或者下拉到闲置 I/O 引脚),并且不使用的功能应被 “ 冻结 ” 或禁用。


或者,不用的 I/O 可以编程为推挽 “ 低 ”,以使它们保持在一个指定的电平,而且不使用外部元件。但是在这种情况下,上电期间直到 I/O 完成配置前, I/O 都没有驱动。这将导致少量额外的功耗,同时可能不适用于在对功耗非常敏感的应用中。


功耗数据目标


查看数据手册的低功耗特性(Low power features)可以了解到,STM8有5种功耗模式,如果让MCU待机,最低功耗可以达到350nA,这是相当的小!

5 low power modes: Wait, Low power run

(5.1 µA), Low power wait (3 µA), Active-halt

with RTC (1.3 µA), Halt (350 nA)

文档继续往下看,翻到Electrical parameters页,可以看到对运行功耗的描述,比如CPU运行1MHZ的速率,功耗大约470uA。

The run from RAM consumption can be approximated with the linear formula:

IDD(run_from_RAM) = Freq * 90 µA/MHz + 380 µA


目标确定,运行时可以低至470uA,待机可低至350nA。


实现低功耗


实现低功耗其实就是进入Halt模式,三个步骤(超级简单哦)。

1.配置好IO口,还不知道的,看上文中不使用的 I/O 和特性的描述。

2.PWR_UltraLowPowerCmd(ENABLE); //使能电源的低功耗模式

3.halt();//进入Halt模式

睡眠过后,外部中断可唤醒(The wakeup is triggered by an external interrupt or

reset)

关键字:STM8L  低功耗  调试总结 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic479985.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:STM8的停机模式
下一篇:STM8L Active-halt模式下的低功耗调试

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

stm8l051 halt之后外部中断唤醒问题
最近用到stm8l051 halt,在halt之后开启了外部中断,有时灵,有时不灵,设置下降沿触发,但是按键(低有效)放开了才会从HALT退出,最后发现在进去外部中断的时候一直在外部中断里面不退出。在外部中断程序里面把端口的外部中断和端口使能的外部中断功能关闭,问题解决,可以在下降沿从halt退出。1、开启halt,其他代码省略,只贴halt部分:    /* 禁止TIM3 */    TIM3->SR1 = (uint8_t)(~(uint8_t)TIM3_IT_Update);    CLK_PeripheralClockConfig
发表于 2019-12-05
STM8L052低功耗模式
Stm8L系列单片机的低功耗有五种模式:§ wait模式§ Lowpower run模式§ Lowpower wait模式§ Active-haltwith full RTC模式§ Halt模式最低功耗的就是就是halt模式。这里也主要总结一下如何进入halt模式,进入以后可以通过什么方式唤醒,以及有很多客户会关心的如何自动唤醒。Halt模式进入很简单,执行一条halt指令,调用库函数也就是halt()就行了。但是进入前要注意把所有的中断挂起标志给清除掉。要是不清零又恰巧有中断标志的时候进入该模式也会被立马唤醒。进入这种模式,所有的外设全都关闭了,所有时钟关闭。这时候它自己是醒不过来的,只能靠掐人中(给个外部中断)或者重新复活
发表于 2019-12-05
STM8L读写EEPROM(24LC64)
使用24LC64(24XX64)是低功耗应用的EEPROM,存储容量 8K byte(64K bit),IIC 最大时钟频率400 KHz(24FC64达到1MHz),低功耗CMOS技术:工作电流 1 mA(典型)、 待机电流 1 μ A(典型),32字节的页写缓冲器,超过100万擦/写周期,数据保存>200年。24C02只有8字节的页写缓冲器,操作的地址只有8位,而24LC64操作的地址包含高8位和低8位。两者的数据手册去区别如下:1、AT24C02页写时序:2、24LC64页写时序:STM8L的程序设计如下:(1)数据的页写操作:(2)数据的连续读取:
发表于 2019-12-03
STM8L读写EEPROM(24LC64)
记一次stm8l程序跑飞
项目使用stm8l051f3做主控,CC2500做数据接收,不发送。跑飞的现象就是,刚开始能运行,经过一段未知长度的时间,有可能是3分钟,有可能是30分钟,指示灯不再闪烁,中断按键单片机无反应。接入调试器发现跑到了一个非常大的地址,已经超过了mcu的内部flash空间。可以确定是程序跑飞。经验是:程序跑飞,查条件语句是否都有做处理。程序跑飞,查内存溢出。查了好久,查出是内存溢出导致。因为发送端发送的数据固定是32字节,所以在接收端只开辟了一个32字节的buffer去读取收到的数据
发表于 2019-12-02
STM8L052C6T6液晶LCD驱动过程
; for (counter = 0; counter <= LCD_RAMRegister_13; counter++)    {        LCD->RAM[counter] = 0xff;    }}下面着重记录一下踩过的坑:LCD_Init();函数里面的最后一个参数是LCD_VoltageSource_Internal还是LCD_VoltageSource_External官方STM8L-DISCOVERY的原理图上[object Object]R25这个0R电阻没有焊接,所以代码里使用的是
发表于 2019-12-02
STM8L052C6T6液晶LCD驱动过程
stm8l151低功耗程序架构
; AT24C256_Init();    RTC_Config();    PWR_FastWakeUpCmd(ENABLE);  // 快速唤醒使能    PWR_UltraLowPowerCmd(ENABLE);// 超低功耗    System_StatusCheck();//系统模式判断     enableInterrupts();     while(1){                if(采集模式
发表于 2019-12-02
小广播
何立民专栏 单片机及嵌入式宝典

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

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved