產(chǎn)品詳情
32 位微控制器
HC32F460 系列的停止模式注意事項
1
摘要
本篇應(yīng)用筆記主要介紹 HC32F460 系列芯片的停止模式注意事項。
2
HC32F460 系列的停止模式
2.1
簡介
停止(STOP)模式是 HC32F460 系列芯片三種低功耗模式之一,在停止模式中,CPU、大部分外設(shè)和時鐘源都停止動作,芯片保持 CPU 內(nèi)部寄存器和 SRAM 數(shù)據(jù),外設(shè)狀態(tài)和管腳狀態(tài)。
2.2
寄存器介紹
1) PWR_PWRC1:電源模式控制寄存器,設(shè)定不同模式進去 STOP 模式時的驅(qū)動能力。
2) PWR_STPMCR:停止模式控制器,使能 STOP 模式以及設(shè)定 STOP 模式喚醒時 CLK、FLASH 狀態(tài)。
3) INT_WUPEN:停止模式喚醒事件使能寄存器。
注意:進入 stop 模式之前必須設(shè)定 INT_WUPEN,使能相應(yīng)喚醒事件,否則無法喚醒 stop 模式。
2.3 操作流程
2.3.1 進入停止模式
上圖列出了進入停止模式的步驟,在停止模式中,芯片的外設(shè)和 CPU 都停止工作。
注意:當系統(tǒng)時鐘為 HRC 和 MPLL 時,需切換系統(tǒng)時鐘源至 MRC,其他時鐘源只需打開HRC。
2.3.2 解除停止模式
停止模式可以通過復(fù)位和中斷解除。
可以用于解除停止模式的復(fù)位方式有:
? 管腳復(fù)位
? 上電復(fù)位
? 欠壓復(fù)位(BOR)
? 電壓檢測 1/2 復(fù)位
? 專用看門狗復(fù)位可以用于解除停止模式的中斷事件有:
? 管腳中斷 EIRQ0~15
? 電壓檢測 1/2 中斷
? 專用看門狗下溢中斷
? 實時時鐘的周期中斷
? 鬧鐘中斷
? 喚醒定時器中斷
? 比較器 1 中斷
? UART1_RXD0 中斷
? TIMER01_A 比較匹配中斷
注意: 選擇中斷事件解除停止模式,需在進入停止模式之前操作 INT_WUPEN 寄存器,設(shè)定相應(yīng)中斷事件喚醒許可。
2.4 注意事項
1) 執(zhí)行 WFI 進入停止模式之前,需確保 FLASH 不處于編程或者擦除狀態(tài)(即
EFM_FSR.RDY=1),且振蕩停止監(jiān)測功能無效,否則芯片無法進入停止模式。
2) 執(zhí)行 WFI 進入停止模式之前,需確保 DMA 處于停止狀態(tài)(即DMA_EN.EN=0),否則芯片可能會出現(xiàn)不可保證的動作。
3) 執(zhí)行 WFI 進入停止模式之前,需將 EIRQ 的數(shù)字濾波設(shè)置為無效,否則該中斷不能用于STOP 喚醒。
4) 選擇中斷事件解除停止模式,在執(zhí)行 WFI 進入停止模式之前,需使能相應(yīng)中斷事件喚醒停止模式(INT_WUPEN)。
5) 執(zhí)行 WFI 進入停止模式之前,需確保其他外設(shè)中斷(非 STOP 模式喚醒中斷)都已關(guān)閉。否則其他中斷的觸發(fā)可能導致芯片出現(xiàn)不可保證的動作。喚醒后,再恢復(fù)其他外設(shè)中斷狀態(tài),以免錯過中斷事件。
6) 執(zhí)行 WFI 進入停止模式之前,須確保 HRC 震蕩,若系統(tǒng)時鐘為 HRC 和 MPLL,還需將系統(tǒng)時鐘切換至 MRC,喚醒后再恢復(fù)系統(tǒng)時鐘,恢復(fù) HRC 狀態(tài)。
7) 由中斷事件將 MCU 從停止模式恢復(fù)時,需將系統(tǒng)從 MRC 恢復(fù)至用戶時鐘設(shè)定,并還原中斷配置
- 其中第 4、5、6、7 點注意事項可通過自行關(guān)閉 NVIC 及時鐘模塊對應(yīng)寄存器實現(xiàn),或調(diào)用 HDSC 提供的 API 接口:。
?
en_result_t enIntWakeupEnable(uint32_t u32WakeupSrc); (使能中斷事件喚醒停止模
式)
?
void PWC_EnterStopMd(void); (進入停止模式)
此函數(shù)額外占用約 100us@168MHz
?
void PWC_IrqClkBackup(void); (備份用戶時鐘設(shè)置)
此函數(shù)額外占用約 50us@168MHz
?
void PWC_IrqClkRecover(void)(恢復(fù)用戶時鐘設(shè)置)
此函數(shù)額外占用約 50us@168MHz
3
樣例代碼
3.1
代碼介紹
用戶可根據(jù)上述的操作流程及注意事項編寫自己的代碼來學習驗證該模塊,也可以直接通過華大半導體的網(wǎng)站獲取到設(shè)備驅(qū)動庫(Device Driver Library, DDL)的樣例代碼并使用其中的 LPM 里有關(guān) stop mode的樣例進行驗證。
3.2 代碼運行
用戶可以通過華大半導體的網(wǎng)站獲取到 HC32F460 的 DDL 的樣例代碼(lpm_stop_wkup),并配合評估用板(EV-HC32F460-LQFP100-050-V1.1)運行相關(guān)代碼學習使用 STOP 模式。