STM32-PWR电源控制

news2024/11/25 18:54:24

PWR(Power Control)电源控制

管理STM32内部的电源供电部分,可以实现可编程电压检测器和低功耗模式的功能。

电源管理器

上电复位(POR)和掉电复位(PDR)

STM32内部有一个完整的上电复位(POR)和掉电复位(PDR)电路,当供电电压达到2V时系统能正常工作。

当VDD/VDDA低于指定的限位电压VPOR/VPDR时,系统保持为复位状态,而无需外部复位电路。

大于上限解除复位,小于下限进行复位。

当VDD或者VDDA电压过低时,会产生复位操作,可以理解为冻结1.8v区域的电子器件

可编程电压操作器(PVD)

用户可以利用PVD对VDD电压与电源控制寄存器(PWR_CR)中的PLS[2:0]位进行比较来监控电源,这几位选择监控电压的阀值。

PVD的阈值电压可以使用程序进行指定。

PVD的监测范围在复位电路的监测电压范围之上。

可以申请外部中断来提醒用户电压过低。

低功耗模式

在系统或电源复位以后,微控制器处于运行状态。当CPU不需继续运行时,可以利用多种低功耗模式来节省功耗,例如等待某个外部事件时。用户需要根据最低电源消耗、最快速启动时间和可用的唤醒源等条件,选定一个最佳的低功耗模式。

  • 睡眠模式(Cortex™-M3内核停止,所有外设包括Cortex-M3核心的外设,如NVIC、系统时钟(SysTick)等仍在运行)
  • 停止模式(所有的时钟都已停止)
  • 待机模式(1.8V电源关闭)

此外运行模式下可以通过降低时钟主频和关闭APB和AHB上未被使用的外设时钟来降低功耗。

在运行模式下,通过对预分频寄存器进行编程,可以降低任意一个系统时钟(SYSCLK、HCLK、 PCLK1、 PCLK2)的速度。进入睡眠模式前,也可以利用预分频器来降低外设的时钟。

睡眠模式

  • 执行完WFI/WFE指令后,STM32进入睡眠模式,程序暂停运行,唤醒后程序从暂停的地方继续运行。有点类似于进入了一个叫睡眠的中断。
  • SLEEPONEXIT决定STM32执行完WFI或WFE后是立刻进入睡眠还是等STM32从中断中退出时在进入睡眠。这样这个“睡眠”中断的优先级为最低。
  • 睡眠后,所有的I/O都保持运行模式时的状态。
  • WFI可被任意一个NVIC响应的中断唤醒。
  • WFE可被唤醒事件唤醒。

事件唤醒方法:

  1. 在外设控制寄存器中使能一个中断,而不是在NVIC(嵌套向量中断控制器)中使能,并且在Cortex-M3系统控制寄存器中使能SEVONPEND位。当MCU从WFE中唤醒后,外设的中断挂起位和外设的NVIC中断通道挂起位(在NVIC中断清除挂起寄存器中)必须被清除。
  2. 配置一个外部或内部的EXIT线为事件模式。当MCU从WFE中唤醒后,因为与事件线对应的挂起位未被设置,不必清除外设的中断挂起位或外设的NVIC中断通道挂起位

该模式唤醒所需的时间最短,因为没有时间损失在中断的进入或退出上。

停止模式

  • 执行完WFI/WFE指令后,STM32进入睡眠模式,程序暂停运行,唤醒后程序从暂停的地方继续运行。有点类似于进入了一个叫睡眠的中断。
  • 1.8V供电区域的所有时钟都被停止PLLHSIHSE被禁止,SRAM和寄存器内容被保留下来。
  • 在停止模式下,所有的I/O引脚都保持它们在运行模式时的状态。
  • 当一个中断或唤醒事件导致退出停止模式时,HSI被选为系统时钟。所以一般在启动后第一时间重新启动HSE,配置主频为72MHz。
  • 当电压调节器处于低功耗模式下,系统从停止模式退出时,会有一段额外的启动延时。
  • WFI指令进入停止模式,可被任意一个EXTI中断唤醒。
  • WFE指令进入停止模式,可被任意一个EXTI事件唤醒。
  • 如果正在进行闪存编程,直到对内存访问完成,系统才进入停止模式。
  • 如果正在进行对APB的访问,直到对APB访问完成,系统才进入停止模式。
  • 外部中断不需要时钟,可以唤醒停止模式。
     

待机模式

  • 执行完WFI/WFE指令后,STM32进入待机模式,唤醒后程序从头开始运行。从头运行就不用再设置系统时钟。
  • 整个1.8V供电区域被断电,PLLHSIHSE也被断电,SRAM和寄存器内容丢失,只有备份的寄存器和待机电路维持供电。
  • 在待机模式下,所有的I/O引脚变为高阻态(浮空输入)。
  • WKUP引脚的上升沿、RTC闹钟事件的上升沿、NRST引脚上外部复位、IWDG复位退出待机模式。
  • 以下引脚任然保持有效果:
    • 复位引脚(始终有效)
    •  当被设置为防侵入或校准输出时的TAMPER引脚
    • 被使能的唤醒引脚
    • WKUP唤醒不用初始化GPIO口

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1511947.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

免费搭建导航网站教程带免费空间域名源码

使用免费空间和免费域名免费搭建一个导航网站 手把手视频教程 https://pan.xunlei.com/s/VNsoMehs7RCjz3IClV6h2vNMA1?pwdq596#

【阿里云系列】-部署ACK集群的POD应用日志如何集成到日志服务(SLS)中

介绍 我们在实际部署应用到阿里云的ACK集群后,由于后期应用服务的持续维护诉求可能需要跟踪排查问题,此时就要具备将应用的历史日志存档便于后期排查问题 处理方式 为了解决以上的普遍需求,需要将ACK中的应用日志采集到SLS的Logstore中,然…

照片怎么调到100kb以下?图片压缩可以这样做

在需要通过网络传输或共享图片的场景中,限制文件大小对于提高传输速度和节省带宽非常重要,将图片压缩到100k的文件大小可以确保更快地上传、下载和共享图片,适用于电子邮件、社交媒体、在线相册等网络传输场景,那么如何快速的将图…

云原生之容器编排实践-ruoyi-cloud项目部署到K8S:Nginx1.25.3

背景 前面搭建好了 Kubernetes 集群与私有镜像仓库,终于要进入服务编排的实践环节了。本系列拿 ruoyi-cloud 项目进行练手,按照 MySQL , Nacos , Redis , Nginx , Gateway , Auth ,…

C++开发基础——IO操作与文件流

一,基础概念 C的IO操作是基于字节流,并且IO操作与设备无关,同一种IO操作可以在不同类型的设备上使用。 C的流是指流入/流出程序的字节序列,在输入操作中数据从外部设备(键盘,文件,网络等)流入程序&#x…

Qt 使用RAW INPUT获取HID触摸屏,笔设备,鼠标的原始数据,最低受支持的客户端:Windows XP [仅限桌面应用]

在开发绘图应用程序时,经常会需要读取笔设备的数据,通过对笔数据的解析,来判断笔的坐标,粗细。如果仅仅只是读取鼠标的坐标,就需要人为在应用程序端去修改笔的粗细,并且使用体验不好,如果可以实…

SQL笔记——数据库系统导论(数据库的设计)

目录 数据依赖范式第一范式1NF第二范式2NF第三范式3NFBC范式 数据依赖的公理系统闭包最小依赖集候选码 设计需求分析概念结构设计E-R图的概念模型E-R模型转换为关系模型(指出转换结果中每个关系模式的主码和外码) 逻辑结构设计物理结构设计数据库实施数据库运行和维护 数据依赖…

安装配置MySQL

安装配置MySQL主要包括以下步骤: 1、检查并卸载旧版本的MySQL 2、如果不使用Mariadb,则也需要卸载 3、离线安装MySQL MySQL数据库安装在node3节点上,其他节点通过远程访问的方式使用MySQL数据库。 在node3检查并卸载老版本的MySQL 使用…

ARMv8架构特殊寄存器介绍-1

1,ELR寄存器(Exception Link Register ) The Exception Link Register holds the exception return address。 异常链接寄存器保存异常返回地址。最常用也很重要。 2,SPSR(Saved Process Status Register)…

Linux环境下,QtCreator运行不起来

文章目录 一、qtcreator运行不起来二、错误信息三、下载libxcb-cursor四、安装 一、qtcreator运行不起来 直接点击qtcreator运行不起来 然后再命令行界面下, 进入到qtcreator所在的目录: cd /opt/Qt/Tools/QtCreator/bin 运行程序:./qtcr…

考研C语言复习进阶(1)

目录 1. 数据类型介绍 1.1 类型的基本归类: 2. 整形在内存中的存储 2.1 原码、反码、补码 2.2 大小端介绍 3. 浮点型在内存中的存储 ​编辑 1. 数据类型介绍 前面我们已经学习了基本的内置类型: char //字符数据类型 short //短整型 int /…

使用 Jenkins 和 Spinnaker 构建 Kubernetes CI/CD

无论您是新手还是持续集成和持续交付以及容器化领域的经验丰富,本文都将为您提供设置 Spinnaker 以满足您的软件应用程序交付需求的基本知识。 了解 Jenkins、Spinnaker 和 Kubernetes Kubernetes 和 Jenkins 是两个强大的工具,它们相互配合&#xff0…

图扑数字孪生楼宇智控可视化平台

从概念提出到风险评估再到跟踪实施,关于智慧园区规划与建设的探讨从未停止。传统楼宇控制系统的各子系统独立存在并不互通,所有信息交互都依赖于中央控制器,导致系统控制的实时性较差。 利用大数据、云计算等智能化技术,让人、物…

《计算机网络》考研:2024/3/11:2.1.6-习题精选(5、6题暂未完成)

2024/3/11 2.1.6 习题精选 一、单项选择题 我的答案:1.D 2.A 3.C 4.B 5.A 标准答案:1.D 2.A 3.B 4.B 5.A 3、【解】: 并行传输的特点:距离短、速度快。 串行传输的特点:距离长、速度慢。 在计算机内部通常为了保证速…

介绍kubernetes的功能与架构及其组件

一、功能简介 1、服务发现和负载均衡 Kubernetes 可以使用 DNS 名称或自己的 IP 地址公开容器, 如果进入容器的流量很大, Kubernetes 可以负载均衡并分配网络流量, 从而使部署稳定. 常用的DNS插件为coreDNS, 用作服务发现和集群中容器通讯; 负载均衡器常使用集群内的service资…

CUDA环境配置在Ubuntu18

🎬个人简介:一个全栈工程师的升级之路! 📋个人专栏:高性能(HPC)开发基础教程 🎀CSDN主页 发狂的小花 🌄人生秘诀:学习的本质就是极致重复! 目录 1 NVIDIA CU…

王道机试C++第 5 章 数据结构三:栈Stack和22年蓝桥杯省赛选择题Day33

5.3 栈 和队列一样,栈( Stack )也是一种线性序列结构,其存放的元素也是按照线性逻辑次序排列的。然而,与一般的线性结构相比,栈的操作仅限于逻辑上特定的一端,即新元素只能从栈的一端插入也只能…

Docker部署ChatGLM3、One API、FastGPT

创建并运行chatglm3容器 docker run --name chatglm3 -p 8000:8000 registry.cn-hangzhou.aliyuncs.com/ryyan/chatglm.cpp:chatglm3-q5_1 创建并运行one-api容器 (其中挂载路径 D:\one-api 可以选择你自己喜欢的目录) docker run --name oneapi -d -p 3000:3000 -e TZAsia…

FPGA高端项目:FPGA基于GS2971+GS2972架构的SDI视频收发+图像缩放,提供3套工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐本博已有的 SDI 编解码方案本方案的SDI接收发送本方案的SDI接收纯verilog图像缩放纯verilog多路视频拼接应用本方案的SDI接收HLS图像缩放HLS多路视频拼接应用本方案的SDI接收OSD动态字符叠加输出应用本方案的SDI接收HLS多路视频融合叠加应…

服务器被大流量攻击怎么办?如何防御攻击?

随着网络的发展,我们所遇到的安全挑战也越来越多。尤其是近年来,网络攻击频发,许多互联网企业深受其扰。为了不影响自身业务的稳定运行,许多企业都在想方设法的寻求解决方案,防止服务器被攻击而影响业务发展。下面我们…