OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7336|回复: 9

STM8L052C6T6低功耗问题

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
25
金钱
25
注册时间
2015-12-21
在线时间
0 小时
发表于 2015-12-21 10:28:42 | 显示全部楼层 |阅读模式
5金钱
要设计一款产品要求功耗在5uA以下,但无论怎么调试,在halt()模式下,最低只达到61~62uA。向各位求教:
STM8L052CTT6,3V供电,只用PC7和PF0两个I/O作中断输入。一个作按键,一个作为计数脉冲。
PCB上有外部晶振,但我用外部晶振时,功耗更高,现在用的是默认的内部高速时钟。
程序如下:
void GPIO_LowPower_Config(void){
  GPIO_Init(GPIOA,GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7 ,GPIO_Mode_Out_PP_Low_Slow);
  GPIO_Init(GPIOB, GPIO_Pin_All, GPIO_Mode_Out_PP_Low_Slow);
  GPIO_Init(GPIOC, GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6, GPIO_Mode_Out_PP_Low_Slow);
  GPIO_Init(GPIOD, GPIO_Pin_All, GPIO_Mode_Out_PP_Low_Slow);
  GPIO_Init(GPIOE, GPIO_Pin_All, GPIO_Mode_Out_PP_Low_Slow);
  GPIO_Init(GPIOF,GPIO_Pin_All ,GPIO_Mode_Out_PP_Low_Slow);
  GPIO_Init( GPIOF, GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7, GPIO_Mode_In_FL_No_IT);

  GPIO_Init( GPIOF, GPIO_Pin_1, GPIO_Mode_In_FL_No_IT);        //CLK
  GPIO_Init( GPIOC, GPIO_Pin_7, GPIO_Mode_In_FL_IT);        //KEY

  ADC_DeInit(ADC1);
  CLK_DeInit();

  CLK_PeripheralClockConfig(CLK_Peripheral_TIM1,DISABLE);
  CLK_PeripheralClockConfig(CLK_Peripheral_TIM2,DISABLE);
  CLK_PeripheralClockConfig(CLK_Peripheral_TIM3,DISABLE);
  CLK_PeripheralClockConfig(CLK_Peripheral_TIM4,DISABLE);
  CLK_PeripheralClockConfig(CLK_Peripheral_ADC1,DISABLE);
  CLK_PeripheralClockConfig(CLK_Peripheral_I2C1,DISABLE);
  CLK_PeripheralClockConfig(CLK_Peripheral_USART1,DISABLE);
  CLK_PeripheralClockConfig(CLK_Peripheral_USART2,DISABLE);
  CLK_PeripheralClockConfig(CLK_Peripheral_USART3,DISABLE);
}

void Halt_Init(void)
{
  PWR->CSR2 = 0x2;
  LCD_Cmd(DISABLE);
  while ((LCD->CR3 & 0x40) != 0x00);
  GPIO_LowPower_Config();
  CLK_RTCClockConfig(CLK_RTCCLKSource_Off, CLK_RTCCLKDiv_1);
  
  #ifdef USE_LSE
    CLK_LSEConfig(CLK_LSE_OFF);
    while ((CLK->ECKCR & 0x04) != 0x00);
  #else
    CLK_LSICmd(DISABLE);
    while ((CLK->ICKCR & 0x04) != 0x00);
  #endif
  CLK_PeripheralClockConfig(CLK_Peripheral_RTC, DISABLE);
  CLK_PeripheralClockConfig(CLK_Peripheral_LCD, DISABLE);
}
main(){
  CLK_DeInit();
  CLK_HSICmd(ENABLE);
  CLK_SYSCLKDivConfig( CLK_SYSCLKDiv_128 );
  CLK_ClockSecuritySystemEnable();

  Halt_Init();
  enableInterrupts();
//  disableInterrupts();
  halt();
  while(1);
}


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165186
金钱
165186
注册时间
2010-12-1
在线时间
2106 小时
发表于 2015-12-21 23:46:21 | 显示全部楼层
回复

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2015-12-27
在线时间
3 小时
发表于 2015-12-27 09:39:38 | 显示全部楼层
关闭HSI时钟,开启LSI时钟
回复

使用道具 举报

2

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
130
金钱
130
注册时间
2016-1-2
在线时间
13 小时
发表于 2016-1-2 16:07:27 | 显示全部楼层
IO口要根据实际应用配置成功耗最低的方式
回复

使用道具 举报

3

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2014-9-11
在线时间
9 小时
发表于 2016-1-4 23:27:53 | 显示全部楼层
请教一下  您用的是什么开发环境和仿真器,我用stm8l051f3在iar下用st-linkv2仿真不了?
回复

使用道具 举报

3

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2014-4-21
在线时间
0 小时
发表于 2016-1-15 09:47:57 | 显示全部楼层
IO 口状态可以多试试,你用的是低电压模式,我之前用的是halt模式,最低3uA。IO口不接电路的话实测GPIO_Mode_Out_OD_Low_Slow是最低的。其他IO状态都要高很多。
回复

使用道具 举报

1

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
152
金钱
152
注册时间
2014-1-16
在线时间
23 小时
发表于 2016-1-27 11:44:23 | 显示全部楼层
IO 口状态要置0。然后你再测测,功耗会低的。
上班清闲,喜欢钻研。
回复

使用道具 举报

2

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2013-9-11
在线时间
6 小时
发表于 2016-2-2 14:00:53 | 显示全部楼层
就配置来说还是挺合理的 考虑一下外围的电路设计
回复

使用道具 举报

10

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
153
金钱
153
注册时间
2016-5-22
在线时间
42 小时
发表于 2016-7-2 10:57:53 | 显示全部楼层
halt模式出来后还要重新对有用的IO进行初始化吗
回复

使用道具 举报

3

主题

15

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2016-7-6
在线时间
2 小时
发表于 2016-7-6 09:39:08 | 显示全部楼层
lpx280666373 发表于 2016-1-4 23:27
请教一下  您用的是什么开发环境和仿真器,我用stm8l051f3在iar下用st-linkv2仿真不了?

st link 能用  在iar能仿真
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-9-30 02:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表