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

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

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

評論