透過 evkmimxrt1170_power_mode_switch_bm_core0 範例確認 RT1170 在低功率模式下消耗的電流。
用途說明 : 開發環境,本文使用版本 11.3.0_5222。
用途說明 : 驅動及範例,本文使用版本SDK_2.9.2_MIMXRT1170-EVK。
用途說明 : 功能驗證。
用途說明 : 提供程式燒錄與Debug。
透過 SDK 選擇 evkmimxrt1170_power_mode_switch_bm_core0 配置並順帶說明如何配置 GPIO 做為 Wake up Pin
1.在 Import SDK Example 中選擇 power mode switch bm,由於此範例會同時運作在 M7 及 M4 故兩個專案 core0 及 core1 都需要 Import。
圖 3.1.
2.在專案 core0 中點選 MCUXpresso Config Tools à Open Pins
圖 3.2.
3.點選 D9 配置為 gpio_mux5_io11。
圖 3.3.
4.在 Routing Details for BOARD_IniPins 中設定 D9 如下
l Direction : Input
l GPIO Interrupt : Falling Edge
l Pull up/down Config : Pull Up
l Pull/Keeper Select : Keeper
圖 3.4.
5.完成後點選 Update Code 後,會跳出將要更新的檔案,如要確認變更那些,可點擊 change 確認 Config Tools 更新哪些部分,在此本文點選 OK 進行下一步。
圖 3.5.
- 開啟source à power_mode_switch_core0.c 中在第 133 行新增下列程式,此程式主要在處理設定的 GPIO 產生中斷後退出 lower power mode
void GPIO5_Combined_0_15_IRQHandler(void){
if ((1U << 11U) & GPIO_GetPinsInterruptFlags(GPIO5)) {
/* Disable interrupt. */ GPIO_ClearPinsInterruptFlags(GPIO5, 1U << 11U); GPIO_DisableInterrupts(GPIO5, 1U << 11U); GPC_DisableWakeupSource(GPIO5_Combined_0_15_IRQn); #ifdef CORE1_GET_INPUT_FROM_CORE0 MU_TriggerInterrupts(MU_BASE, kMU_GenInt0InterruptTrigger); #endif
} SDK_ISR_EXIT_BARRIER; } |
圖 3.6.
7.在 APP_SetWakeupConfig 中新增以下程式片段,設定 GPIO5_11 為 wake up pin
/************************************* * * Use GPIO_DISP_B2_10 as Wake up pin * * **********************************/ GPIO_ClearPinsInterruptFlags(GPIO5,1U << 11U); /* Enable GPIO pin interrupt */ GPIO_EnableInterrupts(GPIO5,1U << 11U); /* Enable the Interrupt */ EnableIRQ(GPIO5_Combined_0_15_IRQn); |
GPC_EnableWakeupSource(GPIO5_Combined_0_15_IRQn); |
圖 3.7.
8.點擊 build Project。
圖 3.8.
9.將板子上 J38 Jumper 調整為 3-8 以 Micro USB 供電,將 UART Dongle 接在 J9-2、J9-4,將 Micro USB 接上電腦點選 debug (藍色蟲子符號) 後會進入 debug mode。
圖 3.9.
圖 3.10.
10.因為進入 Low Power Mode 會關閉模組電源,故確認燒入成功後即可點選 Terminate All Debug Sessions
圖 3.11.
11.開啟 Tera Term 分別是 USB 序列裝置及 UART Dongle,UART 參數均為 baud 115200。
圖 3.12.
圖 3.13.
12.按下開發版上的 Reset 按鍵,則 Tera Term 會印出下列訊息,本範例有兩種展示模式
- A : 範例預設各個 Setpoint 與 CPU 狀態搭配
- B : 在 Setpoint 0 設定下各個 CPU 狀態
圖 3.14.
13.輸入 A 會進入範例預設的組合範例,選擇 L Setpoint 10,M7 & M4 Suspend,選此模式主要在說明在 Setpoint 10 下 GPIO 電源並未關閉下,前述設定的 GPIO 中斷可以動作。
圖 3.15.
圖 3.16.
14.將 GPIO_DISP_B2_10 接地,此時可看到 Tera Term 印出退出 Low Power Mode
圖 3.17.
圖 3.18.
整個 Power Mode 的機制由三個模式組成 Setpoint、CPU Mode 、Standby,藉由三個模組設定達到控制功耗的目的
圖 4.1.
Setpoint 是在 RT1170 新增的概念,透過預先寫設定的模式對應相關模組電源開關,用戶可依造需求直接設定所需的模式,避免繁雜的開關模組電源設定,目前總共可以有 16 個 Setpoint 可以設定,下表說明在各個不同 Setpoint 下模組電源狀態,+為啟動狀態,-為關閉狀態,xPx 代表 x.xV 電壓。
|
Power Group | ||||||||
DCDC_ |
DCDC_ |
DCDC_ |
DCDC_ |
DCDC_ |
DCDC_ |
DCDC_ |
DCDC_ |
DCDC_ | |
Setpoint 1 |
+ |
+ |
- |
+ |
- |
1P0 |
1P0 |
1P8 |
1P8 |
Setpoint 2 |
+ |
+ |
- |
+ |
- |
1P1 |
1P1 |
1P8 |
1P8 |
Setpoint 3 |
+ |
+ |
- |
+ |
- |
1P1 |
1P1 |
1P8 |
1P8 |
Setpoint 4 |
+ |
+ |
- |
+ |
- |
1P1 |
1P1 |
1P8 |
1P8 |
Setpoint 5 |
+ |
+ |
- |
+ |
- |
1P0 |
1P0 |
1P8 |
1P8 |
Setpoint 6 |
+ |
+ |
- |
+ |
- |
0P9 |
0P9 |
1P8 |
1P8 |
Setpoint 7 |
+ |
+ |
- |
+ |
- |
0P9 |
0P9 |
1P8 |
1P8 |
Setpoint 8 |
+ |
+ |
- |
+ |
- |
0P9 |
0P9 |
1P8 |
1P8 |
Setpoint 9 |
+ |
+ |
- |
+ |
- |
0P9 |
0P9 |
1P8 |
1P8 |
Setpoint 10 |
+ |
+ |
- |
+ |
- |
0P9 |
0P9 |
1P8 |
1P8 |
Setpoint 11 |
- |
- |
- |
- |
- |
0P9 |
0P9 |
1P8 |
1P8 |
Setpoint 12 |
- |
- |
- |
- |
- |
0P9 |
0P9 |
1P8 |
1P8 |
Setpoint 13 |
- |
- |
- |
- |
- |
0P9 |
0P9 |
1P8 |
1P8 |
Setpoint 14 |
- |
- |
- |
- |
- |
0P9 |
0P9 |
1P8 |
1P8 |
Setpoint 15 |
- |
- |
- |
- |
- |
0P9 |
0P9 |
1P8 |
1P8 |
Setpoint 16 |
- |
- |
- |
- |
- |
0P9 |
0P9 |
1P8 |
1P8 |
|
Power Group | ||||||||
WAKEUP MIX power |
MEGA MIX power |
DISPLAY MIX power |
LPSR MIX power |
WAKEUP MIX state save |
MEGA MIX state save |
DISPLAY MIX state save |
LPSR MIX state save |
PMIC stand by | |
Setpoint 1 |
+ |
+ |
+ |
+ |
- |
- |
- |
- |
- |
Setpoint 2 |
+ |
+ |
+ |
+ |
- |
- |
- |
- |
- |
Setpoint 3 |
+ |
+ |
+ |
+ |
- |
- |
- |
- |
- |
Setpoint 4 |
+ |
+ |
+ |
+ |
- |
- |
- |
- |
- |
Setpoint 5 |
+ |
+ |
+ |
+ |
- |
- |
- |
- |
- |
Setpoint 6 |
+ |
+ |
+ |
+ |
- |
- |
- |
- |
- |
Setpoint 7 |
+ |
+ |
+ |
+ |
- |
- |
- |
- |
- |
Setpoint 8 |
+ |
+ |
+ |
+ |
- |
- |
- |
- |
- |
Setpoint 9 |
+ |
+ |
+ |
+ |
- |
- |
- |
- |
- |
Setpoint 10 |
+ |
+ |
+ |
+ |
- |
- |
- |
- |
- |
Setpoint 11 |
- |
- |
- |
+ |
- |
- |
- |
- |
- |
Setpoint 12 |
- |
- |
- |
+ |
- |
- |
- |
- |
- |
Setpoint 13 |
- |
- |
- |
+ |
- |
- |
- |
- |
- |
Setpoint 14 |
- |
- |
- |
+ |
- |
- |
- |
- |
- |
Setpoint 15 |
- |
- |
- |
+ |
- |
- |
- |
- |
|
Setpoint 16 |
- |
- |
- |
+ |
- |
- |
- |
- |
|
圖 4.2.RT1170 電源組
i.MX RT1170 包含兩顆 CPU 平台:Cortex-M7 及 Cortex-M4,兩個 CPU 均有支援以下模式 RUN、Wait、Stop 及 Suspend。
CPU Mode可由以下事件進行切換
l Sleep Event:CPU 使用 WFI / WFE 指令進入睡眠狀態
l Wakeup Event:由尚未休眠的 IRQ 喚醒
兩個 CPU 可同時進入相同或相異的 CPU Mode,比如 CPU M7 進入 Run Mode,CPU M4則進入 Stop Mode。所有組合均是被允許的但根據應用並非所有組合都可使用。如特定資源僅 M7 可訪問,但在應用中使用該資源,此時 M7 則必須是醒著狀態。
該模式是在 CPU Mode 及 Setpoint 之外的一種 low-power Mode 設置,當 CPU 在 Wait,Stop,Suspend 下並兩個 CPU 發出需求時才可進入。
1.下表為在範例 A展示模式下電流量測數值
CPU State |
SP Mode |
Current (A) Total |
Current (mA) DCDC_IN |
Current (A) DCDC_DIG |
Current (A) DCDC_ANA |
Current (mA) VDD_SNVS |
Current (mA) VDD_LPSR_IN | |
M7 |
M4 | |||||||
Run |
Run |
1 |
0.307 |
172 |
0.452 |
0.03 |
0.006 |
0.028 |
Run |
Run |
0 |
0.238 |
87 |
0.248 |
0.026 |
0.006 |
0.028 |
Run |
Run |
5 |
0.185 |
42 |
0.118 |
0.022 |
0.006 |
0.028 |
Run |
Stop |
7 |
0.164 |
19 |
0.074 |
0.006 |
0.006 |
0.028 |
Stop |
Run |
9 |
0.155 |
9.8 |
0.036 |
0.006 |
0.006 |
0.028 |
Suspend |
Run |
11 |
0.168 |
0.003 |
0 |
0 |
0.006 |
28.2 |
Suspend |
Run |
12 |
0.158 |
0.003 |
0 |
0 |
0.006 |
18.35 |
Suspend |
Suspend |
1 |
0.152 |
2.41 |
0.008 |
0 |
0.006 |
0.036 |
Suspend |
Suspend |
0 |
0.152 |
1.85 |
0.006 |
0 |
0.006 |
0.036 |
Suspend |
Suspend |
5 |
0.146 |
1.5 |
0.004 |
0 |
0.006 |
0.036 |
Suspend |
Suspend |
7 |
0.146 |
1.5 |
0.004 |
0 |
0.006 |
0.036 |
Suspend |
Suspend |
10 |
0.147 |
1.3 |
0.002 |
0 |
0.006 |
0.036 |
Suspend |
Suspend |
11 |
0.141 |
0.002 |
0 |
0 |
0.006 |
0.28 |
Suspend |
Suspend |
15 |
0.142 |
0.002 |
0 |
0 |
0.006 |
0.176 |
2.下表為在範例 B展示模式下電流量測數值
CPU State with SP 0 Mode |
Current (A) Total |
Current (mA) J19 |
DCDC_IN
Current (A) J14
DCDC_DIG
Current (A) J23
DCDC_ANA
Current (mA) J28
VDD_SNVS
Current (mA) J49
VDD_LPSR_IN
Run
0.236
86
0.248
0.026
0.006
0.028
Wait
0.203
61
0.17
0.026
0.006
0.028
Stop
0.186
43
0
0
0.006
28.2
Suspend
0.187
41
0
0
0.006
16.68
Wait, System Standby
0.151
2.04
0.17
0.026
0.006
0.028
Stop, System Standby
0.151
2.04
0
0
0.006
28.18
- AN13148 I.MXRT1170 Low-Power Modes Rev. 0 — 03/2021 Application Note
- i.MX RT1170 Processor Reference Manual Document Number: MXRT1170RM Rev. 0, 12/2020
參考來源