OpenEdv-开源电子网

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

STM32F4停止模式,功耗降不下来问题

[复制链接]

11

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2019-5-15
在线时间
34 小时
发表于 2022-10-24 17:43:08 | 显示全部楼层 |阅读模式
   求教:   调试设备低功耗,设备是STM32F446,所有IO配置为模拟输入;



   然后让其进入停止模式,耗电还接近7毫安。

   网上有提到的__HAL_RCC_PWR_CLK_ENABLE()也有加入了。
   求教有什么其他调试思路?知道是啥导致的功耗高吗?
2.png
1.png
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

7

主题

480

帖子

0

精华

高级会员

Rank: 4

积分
783
金钱
783
注册时间
2021-4-15
在线时间
305 小时
发表于 2022-10-24 19:08:42 | 显示全部楼层

回帖奖励 +5 金钱

有没有一种可能不是芯片功耗高 而是其他器件
日常敲键--头秃一片
回复 支持 反对

使用道具 举报

13

主题

645

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2007
金钱
2007
注册时间
2021-4-16
在线时间
511 小时
发表于 2022-10-25 10:16:44 | 显示全部楼层
楼上说得对
回复 支持 反对

使用道具 举报

3

主题

821

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3369
金钱
3369
注册时间
2011-11-10
在线时间
207 小时
发表于 2022-10-25 10:47:03 | 显示全部楼层
串口关闭了没有?所有IO都处理一下。
回复 支持 反对

使用道具 举报

11

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2019-5-15
在线时间
34 小时
 楼主| 发表于 2022-10-25 13:56:44 | 显示全部楼层
c2007s 发表于 2022-10-25 10:47
串口关闭了没有?所有IO都处理一下。

串口都关闭了,IO除了PH0、PH1外,其他全部设置为模拟输入;串口也关闭了。还要问下所有的外设时钟都要关闭吗?就是我的CPU外电路没有,但是CPU需要关闭吗?
回复 支持 反对

使用道具 举报

3

主题

821

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3369
金钱
3369
注册时间
2011-11-10
在线时间
207 小时
发表于 2022-10-25 14:44:41 | 显示全部楼层
所有外设时钟都要关闭。另外不是IO设为模拟就是低功耗,要根据外部电平来设置。比如你IO接了一个外部上拉,那就给设置成高电平。总之一句话,就是关闭是所有不需要的外设,配置IO适应外部电平。
回复 支持 反对

使用道具 举报

11

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2019-5-15
在线时间
34 小时
 楼主| 发表于 2022-10-25 15:04:11 | 显示全部楼层
c2007s 发表于 2022-10-25 14:44
所有外设时钟都要关闭。另外不是IO设为模拟就是低功耗,要根据外部电平来设置。比如你IO接了一个外部上拉, ...

1、比如我的GPIOA有用到,配置完后,那对应的GPIOA时钟不能关闭吧;关闭了,那GPIOA的功能还能正常工作吗?2、比如你IO接了一个外部上拉,那就给设置成高电平,您的意思是这种情况外部IO配置为输出模式高电平嘛。
回复 支持 反对

使用道具 举报

11

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2019-5-15
在线时间
34 小时
 楼主| 发表于 2022-10-25 15:06:33 | 显示全部楼层
日渐秃兀 发表于 2022-10-24 19:08
有没有一种可能不是芯片功耗高 而是其他器件

帖子好像回复不了图片,不然就把电路贴上来;我这个电路是电源直通外设的,这样子是不是会损耗很多电
回复 支持 反对

使用道具 举报

11

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2019-5-15
在线时间
34 小时
 楼主| 发表于 2022-10-25 17:31:12 | 显示全部楼层
c2007s 发表于 2022-10-25 14:44
所有外设时钟都要关闭。另外不是IO设为模拟就是低功耗,要根据外部电平来设置。比如你IO接了一个外部上拉, ...

时钟关闭是不是相当于该GPIO或该外设在CPU内部不耗电?
回复 支持 反对

使用道具 举报

32

主题

183

帖子

0

精华

高级会员

Rank: 4

积分
617
金钱
617
注册时间
2013-1-16
在线时间
131 小时
发表于 2022-10-26 09:37:39 | 显示全部楼层
你测试的是芯片的功耗还是整块板子的功耗
回复 支持 反对

使用道具 举报

3

主题

821

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3369
金钱
3369
注册时间
2011-11-10
在线时间
207 小时
发表于 2022-10-26 09:40:18 | 显示全部楼层
是的。外设和GPIO都是由时钟信号驱动,你把分给他的时钟信号关掉,这部分的功耗就降下来了。
回复 支持 反对

使用道具 举报

11

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2019-5-15
在线时间
34 小时
 楼主| 发表于 2022-10-26 11:34:34 | 显示全部楼层
1597685605 发表于 2022-10-26 09:37
你测试的是芯片的功耗还是整块板子的功耗

整块板子的功耗
回复 支持 反对

使用道具 举报

11

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2019-5-15
在线时间
34 小时
 楼主| 发表于 2022-10-26 11:40:28 | 显示全部楼层
c2007s 发表于 2022-10-26 09:40
是的。外设和GPIO都是由时钟信号驱动,你把分给他的时钟信号关掉,这部分的功耗就降下来了。

停止模式不是自动把很多时钟都关掉了,我看规格书上说进入停止模式把HSI和HSE的时钟都关闭了;那AHB1、AHB2、AHB3、APB1、APB2是由什么时钟驱动的,这些对应的时钟需要手动关闭?
回复 支持 反对

使用道具 举报

32

主题

183

帖子

0

精华

高级会员

Rank: 4

积分
617
金钱
617
注册时间
2013-1-16
在线时间
131 小时
发表于 2022-10-26 14:13:04 | 显示全部楼层

你先测试一下芯片的功耗,看是芯片的功耗高了,还是外围电路功耗高了
回复 支持 反对

使用道具 举报

3

主题

821

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3369
金钱
3369
注册时间
2011-11-10
在线时间
207 小时
发表于 2022-10-26 18:50:20 | 显示全部楼层
chenshuibing 发表于 2022-10-26 11:40
停止模式不是自动把很多时钟都关掉了,我看规格书上说进入停止模式把HSI和HSE的时钟都关闭了;那AHB1、AH ...

这点极大体现了STM32和51的不同之处。51进入停止模式,自动全部关了。STM32更高级也更灵活,由开发者自己选择关闭哪些保留哪些。先去看看停止模式https://blog.csdn.net/whj123999/ ... ult-0-115418904.142^v62^js_top,201^v3^control_1,213^v1^t3_esquery_v1&spm=1018.2226.3001.4187
回复 支持 反对

使用道具 举报

11

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2019-5-15
在线时间
34 小时
 楼主| 发表于 2022-10-27 15:24:05 | 显示全部楼层
c2007s 发表于 2022-10-26 18:50
这点极大体现了STM32和51的不同之处。51进入停止模式,自动全部关了。STM32更高级也更灵活,由开发者自己 ...

我把外围电路都摘掉了,只留下CPU部分,但是功耗还有4.35毫安;是有些外设它默认是开启的,需要我手动去关闭?
回复 支持 反对

使用道具 举报

3

主题

821

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3369
金钱
3369
注册时间
2011-11-10
在线时间
207 小时
发表于 2022-10-27 21:28:38 | 显示全部楼层
chenshuibing 发表于 2022-10-27 15:24
我把外围电路都摘掉了,只留下CPU部分,但是功耗还有4.35毫安;是有些外设它默认是开启的,需要我手动去 ...

是的。你一项一项核对,把不需要用到的全部关闭
回复 支持 反对

使用道具 举报

11

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2019-5-15
在线时间
34 小时
 楼主| 发表于 2022-10-28 14:04:41 | 显示全部楼层
c2007s 发表于 2022-10-27 21:28
是的。你一项一项核对,把不需要用到的全部关闭

我有个疑问就是降功耗只关闭对应的外设时钟就行了吗,还是要把它使能的开关寄存器关掉?
回复 支持 反对

使用道具 举报

3

主题

821

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3369
金钱
3369
注册时间
2011-11-10
在线时间
207 小时
发表于 2022-10-28 18:36:08 | 显示全部楼层
chenshuibing 发表于 2022-10-28 14:04
我有个疑问就是降功耗只关闭对应的外设时钟就行了吗,还是要把它使能的开关寄存器关掉?

先寄存器失能,再关闭时钟。有中断挂起的必须清除否则进不了STOP。
回复 支持 反对

使用道具 举报

11

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2019-5-15
在线时间
34 小时
 楼主| 发表于 2022-10-31 08:52:25 | 显示全部楼层
c2007s 发表于 2022-10-28 18:36
先寄存器失能,再关闭时钟。有中断挂起的必须清除否则进不了STOP。

好的,非常感谢您
回复 支持 反对

使用道具 举报

11

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2019-5-15
在线时间
34 小时
 楼主| 发表于 2022-10-31 08:55:32 | 显示全部楼层
1597685605 发表于 2022-10-26 14:13
你先测试一下芯片的功耗,看是芯片的功耗高了,还是外围电路功耗高了

您好,最后测试是外围电路高了,24M的晶振电流就占用了4毫安多
回复 支持 反对

使用道具 举报

11

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2019-5-15
在线时间
34 小时
 楼主| 发表于 2022-10-31 08:58:30 | 显示全部楼层
c2007s 发表于 2022-10-28 18:36
先寄存器失能,再关闭时钟。有中断挂起的必须清除否则进不了STOP。

后面的测试是24MHZ的晶振耗电高了;如果我用内部HSI做时钟,系统运行会稳定吗,对串口、ADC、SPI这些外设正常工作有影响嘛,还是它只影响到systick和定时器的工作?
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-10 05:01

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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