GD32F450如何降低运行功耗
项目用的GD32F450,200MHz,已将未使用的引脚配置为模拟输入,无上下拉,未使用的外设时钟均关闭,但MCU部分电流达到200mA(拆除所有外围电路),有什么办法可以把这个功耗降下去,因产品特性,无法使用待机或者停机模式。 看你的目标功耗了。关PLL降频,WFI
aozima 发表于 2021-11-24 17:08
看你的目标功耗了。
关PLL降频,WFI
不能进入standby和stop模式,想在运行模式下,功耗降到100mA以内。 看手册就是90多mA 典型值。是不是哪里短路了。 未使用的引脚通常都是设置为io输出,输出为低电平,或者高电平。没见过设置为模拟输入的。 本帖最后由 大秦正声 于 2021-11-25 19:17 编辑
...... 本帖最后由 大秦正声 于 2021-11-25 19:16 编辑
手册说不使用外部设备电流在60.1ma
手册说200MHz,run 模式,没有外设,mcu耗电流60毫安。 使用外设电流99ma。 检查下无用的IO设置 可以考虑:
1)、关闭不适用的晶振,如内部高速晶振;
2)、如果主频降不了,那么就降低各外设的时钟频率;
3)、参考一下其他回复检查一些硬件电路是否有问题; 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]