所用系统:XP SP3
开发软件:IAR for STM8 1.40
手上有两个项目,在用户没进行操作时,系统均要进入低功耗模式。两个项目分别用STM8L101及STM8L151。两个项目的系统运行时钟均为8MHz(内部高速时钟),均用锂电池供电。
对于STM8L151,芯片手册上说,进入活跃停机状态时,单片机功耗为0.8uA,我在程序中找开了自动唤醒功能,30s唤醒一次;在用户无操作时间达到30S时,就通过Halt()进入低功耗模式。但发现功耗不低,有125uA左右。因为系统用的是电池供电的,这么高的功耗,一个电池供不了几天,后来查了一下技术手册,原来不用的管脚要设置一下,我全都设置为推挽输出低,但有两个管脚必须得注意的,与外部晶振相连接的两个管脚,如果不使用外部晶振,即要设置为输入方式。
下载程序,用福录克表的微安档进行测量,为1.8uA,很接近芯片手册上给出的值了。把电池拔掉,一个106的电容也能给系统供十几秒的电。这个项目就完善的结束了。
现在来说说另一个项目,芯片用的是STM8L101,20个脚的封装,没有外部晶振的连接管脚,故不用管这两个脚的配置。本来想用停机模式进入低功耗的,但出现有时无法唤醒的情况。所以改用活跃停机功能,但进入活跃停机状态时,功耗不是一般的高啊,有时达到一百二三十个uA,有时为七十多uA,有时又能达到三十多uA。但停留在七十多uA的居多。没有的管脚已经设置了,不知哪里出了问题。
经过不停的查看原理图及调试,最终还是发现了问题。项目里有用STM8的管脚作为触摸环的管脚,当过入活跃停机模式时,触摸管脚处于不定状态。可能是这个问题导致低功耗时电流过高的,在程序时添加了两行代码,第一行,在进入低功耗前,把触摸环的管脚初始化为推挽输出低,第二行,在唤醒后,再次再管脚初始化为触摸环的管脚。
下载程序,用福录克表的微安档进行测量,为0.8uA,也很接近芯片手册上给出的值了。
此项目也到此结束了。
但这里还有一个问题,就是有唤醒时,初始化为触摸管脚时,不能对触摸环或触摸按键过行触摸,否则将出现不灵敏的现象。
引用: zhaojun_xf 发表于 2016-2-16 09:28
看看这个帖子吧:http://blog.sina.com.cn/s/blog_a3e565100102wo46.html
所用系统:XP SP3开发软件:IAR ...