MCU学习笔记_PWR电源管理系统

2023-11-10 07:59

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

MCU学习笔记

电源管理系统

1. STM32电源监控器概述
2. STM32电源
3. HAL库配置PVD实例

1. STM32电源监控器概述

  • 原因
  1. 保持系统正常运行
  2. 实现特定条件下的低功耗模式
  • 上电复位(POR)/掉电复位(PDR)

    上电复位是指上电压从无到有在RESET处会先处于高电平一段时间,然后由于该点通过电阻接地,则RESET该点的电平会逐渐的改变为低电平,从而使得单片机复位口电平从1转到0,达到给单片机复位功能的一种复位方式。
    当VDD/VDDA低于指定阈值VPDR/VPOR时,器件无需外部复位,便会保持复位状态。VPDR/VPOR针对于芯片基本上是固定的在这里插入图片描述
    VDD: 0~VPOR(典型值1.72V):上电复位
    VDD持续上升时间:
    正常运行状态:
    下降至VPDR:掉电复位

  • 欠压复位(BOR)

    单片机的“电量不足”是电源电压不足或暂时降低,低于可靠运行所需的水平。许多单片机具有保护电路,该电路可检测电源电压何时低于此水平,并将设备置于复位状态,以确保在电源恢复时正确启动。此操作也称为“欠压复位”,英文缩写为“BOR”。

    上电期间,欠压复位(BOR)将使期间保持复位状态,直到电源电压达到指定的VBOR阈值。VBOR通过器件选项字节进行配置。BOR默认关闭,当VDD降低至所选VBOR时,使器件复位。
    配置BOR选项级别:通过flash选项控制寄存器(FLASH_OPTCR)
    BOR_LEV=11: BOR关闭(VBOR0):1.8V到2.1V电压范围复位阈值级别。
    BOR_LEV=10: BOR级别1(VBOR1):2.1V到2.4V电压范围复位阈值级别。
    BOR_LEV=01: BOR级别2(VBOR2):2.4V到2.7V电压范围复位阈值级别。
    BOR_LEV=00: BOR级别3(VBOR3):2.7V到3.6V电压范围复位阈值级别。
    在这里插入图片描述在这里插入图片描述

  • 可编程电压监控器(PVD)
    用来监控电源电压。监控电源电压与所设置的阈值相比较大小,比较的结果会产生一个事件,该事件连接到内部EXTI线16,通过EXTI寄存器使能,如果VDD降至PVD阈值以下或升至阈值以上,则可以产生PVD中断(取决于EXTI线16上升沿/下降沿配置)。

    作用:用于在中断服务程序中执行紧急关闭系统的任务

    使能PVD:PWR_CR.PVDE位

    阈值选择:PWR_CR.PLS[2:0]位

    在这里插入图片描述
    阈值比较结果:PWR_CSR.PVDO位

  • HAL库操作函数

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

2. STM32电源
在这里插入图片描述

  • 电池备份域
    VBAT: 后备电池,用于在电源断电后,给唤醒逻辑电路,备份寄存器,备份RAM,LSE电路供电。在这里插入图片描述
  • 调压器
    控制低功耗,用于为备份域以及待机电路以外的所有数字电路供电,如IO口,内核逻辑电路,CPU,数字外设RAM,FLASH等。 输出电压为1.2V或1.8V。
    工作模式
    1. 正常运行:1.2/1.8V域全功率运行;
    2. 停止模式:1.2/1.8V域低功率运行;1.2V域所有时钟关闭,相应外设停止工作,保留内核寄存器以及SRAM内容;
    3. 待机模式:1.2/1.8V域断电;内核寄存器以及SRAM内容的内容全部丢失,备份区域的寄存器以及SRAM不收影响。
  • 独立A/D转换器电源以及参考电压
    ADC的独立电源(VDDA, VSSA引脚),用于提高转换精度,可以单独滤波并屏蔽PCB上的噪音。

3. HAL库配置PVD实例

#include "exti.h"
#include "led.h"
#include "delay.h"
#include "key.h"
#include "exti.h"PVDTypeDef pvd_config;void PVD_Config(void)
{
/*********************************
//使能PWR时钟
*********************************/
__HAL_RCC_PWR_CLK_ENABLE(); /*********************************
//配置PVD参数:阈值级别和中断触发方式
*********************************/
pvd_config.PVDLevel=PWR_PVDLEVEL_7;//2.9v
pvd_config.PVDMode=PWR_PVD_MODE_IT_RISING_FALLING;HAL_PWR_ConfigPVD(&pvd_config);/*********************************//使能PVD
*********************************/HAL_PWR_EnablePVD();/*********************************
设置后中断优先级
*********************************/
HAL_NVIC_EnableIRQ(PVD_IRQn); //
HAL_NVIC_SetPriority(PVD_IRQn,0,0);//
}/*********************************
//中断服务函数
*********************************/
void PVD_IRQHandler(void)
{HAL_PWR_PVD_IRQHandler();
}/*********************************
//中断回调函数
*********************************/
void HAL_PWR_PVD_Callback(void)
{LED=0;LED=1;
}/*********************************
主函数
*********************************/int main(void)
{HAL_Int();//初始化HAL库Stm32_Clocu_Init(360,25,2,8);//设置时钟delay_init(180);//初始化延时uart_int(115200);//初始化USARTLED_Init();//初始化LEDPVD_Config();while(1){}
}

参考资料:正点原子视频 Thanks^^

【注】:个人学习笔记,如有错误,望不吝赐教,这厢有礼了~~~


这篇关于MCU学习笔记_PWR电源管理系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

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

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