芯查查logo
  • 数据服务
    1. 新产品
    2. 物料选型
    3. 查替代
    4. 丝印反查
    5. 查品牌
    6. PCN/PDN
    7. 查方案
    8. 查代理
    9. 数据合作
  • SaaS/方案
      SaaS产品
    1. 供应链波动监控
    2. 半导体产业链地图
    3. BOM管理
    4. 解决方案
    5. 汽车电子
    6. 政府机构
    7. 数据API
  • 商城
  • 行业资讯
    1. 资讯
    2. 直播
  • 论坛社区
    1. 论坛
    2. 学习
    3. 测评中心
    4. 活动中心
    5. 积分商城
  • 查一下
  • 开通会员
聪聪哥哥
NUCLEO-U083RC学习历程10-低功耗学习

首先STM32u083单片机是ST公司在2024年推出得超低功耗得的单片机,具有静态电流和多种超低功耗模式,可以很好得节约能源,可以延长电池得使用寿命,在使用锂电池供电得项目中,有着很大得发挥前景。

内部采用arm-cortex M0 内核得,运行频率可以到达56Mhz,对于ST公司的产品我没有超频使用过,不确定有没有问题。下面分享一下U0系列几种低功耗模式。

现在看下STM32U083得数据手册

从数据手册中我们可以看到,该款芯片支持得低功耗模式比较多,我们只需要根据自己得项目需求,使用不同的低功耗模式,下面简单介绍几种常用得低功耗模式

一:几种工作模式介绍

1:单片机工作在睡眠模式是M0核心关掉,部分外设处于工作状态 ;

2:low power模式是单片机得核心工作在很低得运行频率下。

3:三种STOP模式都是M0和大部分外设关掉,仅保留唤醒源。

4:待机模式要关闭SRAM,意味着唤醒后程序要从头运行,意思就是单片机需要重新运行。

注意一下:这几种模式都支持RTC唤醒,前提是配置了RTC唤醒功能

STOP2模式只允许用LPUART唤醒,不能用普通UART唤醒,STOP0/1可以用普通UART和LPUART唤醒

STOP0模式
HAL_PWR_EnterSTOPMode(PWR_MAINREGULATOR_ON, PWR_STOPENTRY_WFI);
STOP1模式
HAL_PWREx_EnterSTOP1Mode(PWR_STOPENTRY_WFI);
STOP2模式
HAL_PWREx_EnterSTOP2Mode(PWR_STOPENTRY_WFI);

实测图片如下:
 

1:进入停止模式0下得功耗测试:实现现象:板载LED灯闪烁一段时间后,关闭掉外设的所使用引脚的时钟,然后单片机进入停止模式0;可以按下板载的按键,唤醒单片机。

  /* Disable GPIOs clock */
  __HAL_RCC_GPIOA_CLK_DISABLE();
  __HAL_RCC_GPIOB_CLK_DISABLE();
  __HAL_RCC_GPIOD_CLK_DISABLE();
  __HAL_RCC_GPIOE_CLK_DISABLE(); 

    /* Suspend Tick increment to prevent wakeup by Systick interrupt.         */
    /* Otherwise the Systick interrupt will wake up the device within 1ms     */
    /* (HAL time base).                                                       */
    HAL_SuspendTick();

    HAL_PWR_EnterSTOPMode(PWR_MAINREGULATOR_ON, PWR_STOPENTRY_WFI);
    /* ... STOP 0 mode ... */

    /* Re-condiv the system clock to 48 MHz based on MSI, enable and
       select PLL as system clock source (PLL is disabled in STOP mode) */
    SYSCLKConfig_STOP();

可以看到,当程序开始运行的时候,板子功耗在6ma,左右但是当板子的进入低功耗后,整体的板子功耗我这款万用表已经测量不出来了,估计已经到达ua级别了。
在停止模式下,可以使用外部中断对单片机进行唤醒:

/**
  * @brief EXTI line detection callbacks
  * @param GPIO_Pin: Specifies the pins connected EXTI line
  * @retval None
  */
void HAL_GPIO_EXTI_Falling_Callback(uint16_t GPIO_Pin)
{
  if (GPIO_Pin == BUTTON_USER_PIN)
  {
    /* Recondiv LED4 */
    BSP_LED_Init(LED4);
   /* Toggle LED4 */
    BSP_LED_Toggle(LED4);
    TimingDelay = LED_TOGGLE_DELAY;
  }
}

板载的LED灯闪烁控制函数如下所示:

/**
  * @brief SYSTICK callback
  * @param None
  * @retval None
  */
void HAL_SYSTICK_Callback(void)
{
  if (TimingDelay != 0)
  {
    TimingDelay--;
  }
  else
  {
    /* Toggle LED4 */
    BSP_LED_Toggle(LED4);
    TimingDelay = LED_TOGGLE_DELAY;
  }
}

总结:单片机进入停止模式后,都可以使用外部中断唤醒单片机,所以我们我们可以使用外部中断的方式唤醒单片机。

每日打卡
版块: 开发板测评
2024/12/30 10:37
  • 举报
😁😂😃😄😅😆😉😊😋😌😍😏😒😓😔😖😘😚😜😝😞😠😡😢😣😤😥😨😩😪😫😭😰😱😲😳😵😷😸😹😺😻😼😽😾😿🙀🙅🙆🙇🙈🙉🙊🙋🙌🙍🙎🙏✂✅✈✉✊✋✌✏✒✔✖✨✳✴❄❇❌❎❓❔❕❗❤➕➖➗➡➰🚀🚃🚄🚅🚇🚉🚌🚏🚑🚒🚓🚕🚗🚙🚚🚢🚤🚥🚧🚨🚩🚪🚫🚬🚭🚲🚶🚹🚺🚻🚼🚽🚾🛀Ⓜ🅰🅱🅾🅿🆎🆑🆒🆓🆔🆕
@好友

全部评论

加载中
游客登录通知
已选择 0 人
自定义圈子
移动
发布帖子
发布动态
发布问答
最新帖子
【有奖话题35期】明明硬件比软件难,但为什么待遇还不如软件?【萤火工场CEM5861G-M11】介绍、测试芯查查技术沙龙第4期—ADI智能音频解决方案分享完美落幕LDO串联或并联二极管有什么用?电路保护与特殊应用解析缝纫机伺服0.3秒启停稳如磐石:三招驯服“针位漂移”顽疾
热门版块
查看更多
电子DIY
问型号
问技术
问行情
汽车电子工程师论坛
工业电子专区
新手入门指南
单片机/MCU论坛
PCB设计
开源项目

28

收藏

分享

微信扫码
分享给好友

评论