STM32F101VCT6的”停止”电流有90uA如何解决?

2019-07-14 17:48发布


     
我的样机在执行“停止”命令后:
     PWR_EnterSTOPMode(PWR_Regulator_LowPower,PWR_STOPEntry_WFI);   

仍消耗90uA的电流,这远远大于手册上给出的数值,请教同行,是哪个设定不到位,
请求同行们的支援!!!!

     我的应用体会如下,请同行指正。

1.
在执行“停止”指令之后,“Systick Timer”也被关断了,在用中断唤醒之后,它会自动恢复运行!!!!!!

2.
在用中断退出“停止”方式之后,程序要在“停止”语句之后的语句开始执行。

3. 未使用的管脚,要配置成模拟脚,可减少电流消耗,在我的应用中,可减少0.2mA左右。

4.       执行“停止”指令之后,关断了一切时钟,切断时钟就是关断外设,所以,你所用的外设,
就不用再单独使用指令关断了。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
ncsan
1楼-- · 2019-07-15 02:16
 
       
   将JTAG有关的管脚禁止,并配置为模拟输入的模式,整个的系统电流就降到36微安,
 STM32加其它外围器件到这个水平,这就可以了,问题基本解决!!!!!!!!!!
配置如下:             
   GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);
 
/* Configure PA.13 (JTMS/SWDAT), PA.14 (JTCK/SWCLK) and PA.15 (JTDI) as
        GPIO_Mode_AIN; */
     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
     GPIO_Init(GPIOA, &GPIO_InitStructure);
 
/* Configure PB.03 (JTDO) and PB.04 (JTRST) as GPIO_Mode_AIN; */
     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4;
     GPIO_Init(GPIOB, &GPIO_InitStructure);
 
      也能再次下载程序 !!!!
 
                           感谢大家的关心和支持,共同学习,共同提高。
 
TOPCB
2楼-- · 2019-07-15 07:31
在休眠模式的是,外部输出引脚(除了用于唤醒的引脚)都要设置为悬空或者输入,这样减少电流的浪费。同样需要注意的是外部器件,他们的电流往往会影响最大。
freesea123
3楼-- · 2019-07-15 08:17
这样测量的话,是不准确的,你是测量MCU的功耗还是整个样机的功耗?
MCU的功耗你比较难测量的。
lanziji
4楼-- · 2019-07-15 13:40
ncsan 发表于 2018-9-13 08:28
 
       
   将JTAG有关的管脚禁止,并配置为模拟输入的模式,整个的系统电流就降到36微安,

调试引脚关了怎么样还能继续下载呢? 我每次都要用其他清空一遍再烧 麻烦得很啊…………
ke3978
5楼-- · 2019-07-15 18:17
 精彩回答 2  元偷偷看……
jake01
6楼-- · 2019-07-15 19:29
I/O等外接元件也会影响,毕竟是uA级电流。

一周热门 更多>