微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 终于搞定STM8S的活跃停机电流11uA

终于搞定STM8S的活跃停机电流11uA

时间:11-10 来源:互联网 点击:
如果你象其它单片机一样,开启了AWU,然后来一句halt();

那么此时的电流为200uA左右,到此差不多心灰意冷,STM8S这么差劲儿!

仔细阅读《STM8S系列MCU功耗管理》,它的电源分为MVR和LPVR,也搞不懂ST的科学家们为什么单片机在halt()时直接变为LPVR供电算了,非要手动设一下,通过设置内部时钟寄存器CLK_ICKR 的REGAH位可实现此功能

CLK_SlowActiveHaltWakeUpCmd(ENABLE);

经过这么一整,电流有改进,在69uA,和官方的PDF的68uA很接近,但仍不能满足电池供电需求,官方PDF活跃停机电流为11uA@5V 9uA@3.3V,再仔细读,原来必须要关闭FLASH,只是关闭了FLASH启动要慢几个us,这个无所谓了,只要不是秒级的,对我的应用无所谓,所以这儿还必须在halt()前先启用活跃停机时关闭flash选项,FLASH_CR1 的AHALT位置1

这里要特别注意,在《STM8S参考手册》中文参考手册中,描述如下

AHALT:活跃停机(Active halt)模式下掉电
0:当MCU在活跃停机模式时FLASH处于掉电模式
1:当MCU在活跃停机模式时FLASH处于运行模式

所以这儿要是信了中文PDF,可能你将会和我一样,要多折腾30分钟,如果你执行 电流就变成了11uA

void Flash_OFF_act_halt(void){
FLASH->CR1 |= 0x04;
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top