OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子全套STM32开发资料,上千讲STM32视频教程,RT1052教程免费下载啦...
查看: 905|回复: 2

stm8s 低功耗模式 始终在3mA以上,困扰!求帮忙

[复制链接]

  离线 

32

主题

224

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
464
金钱
464
注册时间
2014-8-24
在线时间
28 小时
发表于 2018-10-16 23:32:09 | 显示全部楼层 |阅读模式
5金钱



之前手生,帖子一不小心发到stm32板块去了,
麻烦各位大神移步看一下
http://www.openedv.com/forum.php?mod=viewthread&tid=280861&extra=

我的halt模式始终在3mA以上。

谢谢!

最佳答案

查看完整内容[请看2#楼]

好了,问题找到了,不在于软件配置。在于硬件。 我是3.3V电源输入的,直接连到了芯片电源端。 但是硬件前端还接了一个ams1117,5V转3.3V的。 3.3v除了供电,还连了1117的输出端。 看了一下1117的芯片内部图,虽然是输出端,但还是有灌电流。 我把这个片子拆掉就好了
找一份喜欢的工作,这样每天工作的8个小时是快乐的。 找一个喜欢的人,这样每天工作之外的16个小时也是快乐的。
回复

使用道具 举报

  离线 

32

主题

224

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
464
金钱
464
注册时间
2014-8-24
在线时间
28 小时
 楼主| 发表于 2018-10-16 23:32:10 | 显示全部楼层
好了,问题找到了,不在于软件配置。在于硬件。 我是3.3V电源输入的,直接连到了芯片电源端。 但是硬件前端还接了一个ams1117,5V转3.3V的。 3.3v除了供电,还连了1117的输出端。 看了一下1117的芯片内部图,虽然是输出端,但还是有灌电流。 我把这个片子拆掉就好了
找一份喜欢的工作,这样每天工作的8个小时是快乐的。 找一个喜欢的人,这样每天工作之外的16个小时也是快乐的。
回复

使用道具 举报

  离线 

32

主题

224

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
464
金钱
464
注册时间
2014-8-24
在线时间
28 小时
 楼主| 发表于 2018-10-17 10:55:33 | 显示全部楼层
这两天在调stm8s003的halt模式。

需求非常简单,什么外设都不要,上电进入省电模式,3s钟后醒来输出几个低电平。然后再进入省电模式,再3s后醒过来。。。。循环。
电路也很简单,什么外围器件也没有(原理图上的LED已经拆掉)。
本以为把stm8的功耗管理笔记.pdf读一遍就搞定的事,调了3个晚上了,一直顽固的在3mA以上不下去。






但是我现在怎么调,进入halt之后都有3mA以上的电流。
网上查了很久也没搞懂为什么。

测电流的方式用了两种
1、直接串联电流表
2、接了一个50欧姆小电阻,测压降
两种方法测出来结果基本一致


做了几个实验:
上电直接进入halt模式,
大约是4mA多。

如果上电先
CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);           //设置内部高速时钟16M为主时钟  没用晶振

电流会上去1mA多。

然后再进入halt。
再进入halt前,我在网上查了很久,做了一堆操作,感觉没什么效果。

1.把所有的引脚设置为浮空输入
  AllPinsFlIn();
2.关闭MVR
CLK_SlowActiveHaltWakeUpCmd(ENABLE);                //关闭主稳压器MVR,低功率稳压器LPVR启动
3.切换到LSI
    CLK_LSICmd(ENABLE);                                                          //启动LSI
    CLK_ClockSwitchCmd(ENABLE);                                        //启用时钟切换
        CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO,CLK_SOURCE_LSI,DISABLE,CLK_CURRENTCLOCKSTATE_DISABLE); //切换LSI,并关闭HSI
        CLK_HSICmd(DISABLE);

4.关闭快速唤醒
        CLK_FastHaltWakeUpCmd(DISABLE);                                        //关闭快速唤醒
5.关闭所有的设备,只保留了AWU做唤醒
        CLK_PeripheralClockConfig(CLK_PERIPHERAL_I2C,DISABLE);        
        CLK_PeripheralClockConfig(CLK_PERIPHERAL_SPI,DISABLE);        
        CLK_PeripheralClockConfig(CLK_PERIPHERAL_UART1,DISABLE);
        CLK_PeripheralClockConfig(CLK_PERIPHERAL_UART2,DISABLE);
        CLK_PeripheralClockConfig(CLK_PERIPHERAL_UART3,DISABLE);
        CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER6,DISABLE);
        CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER5,DISABLE);
        CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER4,DISABLE);
        CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER3,DISABLE);
        CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER2,DISABLE);
        CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER1,DISABLE);
        CLK_PeripheralClockConfig(CLK_PERIPHERAL_ADC,DISABLE);
        CLK_PeripheralClockConfig(CLK_PERIPHERAL_CAN,DISABLE);

6、设置FLASH到低功率模式
       FLASH_SetLowPowerMode(FLASH_LPMODE_POWERDOWN);        

我感觉我做的挺全面了,网上提到的点我都做了,为啥大家都是uA级别,就我在mA级别下不去。晕。



遇到几个问题:
1.我做完第三步的时候,用CLK_GetSYSCLKSource去验证,发现当前始终还是HSI。
2.第一步和第五步都有轻微的电流减小,其他几步感觉没啥变化。


请教一位在halt低功耗这块研究过的哥们,给点建议,实在是头疼。

问题解决之后我会把问题解决步骤整理一下发上来的。




找一份喜欢的工作,这样每天工作的8个小时是快乐的。 找一个喜欢的人,这样每天工作之外的16个小时也是快乐的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则




关闭

正点原子双11大促销上一条 /1 下一条

正点原子公众号

QQ|联系我们|手机版|官方淘宝店|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-11-13 15:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表
/* */