打印
[STM32L1]

关于stm32l152功耗实测总结

[复制链接]
11140|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
samniuniu|  楼主 | 2015-1-20 21:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、单个芯片进行低功耗测试的时候,没有任何外围器件时,将所有的IO口均设为模拟输入(AIN),无上下拉电阻,400khz,所有外设均不开启,按照如下程序进行进入STOP模式:
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);
PWR_FastWakeUpCmd(ENABLE);
PWR_UltraLowPowerCmd(ENABLE);
PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI);

其中RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);必须要有,否则功耗将会大18ua左右;
这时的功耗约为0.4ua;
standby模式为0.3ua

2、单个芯片进行低功耗模式,设置RTC,无唤醒时,为1.7ua左右;
                                                                           有唤醒时,进入stop模式为1.7ua,唤醒后再进入低功耗则为4.5ua(很奇怪)

3、单个芯片进行低功耗模式,运行RTC,LCD,开SPI,按键中断等功能,功耗为7.5ua,注意点是
        (1)将无关的IO口设置为模拟输入(AIN) ,如果有一个IO口没有设置,则功耗多出10ua左右,这里同时要将SW调试的接口也要这么设置,BOOT引脚设置与否对电流影响不大。
        (2)在进入低功耗前将SPI(将所开的外设关闭)关闭。
        (3)在跳出低功耗时,系统自动将时钟切换为MSI时钟,要将时钟调回HSI。
        (4)在进入低功耗时,系统会保存原有的IO设置状态。
        (5)在跳出低功耗时,要重新开启外设。
       
4、STM32l152进入低功耗时,可以在线调试,只要调用函数DBGMCU_Config(DBGMCU_STOP,ENABLE);
沙发
samniuniu|  楼主 | 2015-1-20 21:32 | 只看该作者
自己顶,哈哈哈

使用特权

评论回复
板凳
trice| | 2015-1-22 16:10 | 只看该作者
(2)在进入低功耗前将SPI(将所开的外设关闭)关闭。
这一步似乎可有可无,因为进入stop模式下所有的外设的时钟都关闭了。

使用特权

评论回复
地板
trice| | 2015-1-22 16:11 | 只看该作者
2、单个芯片进行低功耗模式,设置RTC,无唤醒时,为1.7ua左右;
                                                                           有唤醒时,进入stop模式为1.7ua,唤醒后再进入低功耗则为4.5ua(很奇怪)

怀疑还有其他的引脚没有配置。

使用特权

评论回复
5
samniuniu|  楼主 | 2015-1-22 21:39 | 只看该作者
trice 发表于 2015-1-22 16:10
(2)在进入低功耗前将SPI(将所开的外设关闭)关闭。
这一步似乎可有可无,因为进入stop模式下所有的外设的时 ...

我做过相关实验,如果不关SPI,会大200ua左右

使用特权

评论回复
6
c67890| | 2015-2-12 16:05 | 只看该作者
楼主,我用的也是stm32L152,可是我能进入stop,但无法唤醒,可否把你的例子传一份给我?

使用特权

评论回复
7
samniuniu|  楼主 | 2015-3-3 16:51 | 只看该作者
c67890 发表于 2015-2-12 16:05
楼主,我用的也是stm32L152,可是我能进入stop,但无法唤醒,可否把你的例子传一份给我? ...

你按照我的步骤来设置即可

使用特权

评论回复
8
Cary_Liu| | 2015-5-13 18:23 | 只看该作者
samniuniu 发表于 2015-3-3 16:51
你按照我的步骤来设置即可

为啥我裸板,也罢IO配成了AN模式,结果进入stop模式,电流还有300微安、、、

使用特权

评论回复
9
Multiplus123| | 2015-7-4 14:51 | 只看该作者
楼主最近还上线不,我也遇到给问题,我的板子也是裸板,进stop后功耗是100多uA,怎么查也查不出问题,我用的是STM32L152CBT6a

使用特权

评论回复
10
lvyunhua| | 2015-7-30 14:10 | 只看该作者
不错,关注中!

使用特权

评论回复
11
woshic23| | 2015-8-4 18:11 | 只看该作者
多谢分享!

使用特权

评论回复
12
samniuniu|  楼主 | 2015-8-17 14:53 | 只看该作者
Multiplus123 发表于 2015-7-4 14:51
楼主最近还上线不,我也遇到给问题,我的板子也是裸板,进stop后功耗是100多uA,怎么查也查不出问题,我用 ...

最近不怎么上线额,我不知道你具体是什么问题,现在解决问题没?

使用特权

评论回复
13
samniuniu|  楼主 | 2015-8-17 14:53 | 只看该作者
Cary_Liu 发表于 2015-5-13 18:23
为啥我裸板,也罢IO配成了AN模式,结果进入stop模式,电流还有300微安、、、 ...

是不是其他电路也有影响呢?

使用特权

评论回复
14
tomzxq| | 2015-10-13 10:10 | 只看该作者
保持跟踪,随时请教楼主

使用特权

评论回复
15
1316014468| | 2015-12-2 20:29 | 只看该作者
楼主,能不能把程序拿出来分享一下????非常感谢!

使用特权

评论回复
16
YDCMAN| | 2016-4-5 15:48 | 只看该作者
THANKS,正好最近有个项目上用到STM32L1,感谢楼主分享

使用特权

评论回复
17
Serching| | 2017-12-19 15:07 | 只看该作者
2、单个芯片进行低功耗模式,设置RTC,无唤醒时,为1.7ua左右;
                                                                           有唤醒时,进入stop模式为1.7ua,唤醒后再进入低功耗则为4.5ua(很奇怪)

这个问题,并不是引脚造成的,而是少了一句话。
RTC 唤醒后,需要添加一句清除唤醒标志的代码: PWR->CR |= PWR_CR_CWUF; 然后再次进入STOP模式,功耗不会增加。如果你没有使
用 RTC 定时唤醒,而是采用的外部 IO 口,按键唤醒的话,这句话可以不用添加,功耗也不会增加。具体原因不清楚,应用手册上没有相关
信息。
欢迎大家验证和进一步讨论

使用特权

评论回复
18
1459441142| | 2020-9-28 10:12 | 只看该作者
DBGMCU_Config(DBGMCU_STOP,ENABLE); 这一句是哪里来的

使用特权

评论回复
19
ADZ2016| | 2020-9-29 14:14 | 只看该作者
这么低的电流 是怎么测试的?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

26

帖子

3

粉丝