[STM32F1] STM32F103C8T6低功耗待机模式工作电流为10ma问题

[复制链接]
21045|17
 楼主| xialei8513 发表于 2014-1-16 16:24 | 显示全部楼层 |阅读模式
进入待机模式主要程序如下:
void Sys_Standby(void)
{   
      RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);  //使能 PWR 外设时钟
      PWR_WakeUpPinCmd(ENABLE);                 //使能唤醒管脚功能
      PWR_EnterSTANDBYMode();                 //进入待命(STANDBY)模式   
}
void Sys_Enter_Standby(void)
{  
      Befor_goto_Standby();
      RCC_APB2PeriphResetCmd(0X01FC,DISABLE);  //复位所有 IO 口
      Sys_Standby();
}
void Befor_goto_Standby(void)
{
       GPIO_InitTypeDef GPIO_InitStructure;

       GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
       GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
        
       GPIO_Init(GPIOB, &GPIO_InitStructure);
       GPIO_Init(GPIOC, &GPIO_InitStructure);

       RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB|RCC_APB2Periph_USART1|
                              RCC_APB2Periph_SPI1|RCC_APB2Periph_ADC1|RCC_APB2Periph_ADC2,
                              DISABLE);
       RCC_APB1PeriphClockCmd( RCC_APB1Periph_SPI2|RCC_APB1Periph_TIM2|RCC_APB1Periph_USART3,
                              DISABLE);
}
主函数中我已经将MCU未使用的管脚设置为模拟输入(或者浮空)
未关闭A口,由于我使用wakeup上升沿唤醒MCU。
MCU进入待机模式工作电流为10ma,我还需要关闭什么东西吗?各位大侠请指教
airwill 发表于 2014-1-16 16:49 | 显示全部楼层
呵呵, 这也太大了一些.
看看有 IO 口有在漏电流出去吗?
其他外部电路也在耗电吗?
dirtwillfly 发表于 2014-1-16 22:20 | 显示全部楼层
我猜有很多外围电路在耗电
 楼主| xialei8513 发表于 2014-1-17 09:44 | 显示全部楼层
dirtwillfly 发表于 2014-1-16 22:20
我猜有很多外围电路在耗电

可是我重新搭建了一个SMT32F103C8T6最小系统。运行模式20ma,按照我的“操作”进入低功耗模式,功耗10ma!是不是板子没有进入真正的待机模式
airwill 发表于 2014-1-17 12:36 | 显示全部楼层
是不是板子没有进入真正的待机模式?

也很有可能, 测量一下晶振还有波形吗? 待机下晶振应该停止的
 楼主| xialei8513 发表于 2014-1-17 15:00 | 显示全部楼层
airwill 发表于 2014-1-17 12:36
是不是板子没有进入真正的待机模式?

也很有可能, 测量一下晶振还有波形吗? 待机下晶振应该停止的 ...

我用万用表测量晶振两管脚电压(一端接地一端接晶振任意端):工作模式电压都为2.5v;待机电压几乎为0
 楼主| xialei8513 发表于 2014-1-17 17:49 | 显示全部楼层
dirtwillfly 发表于 2014-1-16 22:20
我猜有很多外围电路在耗电

问题已经解决,感谢版主的意见,总结如下:
第一确保测量待机功耗时设备没有连接JTAG仿真器,JTAG仿真器会影响测量数据的真实性
第二焊接一块MCU最小系统测量。72M全速运行模式功耗3.3V*35mA;待机模式功耗:3.3V*2.5uA。没错就是uA级的功耗。
我原来的测试结果为10ma就是由于MCU外围芯片功耗引入的。
piginsky 发表于 2015-1-4 20:16 | 显示全部楼层
大神们  停机模式下 输出IO状态会维持么?
 楼主| xialei8513 发表于 2015-1-19 17:55 | 显示全部楼层
piginsky 发表于 2015-1-4 20:16
大神们  停机模式下 输出IO状态会维持么?

还真没测试过啊 ....
index219 发表于 2015-3-28 23:52 | 显示全部楼层
piginsky 发表于 2015-1-4 20:16
大神们  停机模式下 输出IO状态会维持么?

实际测试,停止模式下,IO口状态取决于你进入停止模式前是否关闭对应时钟,若没有,IO口状态会保持。
quray1985 发表于 2015-3-29 09:26 | 显示全部楼层
待机情况就有10ma,感觉有点大啊
搞IT的 发表于 2015-3-29 10:35 | 显示全部楼层
这个``耗电貌似很厉害啊。。。
cowboy2014 发表于 2015-3-30 17:06 | 显示全部楼层
这10ma确实大了点,不知道你是怎么测试的
 楼主| xialei8513 发表于 2015-4-1 10:26 | 显示全部楼层
cowboy2014 发表于 2015-3-30 17:06
这10ma确实大了点,不知道你是怎么测试的

是我自己测试时错误的连接仿真器的原因;
龙溪傲 发表于 2015-12-18 13:49 | 显示全部楼层
学习ing
hao_north 发表于 2016-3-22 14:51 | 显示全部楼层
你好,我用到待机模式,用RTC闹钟唤醒,但是唤醒后程序卡在一个地方,你能给我参考下你的程序配置么
752003446 发表于 2017-4-8 13:58 | 显示全部楼层
楼主请教一下你用什么方法测试功耗啊?
20124817 发表于 2017-6-13 19:21 | 显示全部楼层
我也出现了这个问题,我的是stm32L系列的,我的在STOP模式下都有6mA,我感觉和楼主情况一样,明天弄个最小系统板试一下,现在用的是核心板测试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

98

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部