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