0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何控制CH32V103進入睡眠模式以及對其進行中斷喚醒操作

CHANBAEK ? 來源:CSDN-借過風(fēng)景 ? 作者:CSDN-借過風(fēng)景 ? 2023-01-31 14:43 ? 次閱讀

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)容如下:

poYBAGPYuDCAWd7xAABvB_QFUBw055.png

2、硬件設(shè)計

單片機進入睡眠模式之后,需要對其進行中斷喚醒,此時將開發(fā)板PA0引腳與3.3V引腳連接即可進行中斷喚醒。

3、軟件設(shè)計

本章教程在第四章EXTI基礎(chǔ)上進行單片機睡眠模式喚醒,通過PA0接GND進入中斷對睡眠模式進行喚醒,關(guān)于EXTI部分程序在此不再介紹,主要介紹如何進入睡眠模式并對其進行中斷喚醒,其具體程序如下:

main.c文件

pYYBAGPYuDCAa1-mAAB1Odfkb7o580.png

4、下載驗證

將編譯好的程序下載到開發(fā)板并復(fù)位,串口打印情況具體如下:

poYBAGPYuDCAYgu4AACJ--Bg0-M484.png

由上圖可知,單片機進入睡眠模式,將PA0引腳與3.3V引腳連接,串口打印如下:

pYYBAGPYuDCAL9wWAACdk1q6e0g906.png

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    16681

    瀏覽量

    347896
  • 睡眠模式
    +關(guān)注

    關(guān)注

    0

    文章

    8

    瀏覽量

    6575
  • PWR
    PWR
    +關(guān)注

    關(guān)注

    0

    文章

    27

    瀏覽量

    9991
  • RISC-V
    +關(guān)注

    關(guān)注

    44

    文章

    2144

    瀏覽量

    45715
  • CH32V103
    +關(guān)注

    關(guān)注

    1

    文章

    13

    瀏覽量

    984
  • ch32
    +關(guān)注

    關(guān)注

    0

    文章

    73

    瀏覽量

    589
收藏 人收藏

    評論

    相關(guān)推薦

    PSoC3/5如何進入睡眠模式以及喚醒例程

    這個例程演示了如何進入睡眠模式,并通過RTC喚醒
    發(fā)表于 11-19 11:58

    【安富萊】【RTX操作系統(tǒng)教程】第21章 RTX低功耗之睡眠模式

    如何退出睡眠模式 由于我們是采用指令WFI進入睡眠模式,那么任意一個被嵌套向量中斷控制器NVIC響應(yīng)的外設(shè)
    發(fā)表于 02-04 16:39

    請問SIM800A進入睡眠模式進行喚醒有外部引腳進行電平變換進行指示嗎?

    SIM800A進入睡眠模式進行喚醒有沒有外部引腳進行電平變換進行指示???或者在
    發(fā)表于 06-12 04:35

    CH32V103基礎(chǔ)教程19-PWR-睡眠模式

    本章教程主要講述如何控制CH32V103進入睡眠模式以及對
    發(fā)表于 04-18 15:44

    CH32V103基礎(chǔ)教程20-PWR-待機模式

    本章教程主要講述如何控制CH32V103進入待機模式以及對
    發(fā)表于 04-18 15:46

    CH32V103基礎(chǔ)教程21-PWR-停止模式

    本章教程主要講述如何控制CH32V103進入停止模式以及對
    發(fā)表于 04-19 16:02

    中斷-CH32V103如何關(guān)閉全局中斷

    即可; 需要注意的是CH32V103 關(guān)閉總中斷-需要在機器模式操作 CSR 寄存器 mstate,故替換了上面的起始文件后,芯片會一直工作在機器
    發(fā)表于 09-26 11:13

    程序進入睡眠模式設(shè)置了定時器中斷為什么不能喚醒睡眠?

    程序進入睡眠模式,設(shè)置了定時器中斷為什么不能喚醒睡眠?看了手冊,上面寫的任意中斷都可以
    發(fā)表于 10-19 06:57

    RISC-V MCU應(yīng)用開發(fā)教程之CH32V103

    教程基于沁恒32位通用增強型RISC-V架構(gòu)MCU CH32V103,力爭全面分析CH32V103的每個外設(shè)功能及使用方法,手把手教大家玩轉(zhuǎn)RISC-V MCU應(yīng)用開發(fā)。教程側(cè)重于外設(shè)
    發(fā)表于 11-18 16:21 ?18次下載
    RISC-<b class='flag-5'>V</b> MCU應(yīng)用開發(fā)教程之<b class='flag-5'>CH32V103</b>

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

    APM32F103XC_TMR_關(guān)閉DMA進入睡眠模式出現(xiàn)故障
    發(fā)表于 11-09 21:03 ?0次下載
    APM32F<b class='flag-5'>103</b>XC_TMR_關(guān)閉DMA<b class='flag-5'>進入睡眠</b><b class='flag-5'>模式</b>出現(xiàn)故障

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

    CH32V103系列是以青稞V3A處理器為核心的32位通用MCU,該處理器是基于RISC-V開源指令集設(shè)計。片上集成了時鐘安全機制、多級電源管理、通用DMA控制器。此系列具有1路USB
    的頭像 發(fā)表于 01-31 14:47 ?1974次閱讀
    如何<b class='flag-5'>控制</b><b class='flag-5'>CH32V103</b><b class='flag-5'>進入</b>待機<b class='flag-5'>模式</b><b class='flag-5'>以及對</b><b class='flag-5'>其</b><b class='flag-5'>進行</b><b class='flag-5'>喚醒</b><b class='flag-5'>操作</b>

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

    CH32V103系列是以青稞V3A處理器為核心的32位通用MCU,該處理器是基于RISC-V開源指令集設(shè)計。片上集成了時鐘安全機制、多級電源管理、通用DMA控制器。此系列具有1路USB
    的頭像 發(fā)表于 01-31 14:48 ?1623次閱讀
    如何<b class='flag-5'>控制</b><b class='flag-5'>CH32V103</b><b class='flag-5'>進入</b>停止<b class='flag-5'>模式</b><b class='flag-5'>以及對</b><b class='flag-5'>其</b><b class='flag-5'>進行</b><b class='flag-5'>喚醒</b><b class='flag-5'>操作</b>

    ch32v103應(yīng)用教程 ch32v103c8t6兼容 ch32v103c8t6燒錄器

    、低成本的單片機,廣泛應(yīng)用于工業(yè)自動化、通信、汽車電子、醫(yī)療儀器等領(lǐng)域。它采用的是ARM Cortex-M3內(nèi)核,具有豐富的外設(shè),支持多種通信協(xié)議,操作靈活、功能強大。本文主要介紹CH32V103
    的頭像 發(fā)表于 08-22 15:19 ?1591次閱讀

    ch32v103和stm32的區(qū)別

    和stm32。雖然它們共同作為微處理器的代表,但是它們之間還是有很多不同的。下面就詳細(xì)地對這兩種芯片進行比較和解析。 1、基本介紹 CH32V103是一款以ARM結(jié)構(gòu)為基礎(chǔ),具有射頻控制功能,能提供所有常規(guī)的數(shù)字接口的單片機芯片
    的頭像 發(fā)表于 08-22 15:48 ?1239次閱讀

    ch32v103與stm32f103的區(qū)別

    ch32v103與stm32f103的區(qū)別? Ch32v103與STM32f103是兩種不同的芯片,雖然它們都是基于ARM Cortex-M3內(nèi)核的32位微
    的頭像 發(fā)表于 08-22 15:49 ?2097次閱讀