NESA009A 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
MSPM0 MCU 提供五種主要運作模式 (功率模式),可根據應用需求最佳化裝置功耗。要降低功率,這些模式為:RUN (執行)、SLEEP (睡眠)、STOP (停止)、STANDBY (待機) 和 SHUTDOWN (關機)。CPU 在執行模式下執行程式碼。周邊設備中斷事件可將裝置從睡眠、停止或待機模式喚醒至執行模式。關機模式會完全停用內部核心穩壓器,以將功耗降至最低,而且只能透過 NRST、SWD 或特定 IO 上的邏輯位準相符項目進行喚醒。執行、睡眠、停止和待機模式也包括了幾個可配置的政策選項 (例如,RUN.x),可用於平衡效能和功耗。
為進一步平衡效能與功耗、MSPM0 裝置採用兩種功率域:PD1 (適用於 CPU、記憶體和高效能週邊設備) 和 PD0 (適用於低速、低功耗周邊設備)。PD1 始終在執行和睡眠模式下通電,但在所有其它模式下均被停用。PD0 始終在執行、睡眠、停止和待機模式下通電。在關機模式下,PD1 和 PD0 都被停用。
STM32G0 裝置具有類似的運作模式。下表提供了 STM32G0 與 MSPM0 裝置之間的簡短比較。
STM32G0 | MSPM0 | ||||
---|---|---|---|---|---|
模式 | 說明 | 模式 | 說明 | ||
執行 | 提供全時脈與周邊設備 | 執行 | 0 | 提供全時脈與周邊設備 | |
LP 執行 | CPU 限制為 2 MHz | 1 | SYSOSC 在設定頻率時,CPUCLK 和 MCLK 限制為 32 kHz | ||
2 | SYSOSC 停用;CPUCLK 和 MCLK 限制為 32 kHz | ||||
睡眠 | CPU 未計時 | 睡眠 | 0 | CPU 未計時 | |
LP 睡眠 | 與 LP 執行相同,但 CPU 不計時 | 1 | 與 Run1 相同,但 CPU 不計時 | ||
2 | 與 Run2 相同,但 CPU 不計時 | ||||
停止 | 0 | VCORE 領域時鐘已停用 | 停止 | 0 | 睡眠 0 + PD1 已停用 |
1 | 睡眠 1 + SYSOSC 檔位偏移至 4 MHz | ||||
1 | 停止 0 + 主電源穩壓器關閉 | 2 | 睡眠 2 + ULPCLK 限制為 32 kHz | ||
待機 | 具有 BOR 功能的最低功耗;RTC 可用;暫存器設定遺失。 | 待機 | 0 | 具有 BOR 功能的最低功耗;所有 PD0 周邊設備均可在 32 kHz 時接收 ULPCLK 和 LFCLK;RTC 可隨 RTCCLK 使用 | |
1 | 只有 TIMG0 和 TIMG1 可以在 32 kHz 時接收 ULPCLK 或 LFCLK;RTC 可隨 RTCCLK 使用 | ||||
停機 | 無時鐘或 BOR。核心調節關閉。RTC 域仍可在作用狀態。退出觸發器重設。 | 停機 | 無時鐘、BOR 或 RTC。核心調節關閉。PD1 和 PD0 已停用。退出觸發器重設位準 BOR。 |
如 表 3-9 中所示,MSPM0 周邊設備或周邊設備模式在低功耗運作模式下的可用性或運作速度可能受到限制。如需詳細資訊,請參閱 MSPM0 裝置特定產品規格表中的「運作模式支援的功能」表格,例如:
MSPM0L134x、MSPM0L130x 混合訊號微控制器產品規格表
MSPM0 裝置的另一項功能是讓一些周邊設備能夠執行非同步快速時鐘要求。這可讓 MSPM0 裝置以較低的功率模式執行,其中周邊設備並未作用,但仍可觸發或啟用周邊設備。當發生非同步快速時鐘要求時,MSPM0 裝置能夠快速地將內部振盪器提升至更高速及/或暫時進入更高運作模式,以處理即將發生的動作。這可讓 CPU 從計時器、比較器、GPIO 和 RTC 快速喚醒;接收 SPI、UART 和 I2C;或觸發 DMA 傳輸和 ADC 轉換,同時在最低功率模式下進入睡眠。如需實作非同步時鐘要求以及周邊設備支援與用途的詳細資訊,請參閱 MSPM0 TRM 中的適當章節。
與 STM32G0 裝置類似,MSPM0 裝置在執行等待事件 __WFE(); 或等待中斷 __WFI(); 指令時進入低功耗模式。低功耗模式由目前的電源政策設定決定。裝置電源政策由驅動程式庫函數設定。以下函數呼叫會將該電源政策設定爲待機 0。
DL_SYSCTL_setPowerPolicySTANDBY0();
STANDBY0 可替換爲所選的運作模式。如需管理電源政策的 driverlib API 的完整單,請參閱 MSPM0 SDK DriverLib API 指南的這個章節。另請參閱以下示範進入不同運作模式的程式碼範例。每個 MSPM0 裝置都有類似的範例。
瀏覽至 SDK 安裝,並在範例 > nortos > LP 名稱 > driverlib 中尋找低功耗模式程式碼範例