rockt-210467 发表于 2017-9-25 19:03:37

急急急!烧录bootloader后功耗变高的问题

我做一个低功耗的东西。使用stm32f072芯片,单纯烧录调试APP软件,系统进入睡眠后电流大约为2.2mA。然后做带在线升级功能,先烧录IAP的bootloader程序(官方例程),然后再烧录APP程序,系统进入睡眠模式后变成了5.86mA。系统功能没有问题都是正常的,但功耗却莫名增大了。系统睡眠调用PWR_EnterSleepMode(PWR_SLEEPEntry_WFI),为什么加了bootloader会影响系统功耗。
但是,其它代码都没有变,系统睡眠调用PWR_EnterSTOPMode(PWR_Regulator_LowPower,PWR_STOPEntry_WFI),不管烧录不烧录bootloader,系统进入睡眠后功耗都没有影响,前后一致。


freeelectron 发表于 2017-9-25 19:34:02

sleep和stop模式本来功耗就不一样的

rockt-210467 发表于 2017-9-26 09:10:05

你可能没注意看,我不是对比sleep和stop模式的功耗。而是说进入bootloader对功耗的不同。

rockt-210467 发表于 2017-9-26 09:51:29

我想是不是因为bootloader程序和APP程序独立,然后再APP使用PWR_EnterSleepMode(PWR_SLEEPEntry_WFI)对bootloader不起多大作用,系统正常运行的话是执行APP的程序,无法关闭bootloader中开启的时钟外设等,所以APP部分的功耗降下了,但bootloader的没降下去。整体就是没有降下去。但是如果使用PWR_EnterSTOPMode(PWR_Regulator_LowPower,PWR_STOPEntry_WFI),那么MCU的时钟都关闭了,那么整体的功耗就降下了,就算唤醒,也没有对bootloader唤醒处理。也就是说如果bootloader再退出切换到APP运行时要关闭外设及时钟,在进入APP程序,这样在APP睡眠功耗就会正常。
这个只是猜测,我要验证一下。

alisa123 发表于 2017-9-26 16:11:17

rockt-210467 发表于 2017-9-26 09:51
我想是不是因为bootloader程序和APP程序独立,然后再APP使用PWR_EnterSleepMode(PWR_SLEEPEntry_WFI)对boot ...

感觉分析的挺有道理的,这个最好能测试验证下就知道了。

alisa123 发表于 2017-9-26 16:12:19

rockt-210467 发表于 2017-9-26 09:51
我想是不是因为bootloader程序和APP程序独立,然后再APP使用PWR_EnterSleepMode(PWR_SLEEPEntry_WFI)对boot ...

你用的bootloader 的烧录app的方式是什麽方式呢?USART? USB?

alisa123 发表于 2017-9-26 16:12:33

rockt-210467 发表于 2017-9-26 09:51
我想是不是因为bootloader程序和APP程序独立,然后再APP使用PWR_EnterSleepMode(PWR_SLEEPEntry_WFI)对boot ...

你用的bootloader 的烧录app的方式是什麽方式呢?USART? USB?

阿莫西林 发表于 2017-9-26 17:48:56

猜想:加了bootloader之后EnterSleepMode是否失败,进了其他功耗高一点的其他休眠模式

ataudio 发表于 2019-10-17 10:10:21

大牛,请教一下几个功耗变高的问题。你是用bootloader升级app后功耗变高的吗?我遇到的情况是:原程序静态功耗20uA。有bootloader,然后用仿真器烧录升级的app,功耗升到了300uA。如果用串口升级则是正常的20uA。原因是烧录时,stlink utility工具设置了enable debug in low power模式引起的。我的问题是,有没有办法在app里设置代码,将功耗降回正常水平?请教,急。谢谢。!

O'Sulliber 发表于 2019-11-4 19:41:31


遇到了同样的问题哈,楼主这么解决的呀?
没加bootloader时APP功耗13mA,加了之后电流直接到40mA.
不知道问题到底出在哪里,急呀:dizzy:
页: [1] 2
查看完整版本: 急急急!烧录bootloader后功耗变高的问题