打印

GD32F450如何降低运行功耗

[复制链接]
2104|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zkyzhh|  楼主 | 2021-11-24 16:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
项目用的GD32F450,200MHz,已将未使用的引脚配置为模拟输入,无上下拉,未使用的外设时钟均关闭,但MCU部分电流达到200mA(拆除所有外围电路),有什么办法可以把这个功耗降下去,因产品特性,无法使用待机或者停机模式。

使用特权

评论回复
沙发
aozima| | 2021-11-24 17:08 | 只看该作者
看你的目标功耗了。

关PLL降频,WFI

使用特权

评论回复
板凳
zkyzhh|  楼主 | 2021-11-25 08:50 | 只看该作者
aozima 发表于 2021-11-24 17:08
看你的目标功耗了。

关PLL降频,WFI

不能进入standby和stop模式,想在运行模式下,功耗降到100mA以内。

使用特权

评论回复
地板
mcuisp| | 2021-11-25 10:29 | 只看该作者
看手册就是90多mA 典型值。是不是哪里短路了。

使用特权

评论回复
5
大秦正声| | 2021-11-25 11:03 | 只看该作者
未使用的引脚通常都是设置为io输出,输出为低电平,或者高电平。没见过设置为模拟输入的。

使用特权

评论回复
6
大秦正声| | 2021-11-25 11:04 | 只看该作者
本帖最后由 大秦正声 于 2021-11-25 19:17 编辑

......

使用特权

评论回复
7
大秦正声| | 2021-11-25 11:29 | 只看该作者
本帖最后由 大秦正声 于 2021-11-25 19:16 编辑

手册说不使用外部设备电流在60.1ma

使用特权

评论回复
8
大秦正声| | 2021-11-25 11:42 | 只看该作者
手册说200MHz,run 模式,没有外设,mcu耗电流60毫安。

使用特权

评论回复
9
大秦正声| | 2021-11-25 11:44 | 只看该作者
使用外设电流99ma。

使用特权

评论回复
10
海洋无限| | 2021-11-25 12:25 | 只看该作者
检查下无用的IO设置

使用特权

评论回复
11
james03| | 2021-11-26 10:51 | 只看该作者
可以考虑:
1)、关闭不适用的晶振,如内部高速晶振;
2)、如果主频降不了,那么就降低各外设的时钟频率;
3)、参考一下其他回复检查一些硬件电路是否有问题;

使用特权

评论回复
12
紫气东升| | 2022-6-21 18:40 | 只看该作者
james03 发表于 2021-11-26 10:51
可以考虑:
1)、关闭不适用的晶振,如内部高速晶振;
2)、如果主频降不了,那么就降低各外设的时钟频率; ...

说得对,如果项目没有用到需要高主频的功能,我推荐先把主频降下来,在 system_gd32f4xx.c 文件里,有以下选项:
/* select a system clock by uncommenting the following line */
//#define __SYSTEM_CLOCK_IRC16M                   (uint32_t)(__IRC16M)
//#define __SYSTEM_CLOCK_HXTAL                    (uint32_t)(__HXTAL)
//#define __SYSTEM_CLOCK_120M_PLL_IRC16M          (uint32_t)(120000000)
#define __SYSTEM_CLOCK_120M_PLL_8M_HXTAL          (uint32_t)(120000000)
//#define __SYSTEM_CLOCK_120M_PLL_25M_HXTAL       (uint32_t)(120000000)
//#define __SYSTEM_CLOCK_168M_PLL_IRC16M          (uint32_t)(168000000)
//#define __SYSTEM_CLOCK_168M_PLL_8M_HXTAL        (uint32_t)(168000000)
//#define __SYSTEM_CLOCK_168M_PLL_25M_HXTAL       (uint32_t)(168000000)
//#define __SYSTEM_CLOCK_200M_PLL_IRC16M          (uint32_t)(200000000)
//#define __SYSTEM_CLOCK_200M_PLL_8M_HXTAL        (uint32_t)(200000000)
//#define __SYSTEM_CLOCK_200M_PLL_25M_HXTAL         (uint32_t)(200000000)
可以选一个120M的,或者168M的。

使用特权

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

本版积分规则

1

主题

5

帖子

2

粉丝