OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6064|回复: 3

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

[复制链接]

50

主题

385

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1126
金钱
1126
注册时间
2014-8-24
在线时间
146 小时
发表于 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个小时也是快乐的。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

50

主题

385

帖子

0

精华

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

50

主题

385

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1126
金钱
1126
注册时间
2014-8-24
在线时间
146 小时
 楼主| 发表于 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个小时也是快乐的。
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2024-5-27
在线时间
2 小时
发表于 2024-7-12 09:18:51 来自手机 | 显示全部楼层
我也和你一样。我的1ma,下不去。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 06:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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