ZHCABX9A november 2022 – march 2023 MSPM0G1105 , MSPM0G1106 , MSPM0G1107 , MSPM0G1505 , MSPM0G1506 , MSPM0G1507 , MSPM0G3105 , MSPM0G3106 , MSPM0G3107 , MSPM0G3505 , MSPM0G3506 , MSPM0G3507 , MSPM0L1105 , MSPM0L1106 , MSPM0L1303 , MSPM0L1304 , MSPM0L1305 , MSPM0L1306 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346
MSPM0L MCU 提供五种主要工作模式(电源模式),可根据应用要求优化器件功耗。这些模式按照功耗从高到低排列如下:运行、睡眠、停止、待机和关断。CPU 会在运行模式中执行代码。外设中断事件可将器件从睡眠、停止或待机模式唤醒至运行模式。关断模式会完全禁用内部内核稳压器,以更大限度地降低功耗,并且只能通过 NRST、SWD 或某些 IO 上的逻辑电平匹配来实现唤醒。运行、睡眠、停止和待机模式还包括多个可配置的策略选项(例如,RUN.x),用于平衡性能与功耗。
为了进一步平衡性能和功耗,MSPM0L 器件实现了两个电源域:PD1(用于 CPU、存储器和高性能外设)和 PD0(用于低速、低功耗外设)。在运行和睡眠模式下,PD1 始终通电,但在所有其他模式下会禁用。PD0 在运行、睡眠、停止和待机模式下始终通电。PD1 和 PD0 在关断模式下都会禁用。
STM32G0 器件具有类似的工作模式。下表对 STM32G0 器件和 MSPM0 器件进行了简要比较。
STM32G0 | MSPM0 | ||||
---|---|---|---|---|---|
模式 | 说明 | 模式 | 说明 | ||
运行 | 提供完整的时钟和外设 | 运行 | 0 | 提供完整的时钟和外设 | |
LP 运行 | CPU 限制为 2MHz | 1 | SYSOSC 处于设定的频率;CPUCLK 和 MCLK 限制为 32kHz | ||
2 | SYSOSC 被禁用;CPUCLK 和 MCLK 限制为 32kHz | ||||
睡眠 | 不对 CPU 计时 | 睡眠 | 0 | 不对 CPU 计时 | |
LP 睡眠 | 与 LP 运行相同;但不对 CPU 计时 | 1 | 与运行 1 相同,但不对 CPU 计时 | ||
2 | 与运行 2 相同,但不对 CPU 计时 | ||||
停止 | 0 | VCORE 域时钟被禁用 | 停止 | 0 | 睡眠 0 + PD1 被禁用 |
1 | 睡眠 1 + SYSOSC 档位切换至 4MHz | ||||
1 | 停止 0 + 主电源稳压器关闭 | 2 | 睡眠 2 + ULPCLK 限制为 32kHz | ||
待机 | 具有 BOR 功能的最低功耗;RTC 可用;寄存器设置丢失。 | 待机 | 0 | 具有 BOR 功能的最低功耗;所有 PD0 外设都可以接收 32kHz 的 ULPCLK 和 LFCLK;RTC 可用于 RTCCLK | |
1 | 只有 TIMG0 和 TIMG1 可以接收 32kHz 的 ULPCLK 或 LFCLK;RTC 可用于 RTCCLK | ||||
关断 | 没有时钟或 BOR。内核稳压关闭。RTC 域仍可处于活动状态。退出触发复位。 | 关断 | 没有时钟、BOR 或 RTC。内核稳压关闭。PD1 和 PD0 被禁用。退出触发复位级别 BOR。 |
如表 3-9 所示,在低功耗工作模式下,MSPM0 外设或外设模式的可用性或运行速度可能会受到限制。有关具体详细信息,请参阅特定于 MSPM0 器件的数据表中的“不同工作模式下支持的功能”表,例如:
MSPM0L134x、MSPM0L130x 混合信号微控制器数据表
MSPM0 器件的另一项功能是某些外设能够执行异步快速时钟请求。这使 MSPM0 器件能够处于低功耗模式,在该模式下外设未处于活动状态,但仍然能够触发或激活外设。当异步快速时钟请求发生时,MSPM0 器件能够快速将内部振荡器提升至更高的速度和/或暂时使其进入更高的工作模式以处理即将发生的操作。这允许通过计时器、比较器、GPIO 和 RTC 快速唤醒 CPU;接收 SPI、UART 和 I2C;或触发 DMA 传输和 ADC 转换,同时在最低功耗模式下睡眠。有关异步时钟请求实现以及外设支持和用途的具体详细信息,请参阅 MSPM0 TRM 中相应的章节。
与 STM32G0 器件类似,MSPM0 器件在执行等待事件 __WFE(); 或等待中断 __WFI(); 指令时会进入低功耗模式。低功耗模式由当前电源策略设置决定。器件电源策略由驱动程序库函数设置。以下函数调用将该电源策略设置为待机 0。
DL_SYSCTL_setPowerPolicySTANDBY0();
STANDBY0 可替换为选择的工作模式。有关管理电源策略的 driverlib API 的完整列表,请参阅 MSPM0 SDK DriverLib API 指南的这一部分。另请参阅以下代码示例,这些示例演示了如何进入不同的工作模式。每个 MSPM0 器件都有类似的示例。
导航至 SDK 安装目录,在 examples > nortos > LP name > driverlib 中找到低功耗模式代码示例