打印
[其他ST产品]

stm32l051低功耗之stop模式

[复制链接]
1514|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
原文:https://blog.csdn.net/qq_15391889/article/details/81151054

STM32L051算是一款使用的人不多的低功耗芯片,资料也没有像F系列那么多,但是它在低功耗方面性能优异。ST官方关于STM32L051停机模式低功耗给的指标如下,在stop without rtc模式下电流消耗能达到0.4ua,在stop with rtc模式下电流消耗能达到0.8ua。


使用特权

评论回复
沙发
木木guainv|  楼主 | 2019-6-12 15:33 | 只看该作者
在进入停机模式之前,按照ST官方例程,首先对引脚进行配置,设置成模拟输入状态。



void stop_mode_config(void)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
{
  GPIO_InitTypeDef GPIO_InitStructure;
  __HAL_RCC_PWR_CLK_ENABLE();
  HAL_PWREx_EnableUltraLowPower();
  HAL_PWREx_EnableFastWakeUp();
  __HAL_RCC_WAKEUPSTOP_CLK_CONFIG(RCC_STOP_WAKEUPCLOCK_MSI);
  __HAL_RCC_GPIOA_CLK_ENABLE();
  __HAL_RCC_GPIOB_CLK_ENABLE();
  __HAL_RCC_GPIOC_CLK_ENABLE();
  __HAL_RCC_GPIOD_CLK_ENABLE();       
  GPIO_InitStructure.Pin = GPIO_PIN_All;
  GPIO_InitStructure.Mode = GPIO_MODE_ANALOG;
  GPIO_InitStructure.Pull = GPIO_NOPULL;
  HAL_GPIO_Init(GPIOA, &GPIO_InitStructure);
  HAL_GPIO_Init(GPIOB, &GPIO_InitStructure);
  HAL_GPIO_Init(GPIOC, &GPIO_InitStructure);
  HAL_GPIO_Init(GPIOD, &GPIO_InitStructure);
  __HAL_RCC_GPIOA_CLK_DISABLE();
  __HAL_RCC_GPIOB_CLK_DISABLE();
  __HAL_RCC_GPIOC_CLK_DISABLE();
  __HAL_RCC_GPIOD_CLK_DISABLE();
}


使用特权

评论回复
板凳
木木guainv|  楼主 | 2019-6-12 15:33 | 只看该作者
配置外部中断,进入停止模式,等待唤醒


void valve_enter_ed_stop_mode(void)
{
  //config main key with interrupt
  bsp_init_main_key(BUTTON_MODE_EXTI);       
  //enter STOP without RTC
  __HAL_RCC_PWR_CLK_ENABLE();  
  HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);
}


使用特权

评论回复
地板
木木guainv|  楼主 | 2019-6-12 15:34 | 只看该作者
单片机供电3.3V,测试功耗,为0.42ua,基本与官方指标一致。



使用特权

评论回复
5
木木guainv|  楼主 | 2019-6-12 15:34 | 只看该作者
  当然在做低功耗开发时,CPU的低功耗特性只是做低功耗产品的开发的一部分,外围器件的功耗同样起决定作用。要想达到理想的功耗,CPU和外围器件必须能够完美的结合。很多情况下CPU在没有外部器件的情况下功耗是理想的,基本上与数据手册描述的一样,所选的外围器件的功耗也很低,但是CPU与外围器件连起来时就需要另加考虑。

     外部器件能用IO口供电的就尽量用IO口供电,在stop模式下,CPU的IO口的状态是保持的,这样外围器件的供电开关很容易控制。像外部存储芯片可以用IO口供电。有些外围芯片不适合用IO口供电的,像有些射频芯片,因为这些射频芯片上电启动要相当长的时间。

     如果CPU外围有器件连接,且没有用IO供电,一定要将CPU与器件相连的IO口设置成适当的模式,否则这些引脚可能会吸收很大的电流。


使用特权

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

本版积分规则

148

主题

4100

帖子

5

粉丝