嵌入式芯片中的 低功耗模式 内容细讲

电源域与运行级别概述

电源域(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.mzph.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…