首页

科技
手机搜狐
SOHU.COM

终于我也可以对STM32低功耗进行总结

电子工程世界
2017-02-16
+关注

STM32F103R8和RC的停机模式的休眠电流还不一样,R8停机模式实测为11UA,RC停机模式实测为30uA,还以为又是我的程序哪里没做好呢,仔细看了PDF,这两个芯片PDF上标的值的确有区别,和我测的值差不多,那我就没有再深究的意义了!

展开剩余95%

结合下文的高手经验,反复摸索,

standby模式1.9uA,PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI);

stop模式:11uA, PWR_EnterSTANDBYMode();

实验证明,将IO端口设成IPU/IPD/AIN/PPOUT=1/PPOUT=0/ODOUT=0,电流是基本相同的,最可怕的就是GPIO浮空,且电路上未外接上拉下拉,这样电流就会比较大。

原来以来PPOUT要是输出为0,就会浪费电流,其实只要不负载,电流和ODOUT=0时一样样的。

以下为部分代码

void MUC_SLEEP(void)

{

GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE); //完全失能JTAG/SWD 不关电流也好像不影响

GPIO_PinRemapConfig( GPIO_Remap_PD01 , ENABLE );//晶振为GPIO 不关电流也好像不影响

RCC_LSEConfig(RCC_LSE_OFF);//关闭RTC 不关电流也好像也不影响

RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);

ADC_CONFIG(DISABLE);

USART_DeInit(USART1);

USART_DeInit(USART2);

USART_DeInit(USART3);

USART_DeInit(UART5);

EXTI_INITIAL(ENABLE);//以下端口的设置最有影响

GPIO_PIN_INITIAL(GPIOA,GPIO_Pin_All,GPIO_Mode_AIN,0); //此处没做外部唤醒 仅用于测试 EXTI合理设置GPIO不影响电流

GPIO_PIN_INITIAL(GPIOB,GPIO_Pin_All,GPIO_Mode_AIN,0);

GPIO_PIN_INITIAL(GPIOC,GPIO_Pin_All,GPIO_Mode_AIN,0);

GPIO_PIN_INITIAL(GPIOD,GPIO_Pin_All,GPIO_Mode_AIN,0);

//PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI);//STOP模式

PWR_EnterSTANDBYMode();//standby模式

}

以下来自 这个总结似乎更更贴合用户

http://bbs.21ic.com/icview-558242-1-1.html

  dzxxlxd 发表于 2013-7-15 16:10:33 |只看该作者 |返回版面  找到方法了,最终板级数据:stop模式,外部中断唤醒:13uAstandby模式,2.5uA
  举报

  dzxxlxd    实习生   专家等级:   结帖率:0%   6#   dzxxlxd 发表于 2013-7-15 16:22:08 |只看该作者 |返回版面  具体要点为:1、所有IO管脚,如果高阻状态端口是高电平,就设成上拉输入,如果高阻状态是低电平,设成下拉输入,如果高阻是中间状态,设成模拟输入。这个很多人都提到过,必须的。作为输出口就免了,待机你想输出个什么东西,一定要输,硬件上加上下拉就可以了2、两个晶振输入脚要remap成普通IO!!!使用内部晶振。3、pwr的时钟要使能,即RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);这个也相当重要4、关闭jtag口,并设成普通IO;5、注意助焊膏的质量!!!注意电路板层之间是否进水!!!!掌握这几项要点,再设中断什么的都行,整个世界清静了!!!完全低能耗。

==============以下摘自网络=====================

STM32实现 低功耗待机总结(电流低至5.7uA)

分类: STM322013-01-16 10:05 670人阅读 评论(0) 收藏 举报

刚开始进入STOPMode后,整机功耗有300uA的,此时外围其他硬件电路电流已经可以肯定漏电流在nA级,因此调试方向在主芯片,经过实际测试,都是GPIO配置的问题,比如某个GPIO为中断输入,闲置为低电平,而我们配置成了IPU,因此内部的40K上拉就会在这里消耗3/40k =75uA,另外将N.C的GPIO配置成Floating Input,也会有一些漏电流,实际测试漏电流不大;另外将STM32F05x直接PIINtoPIN替代STM32100,所以Pin35,36的PF6,PF7为之前的VCC,GND,因此要相应的配置为IPU,IPD,才不会有拉电流/灌电流;外部不使用晶振,因此必须将其配置为IPU/IPD或者输出Low,如果配置成Floating,实测消耗200uA+的电流,这个特别注意。另外不需要关闭不用的外设的CLK,因为STOPMODE会将内部1.8V的core关闭,因此该步骤不影响功耗。

因此在进入STOPMODE之前,需要做:

1、将N.C的GPIO统一配置为IPU/IPD;

2、检查一些Signal的输入Active是High/Low,相应进行配置为IPD/IPU,即避免在内部上/下拉电阻上消耗电流,而且该电流理论值为VCC/R = 3/40 =75uA;

3、如果外部晶振不使用,必须将GPIO配置为IPU/IPD/PPLow,不允许配置为floating,否则会消耗极大的电流 200uA+;

4*、加入进入STOPMODE前,不允许将PWR的CLK关闭,这部分牵涉低功耗模式,实际测试关闭能用,也能唤醒,但是电流会增加10uA+;

5、配置GPIO为输出时,根据输出的常态选择上拉/下拉,如闲置输出为0,则配置为下拉,输出闲置为1,则配置上拉;

6、另外特别说明的是->从Stopmode唤醒后,系统会自动切换到HSI,如果进入前使用的是外部晶振/PLL(PLL的clksource = HSI/HSE)因此必须调用System_Init(),对RCC重新初始化,否则唤醒后主频发生改变,会影响系统;

原文链接:http://www.eeworld.com.cn/mcu/article_2017021633737.html

帅哥为什么要拒绝美女的微信?

声明:本文由入驻搜狐号作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。

网站地图

用户反馈 合作
Copyright © 2018 Sohu.com