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 域 | 数 µA | RTC、GPIO、LEUART |
| EM3 | 停止 | 仅低频 | RET 域 | 约 1 µA | 同上,但更少外设 |
| EM4 | 断电 | 停止 | 备份域 | nA 级 | 复位、特定引脚 |
从 EM0 到 EM4,本质是逐步关闭电源域、降低时钟、缩小保持范围。EM2 与 EM3 的差别在于 EM3 关闭了更多外设和 RAM 保持,唤醒后需要重新初始化;EM4 则相当于“软关机”,唤醒等同于复位。
EMU_EnterEM2(true) 进入 EM2 并保留 RAM,测量电流;若偏高,再逐项关闭外设时钟和 GPIO,定位漏电源。五、把硬件基础落到调试动作上
实际调试时,可按以下顺序排查:
- 确认供电模式:读
EMU->PWRCFG判断当前是 DC-DC 还是 LDO。 - 确认能量模式:用
EMU_EnterEMx()前后测量电流,验证是否真正进入。 - 检查外设:关闭未用外设的时钟和使能位,GPIO 配置为确定电平。
- 检查唤醒源:确认没有意外中断频繁唤醒 CPU。
- 对比数据手册:将实测电流与手册典型值对比,偏差大则回到第 2 步。
下面这张图把电源域、供电转换和能量模式的关系集中呈现,便于在调试时快速定位“电从哪来、到哪去、被谁关掉”。
把这张图当作调试时的“地图”:先确认供电转换模式,再确认目标能量模式对应哪些域被关闭,最后逐项核对实际外设和引脚状态。只有硬件层面的电源域、供电域和能量模式都对齐,后续的软件低功耗优化才有稳定的基线。