在物联网和边缘计算设备的设计中,功耗管理是实现设备长效续航与高效性能平衡的核心挑战。恩智浦的MCX N系列微控制器为此提供了精细化的解决方案,本文将深入解析MCX N系列的六种电源模式,对比其核心特性、唤醒机制与典型应用,并介绍如何通过SPC与CMC模块进行配置。
1. MCX N系列的六种电源模式核心特性对比
MCX N系列的六种电源模式涵盖了从高性能运行到极致低功耗的多种场景,以下是它们的核心特性对比:
电源模式 | 核心电压(典型) | CPU/系统/总线时钟 | Flash状态 | SRAM保持能力 | 唤醒方式 | 典型应用场景 |
---|---|---|---|---|---|---|
Active | 1.0V-1.2V | 全部或部分开启 | 供电 | 全部保持 | 持续运行 | 高强度计算、实时控制 |
Sleep | 可配置 | CPU关闭,系统开启 | 供电 | 可配置部分进入Deep Sleep | 中断、外设事件 | 短暂空闲、等待外设响应 |
Deep Sleep | 可配置 | 全部关闭 | 供电 | 可配置为保持(State Retention) | 中断、唤醒事件(如DMA)、外部信号 | 传感器定时采集、低功耗后台任务 |
Power Down | 保持或降低 | 全部关闭 | 掉电 | 可配置部分掉电 | 中断、唤醒事件、GPIO、VDD_SYS域外设 | 长时间休眠、维持状态待机 |
Deep Power Down | CORE域掉电 | 全部关闭 | 掉电 | 仅SRAMA可保持 | 外部复位信号、VDD_SYS域外设(唤醒即复位) | 极低功耗待机、完全状态销毁后重启 |
VBAT | 全部掉电 | 全部关闭 | 掉电 | 仅SRAMA可保持(需配置) | 上电复位(POR) | RTC保持、电池备份域供电 |
2. Active mode 活动模式
MCX N系列支持三种Active mode : OD (Over Drive), SD (Standary Drive), MD (Mid Drive). OD/SD/MD模式下对应的VDD_CORE电压分别为1.2V/1.1V/1.0V, CPU时钟在三种模式下最高为150M/100M/50M, 各个外设的时钟在三种模式下也是不同的,详情请参考MCX Nx4x RM 或者MCX N23x RM.
Active模式允许在可能的情况下采用以下省电选项:配置CORE子电源域(CORE_MAIN/CORE_WAKE)的电压水平来平衡功耗和性能、关闭未用到的模块的时钟
3. Sleep mode 睡眠模式
在Sleep模式下,CPU0时钟是关闭的,但是系统时钟(system clock)和总线时钟 (bus clock) 还在,大部分模块是可以工作的。
Sleep模式允许在可能的情况下采用以下省电选项:
- 配置CORE子电源域的电压水平来平衡功耗和性能
- 通过软件单独配置SRAM区域为Active或者Deep Sleep状态
- 关闭未用到的模块的时钟
4. Deep Sleep mode 深度睡眠模式
在Deep Sleep模式下,CPU执行暂停,内核时钟是关闭的。基于不同的时钟配置,Deep Sleep模式支持下面的行为:
- CPU时钟,系统时钟,总线时钟都关闭
- 一些模块可以利用低功耗异步时钟源而保留工作状态,并可以作为唤醒源
- 配置系统RAM为State Retention状态
- 中断或者唤醒事件可以唤醒CPU。另外,Deep Sleep模式也支持部分唤醒,即唤醒事件只唤醒总线控制器而不是CPU,例如只唤醒DMA控制器,芯片会在DMA完成任务之后自动进入Deep Sleep模式。
Deep Sleep模式允许在可能的情况下采用以下省电选项:
- 配置CORE子电源域的电压水平来平衡功耗和性能
- 关闭未用到的模块的时钟
5. Power Dowm mode 掉电模式
Power Down模式会使芯片的大部分功能都进入静止状态,这是支持芯片保留所有寄存器状态的最低的电源模式。可以通过中断或者唤醒事件来唤醒处于Power Down模式时的芯片,外部的信号也可以用来唤醒芯片,例如GPIO或者VDD_SYS电源域下的外设。
在Power Down模式下:
- CPU时钟,系统时钟,总线时钟都是关闭的
- CORE_MAIN和CORE_WAKE域处于state retention状态
- Flash掉电
- 软件可以独立的配置SRAM区域进入deep sleep或者掉电状态
- 为了平衡不同的模块时钟频率和功耗,CORE子电源域的电压可以VDD_CORE电压或IVS(reduced voltage scaling)电压中独立选择。
6. Deep Power Down mode 深度掉电模式
在Deep power down模式下:
- 整个CORE电源域,包括子电源域都是掉电的
- VDD_CORE的片上稳压器(CORE LDO/DCDC)也是断电的
- System LDO是工作的
- 此模式下只有lp_osc时钟是可以工作的,lp_osc可以来自于FRO16K或者外部的32K晶振。
- 只有SRAMA可以被配置为retention状态。
- Deep Power Down模式下芯片的唤醒会执行Reset流程,外部的Reset信号或者VDD_SYS电源域的外设可以唤醒芯片。
7. VBAT 模式
VBAT模式是MCX N系列支持的最低的功耗模式,只有POR才可以将芯片从VBAT模式唤醒。VDD_SYS和VDD_CORE电源域掉电之后芯片才会进入VBAT模式。
在VBAT模式下,只有SRAMA可以被配置为retention状态。
需要注意的是,芯片在工作时,VDD_BAT必须要供电,如果VDD_BAT电压太低会触发VBAT POR事件,VBAT POR事件会复位芯片。
8. 电源模式的配置
我们可以通过配置SPC (System Power Control)和 CMC (Core Mode Controller)来配置芯片进入想要的电源模式。
其中SPC用来配置片上稳压器(CORE LDO/DCDC/System LDO)在不同电源模式下的功能,对于Active模式和Sleep模式,我们需要使用SPC模块中的ACTIVE_CFG和ACTIVE_CFG1寄存器来配置片上稳压器,而对于Deep Sleep, Power Down, Deep Power Down模式,我们需要使用LP_CFG, LP_CFG1寄存器来配置片上稳压器。
CMC模块用来配置芯片进入哪一种功耗模式以及如何进入相应的功耗模式。
9. 如何选择电源模式
选择哪种电源模式,取决于你的具体应用需求:
- 需要持续高性能处理时,用Active模式。
- 处理任务间歇性出现,且需要快速响应外设中断时,考虑Sleep或Deep Sleep模式。根据需保持状态的外设多少和唤醒时间要求来选择。
- 设备需要长时间待机,但需保持工作状态(寄存器、部分内存),并能被外部事件快速唤醒时,Power Down模式很适用。
- 对功耗有极致要求,且不介意唤醒后像重启一样(从复位向量重新开始执行)的场合,才考虑Deep Power Down模式。
- 仅需极微小电流维持实时钟或少量关键数据,并由备份电池供电时,使用VBAT模式。