低功耗设计实战:利用RTC唤醒与电源门控延长物联网设备电池寿命

芯兔兔 20260324

  • 低功耗设计
  • STM32L4
在物联网设备开发中,电池续航能力直接影响产品竞争力。通过RTC(实时时钟)唤醒与电源门控技术的协同应用,可让设备在大部分时间处于"深度睡眠"状态,将功耗降低至微安级别。本文以STM32L4系列为例,详细阐述实现路径。

低功耗设计实战:利用RTC唤醒与电源门控延长物联网设备电池寿命

在物联网设备开发中,电池续航能力是影响产品竞争力的关键因素之一。通过结合RTC(实时时钟)唤醒机制与电源门控技术,设备可以在绝大多数时间内维持在“深度睡眠”状态,使功耗降至微安级别。本文以STM32L4系列微控制器为例,探讨具体实现方法。

在深度睡眠模式下,系统仅维持RTC模块的运行,整体电流消耗可低至1.2μA(基于STM32L476测试数据)。当设定的唤醒时间到达时,RTC模块将触发中断,唤醒CPU执行任务。

RTC唤醒机制实现

RTC模块能够在系统休眠期间持续运行,通过设置闹钟中断实现周期性唤醒。以下为关键配置步骤:

// RTC初始化配置(以STM32L4为例)void RTC_Init(void) {    // 启用RTC时钟(LSE或LSI)    LL_RCC_LSE_Enable();    while (!LL_RCC_LSE_IsReady());    // 配置RTC时钟源    LL_RCC_SetRTCClockSource(LL_RCC_RTC_CLKSOURCE_LSE);    LL_RTC_InitTypeDef RTC_InitStruct = {0};    RTC_InitStruct.AsynchPrescaler = 0x7F;    RTC_InitStruct.SynchPrescaler = 0x00FF;    LL_RTC_Init(&RTC_InitStruct);    // 设置闹钟唤醒(每10分钟)    LL_RTC_Alarm_InitTypeDef Alarm_InitStruct = {0};    Alarm_InitStruct.AlarmTime.Hours = 0;    Alarm_InitStruct.AlarmTime.Minutes = 10;    Alarm_InitStruct.AlarmTime.Seconds = 0;    LL_RTC_Alarm_Init(&Alarm_InitStruct);    LL_RTC_EnableAlarm(RTC, LL_RTC_ALARM_A);}

电源门控技术的应用

电源门控是一种通过关闭非必要外设时钟来降低功耗的技术。在具体设计中,需注意外设电源管理与系统唤醒配置的协调。

外设电源分类

  • 始终供电:RTC、备份寄存器
  • 唤醒时供电:GPIO、SPI
  • 完全关闭:ADC、TIM2–TIM7

时钟控制与唤醒配置

// 进入深度睡眠前的时钟配置void Enter_DeepSleep(void) {    // 关闭非必要外设时钟    __HAL_RCC_ADC1_CLK_DISABLE();    __HAL_RCC_TIM2_CLK_DISABLE();    // ...其他外设    // 配置唤醒源(RTC+GPIO)    HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN1);    // 设置睡眠模式    HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);}

备份寄存器的使用

为防止主电源关闭导致数据丢失,可利用备份寄存器(BKPR)保存关键信息。

// 存储数据到备份寄存器void Save_BackupData(uint32_t data) {    HAL_PWR_EnableBkUpAccess();    __HAL_RCC_PWR_CLK_ENABLE();    WRITE_REG(PWR->BKPR1, data);}

优化设计策略

在实际应用中,可通过以下措施进一步提升系统的低功耗表现:

唤醒后的快速恢复

  • 在RTC中断中快速关闭唤醒源
  • 使用DMA进行数据采集,减少CPU干预

低功耗GPIO设置

// 配置GPIO为模拟模式(降低漏电流)void GPIO_LowPower_Config(void) {    GPIO_InitTypeDef GPIO_InitStruct = {0};    GPIO_InitStruct.Pin = GPIO_PIN_All;    GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;    GPIO_InitStruct.Pull = GPIO_NOPULL;    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);    // ...其他GPIO端口}

电压调节优化

在STM32L4系列中,可通过动态电压调节进一步降低功耗。

// 设置核心电压为0.95V(低工作电压)void Set_LowVoltage(void) {    HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE0);}

实际功耗对比分析

在一款环境监测设备中应用上述低功耗策略后,功耗显著下降,具体数据如下:

工作模式 电流消耗 占空比 日均功耗
持续工作模式 8.2mA 100% 196.8mAh
传统休眠模式 150μA 10% 36mAh
深度睡眠模式 1.8μA 0.5% 2.16mAh

常见问题排查

  • 唤醒失败:检查唤醒源配置、RTC时钟稳定性
  • 数据丢失:将关键数据保存至备份寄存器
  • 时钟恢复延迟:优先恢复RTC时钟,可临时启用HSI

通过RTC唤醒与电源门控机制的协同设计,可使物联网设备实现“一次充电、多年运行”的续航能力。在实际开发中,建议构建完整的测试体系,包括电流测量、唤醒时间统计和功耗分布分析,以验证低功耗设计的有效性。随着MCU技术的不断演进,集成电源管理单元(PMU)的新一代芯片将为低功耗应用带来更便捷的设计体验。

查看全文

点赞

芯兔兔

作者最近更新

  • 固件安全启动实践:基于AES与RSA的Flash加密及签名验证方案解析
    芯兔兔
    12小时前
  • UltraScale+架构解析:DSP Slice在浮点运算优化中的应用
    芯兔兔
    14小时前
  • 低功耗设计实战:利用RTC唤醒与电源门控延长物联网设备电池寿命
    芯兔兔
    15小时前

期刊订阅

相关推荐

  • 解读无线传感器

    2020-03-20

  • 国外研发基于压缩感知的CMOS图像传感器 实现低功耗图像分类

    2020-04-13

  • 思特威推出两款新型CMOS图像传感器 针对物联网和安防应用

    2020-06-10

  • Microchip推出最小maXTouch触摸屏控制器

    2021-08-16

评论0条评论

×
私信给芯兔兔

点击打开传感搜小程序 - 速览海量产品,精准对接供需

  • 收藏

  • 评论

  • 点赞

  • 分享

收藏文章×

已选择0个收藏夹

新建收藏夹
完成
创建收藏夹 ×
取消 保存

1.点击右上角

2.分享到“朋友圈”或“发送给好友”

×

微信扫一扫,分享到朋友圈

推荐使用浏览器内置分享功能

×

关注微信订阅号

关注微信订阅号,了解更多传感器动态

  • #{faceHtml}

    #{user_name}#{created_at}

    #{content}

    展开

    #{like_count} #{dislike_count} 查看评论 回复

    共#{comment_count}条评论

    加载更多

  • #{ahtml}#{created_at}

    #{content}

    展开

    #{like_count} #{dislike_count} #{reback} 回复

  • #{ahtml}#{created_at}

    #{content}

    展开

    #{like_count} #{dislike_count} 回复

  • 关闭
    广告