你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F030低功耗问题,stop mode下电流好大。。。

[复制链接]
chaplin_0722 提问时间:2014-11-30 15:50 /
在做低功耗过程发现一个严重的问题,F030C8这块芯片在进入stop mode后电流居然在900uA左右。这与典型值相差甚远啊。测试用的是ST-Link供电,VDDA,只保留芯片工作,其他都拿掉了,工作在HSI。但是发现很奇怪的问题,拿掉外部晶振后电流
反而达到毫安级别,重新把外部晶振焊上就降下来了(SysInit根本没有选择外部晶振作为系统时钟)。
  1. NVIC_SystemLPConfig(NVIC_LP_SLEEPDEEP,ENABLE);
  2.         RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);
  3.        
  4.         PWR_EnterSTOPMode(PWR_Regulator_LowPower,PWR_STOPEntry_WFI);
复制代码
还有一个问题,关于NVIC_SystemLPConfig和RCC_APB1PeriphClockCmd的,加上这两个函数与不加上这两个函数的效果又是
不一样了。查了相关资料没有查到。
小弟低功耗这块之前没有搞过,但是问题摆在这,现在进行不了了。各位老师求指导...........

收藏 2 评论10 发布时间:2014-11-30 15:50

举报

10个回答
chaplin_0722 回答时间:2014-11-30 15:52:30
关于stop mode这一块有什么要注意的地方,还请各位大神指点。
巅峰残狼 回答时间:2014-12-1 12:56:33
使用内部时钟的话,确实会比使用外部时钟功耗要大
废鱼 回答时间:2014-12-2 09:14:54
应该和晶振没关系,你不要在仿真状态进入休眠,在离线状态测试一下。JTAG口也可能会有漏电流。
hejian1 回答时间:2014-12-2 11:00:57
没有这么高,肯定是其他地方或是电路有问题。我用STM32F030R8T6实测,也就是官方八个discovery板,HSI,所有IO口设置下拉输入,停止模式31uA 。待机4.5uA.
hejian1 回答时间:2014-12-2 11:04:58
本帖最后由 hejian1 于 2014-12-2 11:08 编辑

复制代码
  1. void GPIO_Set()
  2. {
  3.    GPIO_InitTypeDef GPIO_InitStructure;
  4.          RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
  5.          RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);
  6.          RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC, ENABLE);
  7.          RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOD, ENABLE);
  8.          RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOF, ENABLE);
  9.         
  10.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
  11. //  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_Level_3;
  12.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
  13.   GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  14.   GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;//GPIO_PuPd_UP;  
  15.   GPIO_Init(GPIOA, &GPIO_InitStructure);
  16.         GPIO_Init(GPIOB, &GPIO_InitStructure);
  17.         GPIO_Init(GPIOC, &GPIO_InitStructure);
  18.         GPIO_Init(GPIOD, &GPIO_InitStructure);
  19.         GPIO_Init(GPIOF, &GPIO_InitStructure);
  20.         
  21. }
复制代码


hejian1 回答时间:2014-12-2 11:09:05
int main()
{
        GPIO_Set();
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);
//        PWR_EnterSTANDBYMode();
          PWR_EnterSTOPMode(PWR_Regulator_LowPower,PWR_STOPEntry_WFI);

        while(1)
        {

        }
        return 0;
}

好心情123 回答时间:2014-12-3 08:39:41
为什么内部振荡器会比外部晶振的功耗高呢,好奇怪
深圳小明 回答时间:2016-6-17 09:45:16
hejian1 发表于 2014-12-2 11:09
int main()
{
        GPIO_Set();

请问一下,这样一上电就进入STOP模式之后,怎样才能进行固件烧录?否则这个芯片就只能浪费了。
任风吹吹 回答时间:2016-6-17 10:37:23
深圳小明 发表于 2016-6-17 09:45
请问一下,这样一上电就进入STOP模式之后,怎样才能进行固件烧录?否则这个芯片就只能浪费了。 ...

12.png

看这图,就这么烧录的。

深圳小明 回答时间:2016-6-17 11:58:28
任风吹吹 发表于 2016-6-17 10:37
看这图,就这么烧录的。

这个是Keil软件吗?

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版