嵌入式芯片中的 低功耗模式 內容細講

電源域與運行級別概述

電源域(Power Domain)

核心域(Core Domain):包括 CPU 核心和關鍵架構模塊(如 NVIC、CPU 內核寄存器)。

外設域(Peripheral Domain):各類外設時鐘和寄存器。

SRAM/Flash 域:程序存儲與數據存儲,部分模式下可保留或斷電。

供應電壓調節器(Regulator):主 LDO 或 BUCK,用于內核和外設不同電壓需求。

運行級別(Run Level)

Run:所有時鐘開啟,最高性能,最高功耗。

Low?Power Run(部分系列支持):降低核心電壓或限制最大時鐘以節省功耗。

Sleep:關閉 CPU 時鐘,僅保留總線與外設時鐘。

Stop:關閉主振蕩器和部分總線時鐘,保留低速時鐘或 LSE/LSE,核心停止,SRAM 保持。

Standby:關閉大部分電源域,僅保留極少喚醒源,SRAM 和寄存器一般不保留。

Shutdown(部分高端系列):幾乎全域斷電,僅保留最少喚醒邏輯。

電源控制(PWR)簡介

電源系統: V DDA 供電區域、 V DD 供電區域、 1.8V 供電區域、后備供電區域。
電源監控: POR/PDR 監控器、 PVD 監控器。
電源管理:低功耗模式。

VDDA 供電區域(ADC/模擬供電)

特點:

VDDA/VSSA 是模擬電源/地,為 ADC、DAC、比較器等模擬模塊供電

VREF+ 為 ADC 提供參考電壓(通常連接 VDDA 或外部高精度參考)。

必須和 VDD 同時供電,否則 ADC/DAC 模塊可能無法正常工作。

VDD / 1.8V 數字供電區域(調節器核心)

構成與功能:

VDD/VSS:主供電,給 GPIO、外設 I/O、內部調節器供電。

調節器 LDO / SMPS 輸出約 1.8V,供內核、RAM、數字外設。

STM32 內部大多數電路工作在 1.8V 電壓域,外部用 VDD(通常是 3.3V)做接口。

調節器模式:

模式功能說明場景
主模式(Run)提供穩定的 1.8V 輸出MCU 正常運行時
低功耗模式(Stop)降低調節器驅動能力、減小電流MCU 睡眠/停止模式
關閉(Standby)停止供電,僅備份域保留MCU 進入待機模式,最省電狀態

VBAT 后備域(RTC 備份供電)

功能:

主電源(VDD)掉電時,VBAT 為 RTC、備份寄存器、LSE 晶振等繼續供電。

支持連接電池或超級電容,維持系統時間與部分狀態數據不丟失。

使用建議:

RTC 需搭配 LSE 低速晶振 或 LSI 低速 RC。

VBAT 區域可存儲:

RTC 時間

RTC 鬧鐘

BKP 寄存器(備份寄存器)

部分支持 TAMP(篡改檢測器)

不需要 RTC 的應用,可將 VBAT 直接接 VDD,也可懸空(節省硬件資源)。

電源監控
縮寫全稱功能說明
PORPower-On Reset上電時 VDD 未達到安全電壓閾值(VPOR),芯片保持復位
PDRPower-Down Reset運行中 VDD 掉到低于閾值(VPDR),芯片會重新復位
上電時,當 V DD 低于指定 V POR 閾值時,系統無需外部復位電路便會保持復位模式。一旦
V DD 電源電壓高于 V POR 閾值,系統便會退出復位狀態,芯片正常工作。掉電時,當 V DD 低于指定 V PDR 閾值時,系統就會保持復位模式。如圖 28.1.2.1 所示, RESET 為上電復位信號。
注意:POR PDR 的復位電壓閾值是固定的,VPOR 閾值(典型值)為 1.92VVPDR 閾值
(典型值)為 1.88V
可編程電壓檢測器(PVD)?Programmable Voltage Detector

可由軟件配置一個閾值(2.0V~3.6V),當 VDD 低于該閾值時觸發中斷或事件。
屬于預警機制,不會自動復位 MCU,而是交由軟件做處理。

比如:

在電壓下降趨勢時,提前保存數據、停止敏感外設。
搭配 Flash 寫保護,防止寫入不穩定區域。
可與低功耗模式配合,當 VDD 恢復后喚醒。

它可以實時監視 V DD 的電壓,方法是將 V DD 與 PWR,控制寄存器(PWR_CR)中的 PLS[2:0]位所選的 VPVD 閾值進行比較。其中 PWR_CSR 寄存器中的 PVDO 位決定了 VDD 是高于 VPVD 還是低于 VPVD,本實驗中配置的是 VDD 低于 VPVD 閾值這個條件。當檢測到電壓低于 VPVD 閾值時,如果使能 EXTI16 線中斷,即使能 PVD 中斷,可以產生 PVD 中斷,具體取決于 EXTI16 線配置為檢測上升還是下降沿,然后在復位前,在中斷服務程序中執行緊急關閉系統等任務。PVD 閥值檢測波形。

內部會將 VDD 與通過 PWR_CRPLS[2:0] 選擇的一個可編程電壓閾值進行比較。

比較結果會反饋到 PWR_CSR 中的 PVDO 標志位:

PVDO=1:表示 VDD < VPVD(電壓太低)

PVDO=0:表示 VDD ≥ VPVD

如果你啟用了 EXTI16中斷線 并配置為上升/下降沿觸發,就能在電壓跨越閾值時產生中斷

HAL_PWR_EnablePVD(); // 啟用PVD
//設置閾值和中斷模式
PWR_PVDTypeDef sConfigPVD;
sConfigPVD.PVDLevel = PWR_PVDLEVEL_4; // 閾值約為2.5V(不同MCU有差異)
sConfigPVD.Mode = PWR_PVD_MODE_IT_RISING_FALLING;
HAL_PWR_ConfigPVD(&sConfigPVD);
//啟用中斷:
HAL_NVIC_SetPriority(PVD_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(PVD_IRQn);
//編寫中斷回調函數:
void HAL_PWR_PVDCallback(void)
{// 電壓低了!趕緊保存數據或關外設
}
PVD 閥值有 8 個等級,有上升沿和下降沿的區別,具體由 PWR_CSR 寄存器中的 PVDO
決定。
其次就是電源管理的部分我們要關注低功耗模式,在 STM32 的正常工作中,具有四種工作模式,運行、睡眠、停止以及待機。在上電復位后,STM32 處于運行狀態時,當內核不需要繼續運行,
就可以選擇進入后面的三種模式降低功耗。這三種低功耗模式電源消耗不同、喚醒時間不同和
喚醒源不同,我們要根據自身的需要選擇合適的低功耗模式。
模式功耗保留內容喚醒時間喚醒源
運行模式全部無需不需要
睡眠模式較低所有 SRAM 和外設快速所有中斷(外設中斷)
停止模式更低SRAM、寄存器較慢RTC、外部中斷、喚醒引腳
待機模式極低(uA)只保留后備域/RTC最慢喚醒引腳、RTC 喚醒、中斷(有限)

1. 運行模式(Run Mode)

正常工作狀態,CPU、外設、時鐘等全開。

功耗最大,但響應速度最快。

上電復位后默認進入此模式。

2. 睡眠模式(Sleep Mode)

特點:CPU 停止工作,外設繼續運行。

功耗優化點:

時鐘系統基本保持不變。

所有外設繼續運行(如 UART、ADC 等)。

SRAM 和寄存器內容全部保留。

進入方式(兩種):

模式條件行為
立即睡眠SLEEPDEEP = 0 + 執行 WFI/WFE立即睡眠,等待中斷/事件喚醒
退出時睡眠SLEEPONEXIT = 1 + 中斷服務中執行 WFI中斷返回立即睡眠
SCB->SCR &= ~SCB_SCR_SLEEPDEEP_Msk;    // 確保不是 deep sleep
__WFI();                               // 執行睡眠

3. 停止模式(Stop Mode)

特點:內核和大部分外設停止,只保留 SRAM、寄存器和 RTC。

功耗優化點:

所有主頻時鐘停止(HSE/HSI/LSE/LSI)。

電壓調節器切換為低功耗模式。

SRAM 數據仍保留。

喚醒時間比睡眠略慢,但功耗顯著降低。

喚醒源:

EXTI 外部中斷(如 GPIO)、RTC、USART(帶喚醒功能)

SCB->SCR |= SCB_SCR_SLEEPDEEP_Msk:啟用深度睡眠。

PWR->CR

PDDS = 0:進入停止模式(不是待機)

LPDS = 1:低功耗調壓器模式

CWUF = 1:清除 Wakeup Flag

PWR->CR &= ~PWR_CR_PDDS;   // 設置為停止模式
PWR->CR |= PWR_CR_CWUF;    // 清除 Wakeup 標志
PWR->CR |= PWR_CR_LPDS;    // 可選:啟用低功耗調壓器
SCB->SCR |= SCB_SCR_SLEEPDEEP_Msk;
__WFI();  // 或 __WFE();

4. 待機模式(Standby Mode)

特點:最低功耗,只保留后備域與 RTC,幾乎斷電狀態。

功耗優化點:

SRAM/寄存器內容全部丟失。

喚醒后會重新復位(類似上電啟動)。

通常由 VBAT 保持 RTC 運行。

喚醒源:

喚醒引腳(WKUP)、RTC 鬧鐘、外部中斷。

SCB->SCR |= SCB_SCR_SLEEPDEEP_Msk

PWR->CR |= PWR_CR_PDDS

PWR->CR |= PWR_CR_CWUF

PWR->CR |= PWR_CR_CWUF;     // 清除 Wakeup 標志
PWR->CR |= PWR_CR_PDDS;     // 設置進入待機模式
SCB->SCR |= SCB_SCR_SLEEPDEEP_Msk;
__WFI(); // 或 __WFE();

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/77607.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/77607.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/77607.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java中常見的鎖synchronized、ReentrantLock、ReentrantReadWriteLock、StampedLock

在Java中&#xff0c;鎖是實現多線程同步的核心機制。不同的鎖適用于不同的場景&#xff0c;理解其實現原理和使用方法對優化性能和避免并發問題至關重要。 一、隱式鎖&#xff1a;synchronized 關鍵字 實現原理 基于對象監視器&#xff08;Monitor&#xff09;&#xff1a;每…

@JsonView + 單一 DTO:如何實現多場景 JSON 字段動態渲染

JsonView 單一 DTO&#xff1a;如何實現多場景 JSON 字段動態渲染 JsonView 單一 DTO&#xff1a;如何實現多場景 JSON 字段動態渲染1、JsonView 注解產生的背景2、為了滿足不同場景下返回對應的屬性的做法有哪些&#xff1f;2.1 最快速的實現則是針對不同場景新建不同的 DTO…

Etcd 壓縮整理

etcd數據存儲 在實際生產中使用 ETCD 存儲元數據&#xff0c;起初集群規模不大的時候元數據信息不多沒有發現什么問題。隨著集群規模越來越大&#xff0c;可能引發存儲問題。 —auto-compaction-retention 由于ETCD數據存儲多版本數據&#xff0c;隨著寫入的主鍵增加歷史版本需…

【更新完畢】2025媽媽杯C題 mathercup數學建模挑戰賽C題數學建模思路代碼文章教學:音頻文件的高質量讀寫與去噪優化

完整內容請看文章最下面的推廣群 我將先給出文章、代碼、結果的完整展示, 再給出四個問題詳細的模型 面向音頻質量優化與存儲效率提升的自適應編碼與去噪模型研究 摘 要 隨著數字媒體技術的迅速發展&#xff0c;音頻處理技術在信息時代的應用愈加廣泛&#xff0c;特別是在存儲…

React-請勿在循環或者條件語句中使用hooks

這是React Hooks的首要規則&#xff0c;這是因為React Hooks 是以單向循環鏈表的形式存儲&#xff0c;即是有序的。循環是為了從最后一個節點移到一個節點的時候&#xff0c;只需通過next一步就可以拿到第一個節點&#xff0c;而不需要一層層回溯。React Hooks的執行&#xff0…

【大模型】 LangChain框架 -LangChain實現問答系統

LangChain 介紹與使用方法 1. 什么是 LangChain&#xff1f;2. LangChain 的主要功能3. 如何使用 LangChain&#xff1f;3.1 環境準備3.2 基本使用示例3.2.1 簡單的問答系統3.2.2 結合外部工具 3.3 高級用法 4. 常見問題及解決方法4.1 安裝問題4.2 運行問題4.3 性能問題 5. 實戰…

企業級HAProxy高可用離線部署實戰(附Kubernetes APIServer負載均衡配置)

企業級HAProxy高可用離線部署實戰&#xff08;附Kubernetes APIServer負載均衡配置&#xff09; 摘要&#xff1a;本文深入講解在離線環境下部署HAProxy 3.1.1的全流程&#xff0c;涵蓋源碼編譯、系統服務封裝、K8S APIServer四層負載配置等核心環節&#xff0c;并提供生產級高…

Python網絡爬蟲設計(一)

目錄 一、網絡爬蟲 1、基本的爬蟲 2、獲取URL 3、查找網頁源碼關鍵字 4、代碼實現 二、requests庫 1、requests的優勢和劣勢 2、獲取網頁的其他庫 &#xff08;1&#xff09;selenium庫 &#xff08;2&#xff09;pyppeteer庫 三、pyppeteer庫 1、pyppeteer庫的來歷…

BR_頻譜20dB 帶寬(RF/TRM/CA/BV-05-C [TX Output Spectrum – 20 dB Bandwidth])

目錄 一、規范要求 1、協議章節 2、測試目的 二、測試方法 1、樣機初值條件&#xff1a; 2、測試步驟: 方法一&#xff1a;頻譜儀 方法二&#xff1a;綜測儀CMW500 3、預期結果 一、規范要求 1、協議章節 4.5.5 RF/TRM/CA/BV-05-C [TX Output Spectrum – 20 dB Ba…

【橘子大模型】初探rag知識庫的構建

一、簡介 我們在實現了一系列功能之后&#xff0c;終于來到了rag的部分&#xff0c;下面我們將基于langchain來實現一個rag檢索。 關于rag方面的知識&#xff0c;可以查看這兩篇文章&#xff1a; 大模型應用之RAG詳解 什么是 RAG&#xff08;檢索增強生成&#xff09; 或者是去…

CentOS7執行yum命令報錯 Could not retrieve mirrorlist http://mirrorlist.centos.org

CentOS7執行yum命令報錯 引更新yum源備份原有源創建新的源文件清理并重建緩存 引 CentOS 7 系統無法連接到 CentOS 的官方鏡像站點。這通常是由于網絡問題或 CentOS 7 已停止維護導致的&#xff08;2024年6月30日后 CentOS 7 已進入 EOL&#xff09; 報錯明細&#xff1a; 已…

VSCode安裝與環境配置(Mac環境)

20250419 - 概述 大概是非常久之前了&#xff0c;裝了VSCode&#xff0c;估計都得21的時候了&#xff0c;電腦上也沒更新過。當時安裝也直接裝上就完事了。這次把版本更新一下&#xff0c;同時記錄一下這個安裝過程。 安裝 mac下安裝非常簡單&#xff0c;直接從官網下載&am…

QML動畫--ParallelAnimation和SequentialAnimation

一、ParallelAnimation ParallelAnimation 是 QML 中用于并行執行多個動畫的容器動畫類型&#xff0c;可以同時運行多個子動畫。 基本用法 qml import QtQuick 2.15Rectangle {id: rectwidth: 100; height: 100color: "red"x: 0; y: 0; opacity: 1.0ParallelAnim…

NLP高頻面試題(四十三)——什么是人類偏好對齊中的「對齊稅」(Alignment Tax)?如何緩解?

一、什么是「對齊稅」(Alignment Tax)? 所謂「對齊稅」(Alignment Tax),指的是在使人工智能系統符合人類偏好的過程中,所不可避免付出的性能損失或代價。換句話說,當我們迫使AI遵循人類價值觀和規范時,AI系統往往無法達到其最大理論性能。這種性能上的妥協和折衷,就…

速查手冊:TA-Lib 超過150種量化技術指標計算全解 - 1. Overlap Studies(重疊指標)

速查手冊&#xff1a;TA-Lib 超過150種量化技術指標計算全解 - 1. Overlap Studies&#xff08;重疊指標&#xff09; TA-Lib&#xff08;Technical Analysis Library&#xff09;是廣泛使用的金融技術分析庫&#xff0c;實現了超過150種技術指標計算函數&#xff0c;適用于股票…

重構未來智能:Anthropic 解碼Agent設計哲學三重奏

第一章 智能體進化論&#xff1a;從工具到自主體的認知躍遷 1.1 LLM應用范式演進圖譜 階段技術形態應用特征代表場景初級階段單功能模型硬編碼規則執行文本摘要/分類進階階段工作流編排多模型協同調度跨語言翻譯流水線高級階段自主智能體動態決策交互編程調試/客服對話 1.1.…

Git 中修改某個特定的commit提交內容

在 Git 中修改某個特定的提交&#xff08;commit&#xff09;通常需要使用 交互式變基&#xff08;Interactive Rebase&#xff09; 或 修改提交&#xff08;Commit Amend&#xff09;。以下是不同場景下的具體操作步驟&#xff1a; 一、修改最近的提交&#xff08;最新提交&am…

ZLMediaKit流媒體服務器

ZLMediaKit 簡介 ZLMediaKit 是一個基于 C11 開發的高性能流媒體服務器框架&#xff0c;支持 RTSP、RTMP、HLS、HTTP-FLV、WebSocket-FLV、HTTP-TS、WebSocket-TS、HTTP-fMP4、WebSocket-fMP4 等多種流媒體協議。 主要特性 多協議支持&#xff1a; 支持 RTSP/RTMP/HLS/HTTP-F…

數字電子技術基礎(五十)——硬件描述語言簡介

目錄 1 硬件描述語言簡介 1.1 硬件描述語言簡介 1.2 硬件編程語言的發展歷史 1.3 兩種硬件描述的比較 1.4 硬件描述語言的應用場景 1.5 基本程序結構 1.5.1 基本程序結構 1.5.2 基本語句和描述方法 1.5.3 仿真 1 硬件描述語言簡介 1.1 硬件描述語言簡介 硬件描述語…

SQL系列:常用函數

1、【MySQL】合并字段函數&#xff08;列轉行&#xff09; 它可以將兩個字段中的數據合并到一個字段中。 1&#xff09;CONCAT函數 CONCAT函數可以將多個字段中的數據合并到一個字段中。它的語法格式如下&#xff1a; SELECT CONCAT(字段1,字段2,...字段N) FROM 表名;SELEC…