打印
[STM32F4]

停机模式电流不正常,求助

[复制链接]
2941|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 murphy.he 于 2015-7-22 10:13 编辑

执行完初始化代码后就执行进入stop mode的代码了
可以确定是进入stop mode了,因为外部晶振都停振了
电流也从50多降到了5mA,还是太大了,不知道是否有东西还需要关


初始化代码

int driver_systemclock_init( void )
{
    RCC_ClocksTypeDef RCC_Clocks;
    GPIO_InitTypeDef GPIO_InitStructure;


/*disable all unused pins*/
    RCC_APB2PeriphClockCmd(RCC_AHB1Periph_GPIOF | RCC_AHB1Periph_GPIOG ,
DISABLE);

  
/*end of disable all unused pins*/

    /* SysTick end of count event each 10ms */
    RCC_GetClocksFreq(&RCC_Clocks);
    SysTick_Config(RCC_Clocks.HCLK_Frequency / 1000);
    NVIC_SetPriority(SysTick_IRQn, 0x0);

    return 0;
}

进入stop mode 代码

void   Sleep_test()
{
    GPIO_InitTypeDef GPIO_InitStructure;

    RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);//add for debug 2015-07
-20

   
    RCC_APB2PeriphClockCmd(RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB |
         RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOD |RCC_AHB1Periph_GPIOE,
ENABLE);

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
    GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_DOWN;
    GPIO_Init(GPIOA, &GPIO_InitStructure);
    GPIO_Init(GPIOB, &GPIO_InitStructure);
    GPIO_Init(GPIOC, &GPIO_InitStructure);
    GPIO_Init(GPIOD, &GPIO_InitStructure);
    GPIO_Init(GPIOE, &GPIO_InitStructure);
   
   
    RCC_APB2PeriphClockCmd(RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB |
    RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOD |RCC_AHB1Periph_GPIOE ,
DISABLE);



    delay_ms(5000);
   
   
    PWR_FlashPowerDownCmd(DISABLE);
    PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI);
}


沙发
murphy.he|  楼主 | 2015-7-22 10:10 | 只看该作者
板子我只焊了STM32F407和8M晶振和boot0对地10K电阻,
32K晶振没焊,所有的GPIO都悬空,设置为输入且下拉
程序开始就只设置了时钟,进入stop mode后电流还有5mA
严重偏大啊,希望大家帮忙看看,是否还要关其它的

使用特权

评论回复
板凳
murphy.he|  楼主 | 2015-7-22 11:37 | 只看该作者
高手都很忙啊,
高人给点提示吧

使用特权

评论回复
地板
icecut| | 2015-7-22 11:58 | 只看该作者
拆下主芯片来.也是5ma

使用特权

评论回复
5
mmuuss586| | 2015-7-22 13:53 | 只看该作者
电流怎么测量的呢?
用的什么表啊?

使用特权

评论回复
6
murphy.he|  楼主 | 2015-7-23 14:08 | 只看该作者
主芯片拆下来过,电流不到0.1mA。
我是用爱德万7351E 五位半台表测的。也用胜利VC97测过,差别很小,可以忽略
我的进入stop mode的代码有问题吗?

使用特权

评论回复
7
周董| | 2015-7-23 15:53 | 只看该作者
用示波器测测看看什么状况。。

使用特权

评论回复
8
murphy.he|  楼主 | 2015-7-23 16:05 | 只看该作者
晶振已经停止了,用示波器看的
外围电路其它的都没焊。
进入standby mode电流正常,在1mA之内

使用特权

评论回复
9
murphy.he|  楼主 | 2015-7-23 17:36 | 只看该作者
这个问题困扰我很久了,希望有经验的兄弟能帮帮忙
我现在测试软件是,CPU启动之后什么都不干,做个小延时后就进入stop mode
进是进去了,就是电流有点大4mA多,就勉强算4mA吧,可是人家随便都小于1mA啊

使用特权

评论回复
10
murphy.he|  楼主 | 2015-7-23 21:59 | 只看该作者
版主在吗?
有空的时候给我指点一下呗

使用特权

评论回复
11
murphy.he|  楼主 | 2015-7-24 09:06 | 只看该作者
昨天晚上下载了两个官方参考代码,一个是使用RTC周期进入STOPmode 的,一个是带I2C程序的reset直接进入standby mode的
先测了standby模式电流在1mA之内,我把那个standby的代码改成stop mode。
测量两个代码的stop mode电流都在5mA左右。
难道是硬件有问题?
外围电路焊的东西很少,除了电源的滤波电容,还有晶振,BOOT0,reset脚一个电容,VCAP1 VCAP2分别接了一个电容,RFU接了个0欧对地电阻。就这些了。

使用特权

评论回复
12
murphy.he|  楼主 | 2015-7-24 09:09 | 只看该作者
电路就这些,其余的IO都悬空,啥都没接,啥都没焊

使用特权

评论回复
13
amanda_s| | 2015-7-24 16:24 | 只看该作者
标准外设库里专门有个例程:STM32F4xx_StdPeriph_Examples\PWR\PWR_CurrentConsumption
说明了在不同模式下怎么配置。楼主参考的是这个吗?

使用特权

评论回复
评分
参与人数 1威望 +4 收起 理由
murphy.he + 4 很给力!
14
murphy.he|  楼主 | 2015-7-25 22:37 | 只看该作者
amanda_s 发表于 2015-7-24 16:24
标准外设库里专门有个例程:STM32F4xx_StdPeriph_Examples\PWR\PWR_CurrentConsumption
说明了在不同模式下 ...

运行的不是那个。你说的这个我找找也试一下
是这个,
AN4365_STM32F4x_Low_Power_FW_V1.0.0\Projects\STM32F4xx_Low_Power_Application_Case

使用特权

评论回复
15
murphy.he|  楼主 | 2015-7-25 22:39 | 只看该作者
还试过这个,电流也是5mA左右
STM32F4-Discovery_FW_V1.1.0\Project\Peripheral_Examples\PWR_STOP\MDK-ARM

使用特权

评论回复
16
murphy.he|  楼主 | 2015-7-25 22:40 | 只看该作者
amanda_s 发表于 2015-7-24 16:24
标准外设库里专门有个例程:STM32F4xx_StdPeriph_Examples\PWR\PWR_CurrentConsumption
说明了在不同模式下 ...

您能帮忙给我这个下载地址吗?
或者方便的话发到我邮箱 murphy.he@163.com
十分感谢

使用特权

评论回复
17
小浣熊| | 2015-7-26 18:56 | 只看该作者
虽然现在还不能看懂楼主写的这些,但是要感谢楼主的技术分享,后面探讨后,在来跟楼主交流。

使用特权

评论回复
18
可可球| | 2015-7-26 19:19 | 只看该作者
标准外设库里专门有个例程:STM32F4xx_StdPeriph_Examples\PWR\PWR_CurrentConsumption

使用特权

评论回复
评分
参与人数 1威望 +4 收起 理由
murphy.he + 4 很给力!
19
murphy.he|  楼主 | 2015-8-5 08:46 | 只看该作者
通过对比试验外设库的代码,找到原因了
我把所有悬空的脚设置的MODE_IN,改为MODE_AN,就基本OK了。
确实现在还没搞懂,悬空的脚作为IN为什么会漏电,试过加下拉和不加下拉电流都偏大很多,大概3-4mA左右吧

使用特权

评论回复
20
米尔豪斯| | 2015-8-5 09:38 | 只看该作者
悬空的脚设置的MODE_IN,改为MODE_AN,这两个有什么区别呢

使用特权

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

本版积分规则

56

主题

291

帖子

1

粉丝