CH32V103系列是以青稞V3A處理器為核心的32位通用MCU,該處理器是基于RISC-V開源指令集設計。 片上集成了時鐘安全機制、多級電源管理、通用DMA控制器。 此系列具有1路USB2.0主機/設備接口、多通道12位ADC轉(zhuǎn)換模塊、多通道TouchKey、多組定時器、多路IIC/USART/SPI接口等豐富的外設資源。
本章教程主要講述如何控制CH32V103進入睡眠模式以及對其進行中斷喚醒操作。
1、PWR-睡眠模式簡介及相關函數(shù)介紹
在系統(tǒng)復位后,微控制器處于正常工作狀態(tài)(運行模式),此時可以通過降低系統(tǒng)主頻或者關閉不用外設時鐘或者降低工作外設時鐘來節(jié)省系統(tǒng)功耗。 如果系統(tǒng)不需要工作,可設置系統(tǒng)進入低功耗模式,并通過特定事件讓系統(tǒng)跳出此狀態(tài)。
微控制器目前提供了 3 種低功耗模式,從處理器、外設、電壓調(diào)節(jié)器等的工作差異上分為:
睡眠模式:內(nèi)核停止運行,所有外設(包含內(nèi)核私有外設)仍在運行。
停止模式:停止所有時鐘,喚醒后系統(tǒng)繼續(xù)運行。
待機模式:停止所有時鐘,喚醒后微控制器復位(電源復位)。
在睡眠模式下,所有的IO引腳都保持他們運行模式下的狀態(tài),所有的外設時鐘都正常,所以進入睡眠模式前,盡量關閉無用的外設時鐘,以減低功耗。 該模式喚醒所需時間最短。
進入睡眠模式:配置內(nèi)核寄存器控制位 SLEEPDEEP=0(PFIC系統(tǒng)控制寄存器(PFIC_SCTLR)位2,SLEEPDEEP,控制系統(tǒng)的低功耗模式:1為deepsleep,0為sleep),電源控制寄存器 PDDS=0,LPDS 決定內(nèi)部調(diào)壓器狀態(tài),執(zhí)行WFI或WFE,可選SEVONPEND 和SLEEPONEXIT(可配合CH32V103應用手冊第二章PWR章節(jié)寄存器描述和第九章中斷和事件進行閱讀理解)。
退出睡眠模式:任意中斷或者喚醒事件。
關于WFI和WFE方式:
WFI:微控制器被具有中斷控制器響應的中斷源喚醒,系統(tǒng)喚醒后,將最先執(zhí)行中斷服務函數(shù)(微控制器復位除外)。
WFE:喚醒事件觸發(fā)微控制器將退出低功耗模式。 喚醒事件包括:
(1)配置一個外部或內(nèi)部的 EXTI 線為時間模式,此時無需配置中斷控制器;
(2)或者配置某個中斷源,等效為 WFI 喚醒,系統(tǒng)優(yōu)先執(zhí)行中斷服務函數(shù);
(3)或者配置 SLEEPONPEN 位,開啟外設中斷使能,但不開啟中斷控制器中的中斷使能,系統(tǒng)喚醒后需要清除中斷掛起位。
關于SLEEPONEXIT(PFIC系統(tǒng)控制寄存器PFIC_SCTLR位1,控制離開中斷服務程序后,系統(tǒng)狀態(tài)。1:系統(tǒng)進入低功耗模式;0:系統(tǒng)進入主程序)和SEVONPEND(PFIC系統(tǒng)控制寄存器PFIC_SCTLR位4),可配合CH32V103應用手冊第九章中斷和事件寄存器描述進行閱讀理解:
SLEEPONEXIT:啟用:執(zhí)行 WFI 或 WFE 指令后,微控制器確保所有待處理的中斷服務退出后進入低功耗模式。
不啟用:執(zhí)行 WFI 或 WFE 指令后,微控制器立即進入低功耗模式 。
SEVONPEND:啟用:所有中斷或者喚醒事件都可以喚醒通過執(zhí)行WFE進入的低功耗。
不啟用:只有在中斷控制器中使能的中斷或者喚醒事件可以喚醒通過執(zhí)行 WFE 進入的低功耗。
關于CH32V103 PWR睡眠模式具體信息,可參考CH32V103應用手冊。CH32V103 PWR標準庫函數(shù)具體內(nèi)容如下:
2、硬件設計
單片機進入睡眠模式之后,需要對其進行中斷喚醒,此時將開發(fā)板PA0引腳與3.3V引腳連接即可進行中斷喚醒。
3、軟件設計
本章教程在第四章EXTI基礎上進行單片機睡眠模式喚醒,通過PA0接GND進入中斷對睡眠模式進行喚醒,關于EXTI部分程序在此不再介紹,主要介紹如何進入睡眠模式并對其進行中斷喚醒,其具體程序如下:
main.c文件
4、下載驗證
將編譯好的程序下載到開發(fā)板并復位,串口打印情況具體如下:
由上圖可知,單片機進入睡眠模式,將PA0引腳與3.3V引腳連接,串口打印如下:
-
mcu
+關注
關注
146文章
17886瀏覽量
361624 -
睡眠模式
+關注
關注
0文章
10瀏覽量
6742 -
PWR
+關注
關注
0文章
29瀏覽量
10197 -
RISC-V
+關注
關注
46文章
2510瀏覽量
48387 -
CH32V103
+關注
關注
1文章
13瀏覽量
1197 -
ch32
+關注
關注
0文章
73瀏覽量
873
發(fā)布評論請先 登錄
【安富萊】【RTX操作系統(tǒng)教程】第21章 RTX低功耗之睡眠模式
中斷-CH32V103如何關閉全局中斷
RISC-V MCU應用開發(fā)教程之CH32V103

APM32F103XC_TMR_關閉DMA進入睡眠模式出現(xiàn)故障

如何控制CH32V103進入待機模式以及對其進行喚醒操作

如何控制CH32V103進入停止模式以及對其進行喚醒操作

評論