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