PWR-电源管理系统概述-STM32F4

2023-11-10 07:59

本文主要是介绍PWR-电源管理系统概述-STM32F4,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

使用芯片===>STM32F429IGT6

(制作不易,希望大佬能给个赞支持下小丁)


目录

一、电源管理简介

1、上电复位(POR)/掉电复位(PDR)

2、欠压复位(BOR)

3、可编程电压监控器(PVD)

2、STM32电源简介

1、电池备份域

2、调压器电路

3、独立A/D转换器电源以及参考电压。

3、电源监控(PVD)实验

4、实验代码

1、main.c

2、PVD.c

3、PVD.h

5、实验结果

6、结束语


一、电源管理简介

为什么要进行电源管理?

①、保持电路的正常运行,像51单片机是没有电源管理的,32单片机是具备的,有电源管理的好处为,当遇到突然断电时,像51单片机并不知道程序运行到了那里,如果有电源管理,可以在断电前将数据进行保存,保证在通电后重要数据不受干扰。

②、在特定时间实现低功耗模式。像现在的手表等等的,都要求低功耗,保证续航更久等等。

1、上电复位(POR)/掉电复位(PDR)

①、由上图可得,当VDD/DDA的电压低于阈值VPDR/VPOR时,器件会保持复位状态。

②、VDD:0~~VPOR(典型值1.72V):为上电复位。

③、VDD持续上升时间:VPOR~~正常运行电压(水平电压) 

④、正常运行状态:正常运行电压(水平电压) 

⑤、下降至VPDR(典型值1.68V):掉电复位

2、欠压复位(BOR)

①、上电期间,欠压复位 (BOR) 将使器件保持复位状态,直到电源电压达到指定的 VBOR 阈值,电路器件才正常工作。

②、VBOR 通过器件选项字节进行配置。BOR 默认为关闭。可以选择 4 个 VBOR 阈值。

       BOR 关闭 (VBOR0):1.80 V 到 2.10 V 电压范围的复位阈值级别

       BOR 级别 1 (VBOR1):2.10 V 到 2.40 V 电压范围的复位阈值级别

       BOR 级别 2 (VBOR2):2.40 V 到 2.70 V 电压范围的复位阈值级别

       BOR 级别 3 (VBOR3):2.70 V 到 3.60 V 电压范围的复位阈值级别

 ③、当电源电压 (VDD) 降至所选 VBOR 阈值以下时,将使器件复位。

④、通过对器件选项字节进行编程可以禁止 BOR。要禁止 BOR 功能,VDD 必须高于 VBOR0,以 启动器件选项字节编程序列。那么就只能由 PDR 监测掉电过程。

⑤、BOR 阈值滞回电压约为 100 mV(电源电压的上升沿与下降沿之间)。

3、可编程电压监控器(PVD)

①、使能了PVD(PWR_CR寄存器PVDE位)之后,可以使用PVD监视电源,并将其与PWR_CR寄存器中的PLS[2:0]位所选的阈值进行比较。PWR_CSR寄存器中提供了PVDO标志,用于指示VDD是大于还是小于阈值。该事件内部连接到EXTI线16,如果通过EXTI寄存器使能,则可以产生中断。当VDD降至PVD阈值以下或者升至阈值以上,可以产生PVD中断,具体取决EXTI线16上升沿/下降沿配置。该功能用处之一就是在中断服务程序中执行紧急关闭系统的任务。

也就是当电压低到设置值时,会触发中断,在中断中可以将重要数据进行保存,保证重要数据不受到伤害。

 ②、电源控制寄存器PWR_CR

③、HAL库操作函数(stm32fXxx_hal_pwr.c中):

void HAL_PWR_ConfigPVD(PWR_PVDTypeDef *sConfigPVD);  //配置PVD参数:阈值级别和中断触发方式void HAL_PWR_EnablePVD(void);//使能PVD void HAL_PWR_DisablePVD(void);//失能PVD void HAL_PWR_PVD_IRQHandler(void); void HAL_PWR_PVDCallback(void);

2、STM32电源简介

STM32电源可以分为三个部分:电池备份域、调压器电路、独立A/D转换器电源以及参考电压。

1、电池备份域

VBAT引脚一般连接一个纽扣电池。 在VDD关闭后可以为RTC,备份寄存器,备份RAM,LSE等供电。

后备电源经常是3V,当VDD电源大于3V时,单片机使用VDD供电,当电源低于3V时,单片机使用VBAT后备电源供电。

2、调压器电路

调压器为备份域及待机电路以外的所有数字电路供电。调压器输出电压为1.2V(M4/M7)或者1.8V(M3)。

重要的作用就是实现低功耗。

调压器是那种工作模式:

       ①运行模式:1.2/1.8V域全功率运行;

       ②停止模式:1.2/1.8V域低功率运行,1.2V区域所有时钟关闭,相应外设停止工作,保留内核寄存器以及SRAM内容;

       ③待机模式:1.2/1.8V域断电,内核寄存器以及SRAM内容均丢失,备份区域的寄存器以及SRAM不受影响。

3、独立A/D转换器电源以及参考电压。

 为了提高转换精度,ADC配有独立电源,可以单独滤波并屏蔽PCB上的噪音。

      ①ADC电源电压从单独的VDDA引脚输入。

      ②VSSA引脚提供独立的电源接地链接。

为了确保测量电压时具有更高的精度,用户在VREF上链接单独的ADC外部参考电压输入。VREF介于1.8V和VDDA之间。


3、电源监控(PVD)实验

通过改变电源电压的大小,使电源监控PVD工作发生中断,中断事件为向串口发送一句  “没电了”。

触发中断的方式是供电电压低于2.9V。

因为没有可调节电源,于是使用开关,也就是直接给电路断电,断电的过程电路电压也是逐渐降低的,于是是可以出发中断的。


4、实验代码

1、main.c

/**************************************************************************
**作者:        小丁工程               
**时间:        2021.01.17
***************************************************************************/
#include "sys.h"//---------------------主函数-------------------------------------------------
int main(void)
{HAL_Init();//========================初始化HAL库   Stm32_Clock_Init(360,25,2,8);//======设置时钟,180Mhzdelay_init(180);//===================初始化延时函数uart_init(115200);//=================初始化串口函数PVD_Config();//======================初始化电源控制函数while(1){			//delay_ms(1000);}
}
//---------------------end-----------------------------------------------------

2、PVD.c

#include "PVD.h"PWR_PVDTypeDef pvd_config;//定义句柄void PVD_Config(void)初始化
{__HAL_RCC_PWR_CLK_ENABLE();  //初始化时钟pvd_config.PVDLevel=PWR_PVDLEVEL_7;pvd_config.Mode=PWR_PVD_MODE_IT_RISING_FALLING;	HAL_PWR_ConfigPVD(&pvd_config);HAL_PWR_EnablePVD(); //使能HAL_NVIC_EnableIRQ(PVD_IRQn);				//使能pvd中断通道HAL_NVIC_SetPriority(PVD_IRQn,0,0);			//抢占优先级0,子优先级0}void PVD_IRQHandler (void)//中断函数
{HAL_PWR_PVD_IRQHandler();
}void HAL_PWR_PVDCallback(void)//中断回调函数{printf("没电了");}

3、PVD.h

#ifndef _PVD_H
#define _PVD_H
#include "sys.h"void PVD_Config(void);
void PVD_IRQHandler (void);
void HAL_PWR_PVDCallback(void);#endif

5、实验结果

在给电路板断电时,向串口成功发送了 “没电了”。

 


6、结束语

对于一些重要数据,断电前进行保存还是非常重要的,希望能帮助到你。

(例程及相关资料参考于-->原子光盘,侵删)

这篇关于PWR-电源管理系统概述-STM32F4的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/381383

相关文章

关于最长递增子序列问题概述

《关于最长递增子序列问题概述》本文详细介绍了最长递增子序列问题的定义及两种优化解法:贪心+二分查找和动态规划+状态压缩,贪心+二分查找时间复杂度为O(nlogn),通过维护一个有序的“尾巴”数组来高效... 一、最长递增子序列问题概述1. 问题定义给定一个整数序列,例如 nums = [10, 9, 2

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧

工厂ERP管理系统实现源码(JAVA)

工厂进销存管理系统是一个集采购管理、仓库管理、生产管理和销售管理于一体的综合解决方案。该系统旨在帮助企业优化流程、提高效率、降低成本,并实时掌握各环节的运营状况。 在采购管理方面,系统能够处理采购订单、供应商管理和采购入库等流程,确保采购过程的透明和高效。仓库管理方面,实现库存的精准管理,包括入库、出库、盘点等操作,确保库存数据的准确性和实时性。 生产管理模块则涵盖了生产计划制定、物料需求计划、

【编程底层思考】垃圾收集机制,GC算法,垃圾收集器类型概述

Java的垃圾收集(Garbage Collection,GC)机制是Java语言的一大特色,它负责自动管理内存的回收,释放不再使用的对象所占用的内存。以下是对Java垃圾收集机制的详细介绍: 一、垃圾收集机制概述: 对象存活判断:垃圾收集器定期检查堆内存中的对象,判断哪些对象是“垃圾”,即不再被任何引用链直接或间接引用的对象。内存回收:将判断为垃圾的对象占用的内存进行回收,以便重新使用。

Java 多线程概述

多线程技术概述   1.线程与进程 进程:内存中运行的应用程序,每个进程都拥有一个独立的内存空间。线程:是进程中的一个执行路径,共享一个内存空间,线程之间可以自由切换、并发执行,一个进程最少有一个线程,线程实际数是在进程基础之上的进一步划分,一个进程启动之后,进程之中的若干执行路径又可以划分成若干个线程 2.线程的调度 分时调度:所有线程轮流使用CPU的使用权,平均分配时间抢占式调度

STL经典案例(四)——实验室预约综合管理系统(项目涉及知识点很全面,内容有点多,耐心看完会有收获的!)

项目干货满满,内容有点过多,看起来可能会有点卡。系统提示读完超过俩小时,建议分多篇发布,我觉得分篇就不完整了,失去了这个项目的灵魂 一、需求分析 高校实验室预约管理系统包括三种不同身份:管理员、实验室教师、学生 管理员:给学生和实验室教师创建账号并分发 实验室教师:审核学生的预约申请 学生:申请使用实验室 高校实验室包括:超景深实验室(可容纳10人)、大数据实验室(可容纳20人)、物联网实验

使用Spring Boot集成Spring Data JPA和单例模式构建库存管理系统

引言 在企业级应用开发中,数据库操作是非常重要的一环。Spring Data JPA提供了一种简化的方式来进行数据库交互,它使得开发者无需编写复杂的JPA代码就可以完成常见的CRUD操作。此外,设计模式如单例模式可以帮助我们更好地管理和控制对象的创建过程,从而提高系统的性能和可维护性。本文将展示如何结合Spring Boot、Spring Data JPA以及单例模式来构建一个基本的库存管理系统

【干货分享】基于SSM的体育场管理系统的开题报告(附源码下载地址)

中秋送好礼 中秋佳节将至,祝福大家中秋快乐,阖家幸福。本期免费分享毕业设计作品:《基于SSM的体育场管理系统》。 基于SSM的体育场管理系统的开题报告 一、课题背景与意义 随着全民健身理念的深入人心,体育场已成为广大师生和社区居民进行体育锻炼的重要场所。然而,传统的体育场管理方式存在诸多问题,如资源分配不均、预约流程繁琐、数据统计不准确等,严重影响了体育场的使用效率和用户体验。