2. Silicon Labs低功耗硬件平台与电源域解析

要真正把 EFR32 或 EFM32 的低功耗调好,第一步不是写代码,而是先看懂芯片内部“电是怎么走的”。Silicon Labs 的低功耗能力并不是单一技术,而是由电源域划分、外设供电域、DC-DC/LDO 供电模式、能量模式(EM0–EM4)四层硬件基础共同支撑。理解这四层之间的关系,才能判断某次功耗异常到底出在供电转换、外设漏电,还是能量模式进入不彻底。

一、电源域:芯片内部并非“一锅供电”

EFR32/EFM32 内部按功能把供电划分为多个电源域,典型包括:

  • VDD 主电源域:为 CPU 内核、Flash、SRAM、大部分数字外设供电,是功耗的主要来源。
  • AVDD 模拟电源域:为 ADC、DAC、模拟比较器、温度传感器等模拟外设供电,噪声敏感,通常需要独立去耦。
  • DVDD 数字 I/O 域:为 GPIO 输出驱动和数字接口供电,其电压可与 VDD 不同(如 VDD=1.8V、DVDD=3.3V)。
  • RET 保持域:在 EM2/EM3 下维持低频振荡器、RTC、部分寄存器和 RAM 保持,是低功耗待机的“心脏”。
  • 备份域(Backup Domain):EM4 下由备份电源或纽扣电池供电,仅维持极少量逻辑和唤醒源。

这些域之间通过内部 LDO 或 DC-DC 转换器连接,不同能量模式下哪些域被断电、哪些域被保持,直接决定了静态电流量级。例如 EM2 下 VDD 主域大部分被关闭,仅 RET 域工作,电流可降到 µA 级;而 EM4 下几乎全部断电,仅备份域维持,电流可低至 nA 级。

二、外设供电域:谁在耗电,谁可以被关

每个外设都挂在某个电源域下,并受时钟门控和电源门控双重控制。低功耗调试中常见的“漏电大户”往往不是 CPU,而是被遗忘的外设:

  • 未关闭的 ADC 会持续消耗 AVDD 电流,即使不采样也可能有偏置电流。
  • GPIO 悬空输入会导致输入级振荡漏电,应配置为输出或使能上拉/下拉。
  • 未使用的串口、定时器若时钟未关,会持续翻转逻辑。
  • 调试接口(SWD)在量产固件中若未禁用,会额外增加待机电流。

因此,进入低能量模式前,应逐一确认外设的 Enable、Clock、Pin 三态是否都已处理。Silicon Labs 的 EMU(Energy Management Unit)和 CMU(Clock Management Unit)寄存器提供了对这些域的集中控制。

三、DC-DC 与 LDO:供电模式决定转换效率

EFR32 系列支持两种主供电转换方式:

  • LDO 模式:线性稳压,噪声低、外围简单,但效率约为 Vout/Vin,压差大时损耗明显。例如 3.3V 输入、1.8V 输出,效率仅约 55%。
  • DC-DC 模式:开关降压,效率可达 80%–90%,适合电池供电场景,但需要外接电感,且开关噪声可能影响模拟外设。

选择原则:若系统以电池供电、平均电流较大,优先 DC-DC;若对 ADC 噪声极敏感或输入输出压差很小,可考虑 LDO。部分芯片支持 DC-DC 与 LDO 并联的“旁路”模式,可在 EM0 用 DC-DC、EM2 切回 LDO 以降低静态功耗。

四、能量模式 EM0–EM4 的硬件基础

能量模式是电源域和外设供电策略的“组合结果”,而不是软件开关。下表给出典型特征(以 EFR32MG 系列为例,具体数值以数据手册为准):

模式CPU时钟保持域典型电流唤醒源
EM0运行全速全部mA 级—
EM1休眠高频可用全部数百 µA任意中断
EM2停止仅低频RET 域数 µARTC、GPIO、LEUART
EM3停止仅低频RET 域约 1 µA同上,但更少外设
EM4断电停止备份域nA 级复位、特定引脚

从 EM0 到 EM4,本质是逐步关闭电源域、降低时钟、缩小保持范围。EM2 与 EM3 的差别在于 EM3 关闭了更多外设和 RAM 保持,唤醒后需要重新初始化;EM4 则相当于“软关机”,唤醒等同于复位。

调试建议:先用 EMU_EnterEM2(true) 进入 EM2 并保留 RAM,测量电流;若偏高,再逐项关闭外设时钟和 GPIO,定位漏电源。

五、把硬件基础落到调试动作上

实际调试时,可按以下顺序排查:

  1. 确认供电模式:读 EMU->PWRCFG 判断当前是 DC-DC 还是 LDO。
  2. 确认能量模式:用 EMU_EnterEMx() 前后测量电流,验证是否真正进入。
  3. 检查外设:关闭未用外设的时钟和使能位,GPIO 配置为确定电平。
  4. 检查唤醒源:确认没有意外中断频繁唤醒 CPU。
  5. 对比数据手册:将实测电流与手册典型值对比,偏差大则回到第 2 步。

下面这张图把电源域、供电转换和能量模式的关系集中呈现,便于在调试时快速定位“电从哪来、到哪去、被谁关掉”。

EFR32/EFM32 电源域与能量模式关系图 VDD 输入 3.3V / 1.8V 供电转换 DC-DC(高效) LDO(低噪) 芯片内部电源域 VDD 主域 AVDD 模拟域 DVDD I/O域 RET 保持域 能量模式 EM0 → EM4:逐步关闭电源域 EM0 CPU运行 全域供电 EM1 CPU休眠 高频可用 EM2 仅RET域 低频时钟 EM3 更少外设 RAM不保持 EM4 仅备份域 唤醒=复位 调试关注点 ① 供电模式:DC-DC 效率高,LDO 噪声低,按场景选择 ② 外设三态:Enable / Clock / Pin 逐一确认,避免悬空漏电 ③ 唤醒源:检查 RTC、GPIO、LEUART 是否意外频繁唤醒 ④ 实测对比:与数据手册典型电流比对,偏差大则回查电源域

把这张图当作调试时的“地图”:先确认供电转换模式,再确认目标能量模式对应哪些域被关闭,最后逐项核对实际外设和引脚状态。只有硬件层面的电源域、供电域和能量模式都对齐,后续的软件低功耗优化才有稳定的基线。