STM32H750外设ADC之模拟窗口看门狗

目录

概述

1 相关寄存器

2 功能描述

3  AWDx 标志和中断

4  模拟看门狗 1

4.1 模拟看门狗 1 说明

4.2 模拟看门狗通道选择

4.3 阀值选择

5 模拟看门狗 2和3

6 ADCx_AWDy_OUT 信号输出生成

6.1 功能介绍

6.2 输出信号案例

7 模拟看门狗 1、 2、 3 比较


概述

本文主要介绍STM32H750外设ADC之模拟窗口看门狗的功能,包括与之相关的寄存器配置、模拟窗口看门狗的实现,各类型看门狗的功能等内容。

1 相关寄存器

和模拟窗口看门狗相关有如下这些:( AWD1EN、 JAWD1EN、 AWD1SGL、 AWD1CH、
AWD2CH、 AWD3CH、 AWD_HTRy、 AWD_LTRy、 AWDy)。

2 功能描述

三个 AWD 模拟看门狗会监测一些通道是否保持在配置的电压范围(窗口)内。

3  AWDx 标志和中断

可通过将 ADCx_IER 寄存器( x=1、 2、 3)中的 AWDyIE 置 1 的方式分别为 3 个模拟看门狗使能中断。AWDy( y=1、 2、 3)标志可通过由软件向其写入 1 的方式来清零。在对齐之前,会将 ADC 转换结果与阈值上限和下限进行比较。

ADC x 中断使能寄存器 (ADCx_IER)( x=1 到 3)
ADC x interrupt enable register
偏移地址: 0x04
复位值: 0x0000 0000

位 9 AWD3IE:模拟看门狗 3 中断使能 (Analog watchdog 3 interrupt enable)
此位由软件置 1 和清零,用于使能/禁止模拟看门狗 2 中断。
0:禁止模拟看门狗 3 中断
1:使能模拟看门狗 3 中断
注: 仅当 ADSTART=0 且 JADSTART=0 时(这可确保当前未进行任何转换),才允许通过软件对此位执行写操作。

位 8 AWD2IE:模拟看门狗 2 中断使能 (Analog watchdog 2 interrupt enable)
此位由软件置 1 和清零,用于使能/禁止模拟看门狗 2 中断。
0:禁止模拟看门狗 2 中断
1:使能模拟看门狗 2 中断

注: 仅当 ADSTART=0 且 JADSTART=0 时(这可确保当前未进行任何转换),才允许通过软件对此位执行写操作。

位 7 AWD1IE:模拟看门狗 1 中断使能 (Analog watchdog 1 interrupt enable)
此位由软件置 1 和清零,用于使能/禁止模拟看门狗 1 中断。
0:禁止模拟看门狗 1 中断
1:使能模拟看门狗 1 中断

注: 仅当 ADSTART=0 且 JADSTART=0 时(这可确保当前未进行任何转换),才允许通过软件对此位执行写操作。

4  模拟看门狗 1

4.1 模拟看门狗 1 说明

ADCx_CFGR 寄存器中的 AWD1EN 位置 1,可使能 AWD 模拟看门狗 1。该看门狗监测一条已选通道或所有已使能通道(1) 是否仍在配置的电压范围(窗口)内。

 位 23 AWD1EN:常规通道上的模拟看门狗 1 使能 (Analog watchdog 1 enable on regular channels)
此位由软件置 1 和清零
0:在常规通道上禁止模拟看门狗 1
1:在常规通道上使能模拟看门狗 1

4.2 模拟看门狗通道选择

应如何配置 ADCx_CFGRy 寄存器才能在一条或多个通道上使能模拟看门狗

 位 24 JAWD1EN:注入通道上的模拟看门狗 1 使能 (Analog watchdog 1 enable on injected channels)
此位由软件置 1 和清零
0:在注入通道上禁止模拟看门狗 1
1:在注入通道上使能模拟看门狗 1

位 22 AWD1SGL:在单一通道或所有通道上使能看门狗 1 (Enable the watchdog 1 on a single channel or onall channels)
此位由软件置 1 和清零,用于在通过 AWD1CH[4:0] 位确定的通道或所有通道上使能模拟看门狗。
0:在所有通道上使能模拟看门狗 1
1:在单一通道上使能模拟看门狗 1
 

4.3 阀值选择

如果 ADC 转换的模拟电压低于阈值下限或高于阈值上限,则 AWD1 模拟看门狗状态位会
置 1。这些阈值编程到模拟看门狗 1 的 ADCx_HTR1 寄存器的 HTR1[25:0] 位和 ADCx_LTR1 寄存器的 LTR1[25:0] 位。

ADC x 看门狗阈值寄存器 1 (ADCx_LTR1)( x=1 到 3)
ADC x watchdog threshold register 1
偏移地址: 0x20
复位值: 0x0000 0000


 位 25:0 LTR1[25:0]: 模拟看门狗 1 阈值下限 (Analog watchdog 1 lower threshold)
这些位由软件写入,用于定义模拟看门狗 1 的阈值下限。

ADC x 看门狗阈值寄存器 1 (ADCx_HTR1)( x=1 到 3)
ADC x watchdog threshold register 1
偏移地址: 0x24
复位值: 0x03FF FFFF
 

位 25:0 HTR1[25:0]: 模拟看门狗 1 阈值上限 (Analog watchdog 1 higher threshold)
这些位由软件写入,用于定义模拟看门狗的阈值上限。
 

阈值最高可达到 26 位( 16 位分辨率,过采样, OSR=1024)。如果转换的数据分辨率小于 16 位(取决于 RES[2:0] 位),编程阈值的 LSB 必须保持清零状态,并且会在内部对完整的 16 位转换数据进行比较(左对齐到半字边界)。

ADC x 配置寄存器 2 (ADCx_CFGR2)( x=1 到 3)
ADC x configuration register 2
偏移地址: 0x10
复位值: 0x0000 0000
 

位 25:16 OSR[9:0]:过采样率 (Oversampling ratio)
此位域由软件置 1 和清零,用于定义过采样率。
0: 1x(不进行过采样)
1: 2x
2: 3x
...
1023: 1024x
 

5 模拟看门狗 2和3

第二个和第三个模拟看门狗更加灵活,可通过编程 AWDCHy[19:0]( y=2、 3)中的相应位来保护多条已选通道。

以模拟看门狗 2为例,介绍寄存器配置:

ADC x 模拟看门狗 2 配置寄存器 (ADCx_AWD2CR)( x=1 到 3)
ADC x Analog Watchdog 2 Configuration Register
偏移地址: 0xA0
复位值: 0x0000 0000
 

位 19:0 AWD2CH[19:0]:模拟看门狗 2 通道选择 (Analog watchdog 2 channel selection)
这些位将由软件置 1 和清零。它们用于使能和选择由模拟看门狗 2 监控的输入通道。
AWD2CH[i] = 0:不通过 AWD2 监控 ADC 模拟输入通道 i
AWD2CH[i] = 1:通过 AWD2 监控 ADC 模拟输入通道 i
当 AWD2CH[19:0] = 000..0 时,会禁止模拟看门狗 2

AWDCHy[19:0]( y=2、 3)的任何位置 1 时,会使能相应的看门狗。阈值最高可达到 26 位(16 位分辨率,过采样, OSR=1024) ,通过 ADCx_HTR2、 ADCx_LTR2、ADCx_LTR3 和 ADCx_HTR3 寄存器进行编程。

如果转换的数据分辨率小于 16 位(取决于 RES[2:0] 位),编程阈值的 LSB 必须保持清零
状态,并且会在内部对完整的 16 位转换数据进行比较(左对齐到半字边界)。

6 ADCx_AWDy_OUT 信号输出生成

6.1 功能介绍

每个模拟看门狗都关联到一个内部硬件信号 ADCx_AWDy_OUT( x = ADC 编号, y = 看门狗编号),该信号直接连接到一些片上定时器的 ETR 输入(外部触发)。请参见片上定时器部分以了解如何选择 ADCx_AWDy_OUT 信号作为 ETR。

当关联的模拟看门狗使能时, ADCx_AWDy_OUT 会激活:
1)当受保护的转换超出编程阈值时, ADCx_AWDy_OUT 会置 1。


2)在编程阈值范围内的下一受保护转换结束后, ADCx_AWDy_OUT 会复位(如果下一受保护转换仍超出编程阈值范围,该位仍保持置 1)。


3)禁止 ADC 时(将 ADDIS 置 1 时), ADCx_AWDy_OUT 也保持复位状态。请注意,停止常规转换或注入转换(将 ADSTP 或 JADSTP 置 1)对 ADCy_AWDx_OUT 的生成没有任何影响。

ADC x 控制寄存器 (ADCx_CR)( x=1 到 3)
ADC x control register
偏移地址: 0x08
复位值: 0x2000 0000


位 1 ADDIS: ADC 禁止命令 (ADC disable command)
该位由软件置 1,用于禁止 ADC( ADDIS 命令)并使其进入掉电状态( OFF 状态)。
ADC 已有效禁止后,会立即通过硬件将该位清零(此时也会通过硬件将 ADEN 清零)。
0:当前未执行 ADDIS 命令。
1:写入 1 可禁止 ADC。读取值为 1 表示正在执行 ADDIS 命令
 

6.2 输出信号案例

1)ADCy_AWDx_OUT 信号生成(所有常规通道上)

2)ADCy_AWDx_OUT 信号生成( AWDx 标志未通过软件清零)

3)ADCy_AWDx_OUT 信号生成(单条常规通道上)

 4)ADCy_AWDx_OUT 信号生成(所有注入通道上)

7 模拟看门狗 1、 2、 3 比较

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

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

相关文章

GEE:直方图匹配

作者:CSDN @ _养乐多_ 本文将介绍如何在 Google Earth Engine (GEE) 平台中,进行直方图匹配的代码。本文以Sentinel2和Landsat9的影像为例,将Landsat9的影像的分布直方图转换到了Sentinel2中相同波段的直方图,并可视化了匹配前后效果。该方法也可以用于影像融合,将低分辨…

Opencv_3_图像对象的创建与赋值

ColorInvert.h 如下&#xff1a; #include <opencv.hpp> using namespace std; #include <opencv.hpp> using namespace cv; using namespace std; class ColorInvert{ public : void mat_creation(); }; ColorInvert.cpp 文件如下&#xff1a; #include &q…

从零手写 tomcat

从零手写例子 项目简介 /\_/\ ( o.o ) > ^ <mini-cat 是简易版本的 tomcat 实现。别称【嗅虎】(心有猛虎&#xff0c;轻嗅蔷薇。) 开源地址&#xff1a;https://github.com/houbb/minicat 特性 简单的启动实现/netty 支持 servlet 支持 静态网页支持 filter/list…

解决宝塔面板无法访问(无法访问或拒绝链接)

&#x1f40c;博主主页&#xff1a;&#x1f40c;​倔强的大蜗牛&#x1f40c;​ &#x1f4da;专栏分类&#xff1a;Linux ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 问题如下&#xff1a; 本人设置了授权IP&#xff0c;但是有些问题&#xff0c;所以是打算取消授权IP 重…

Spring Boot 自动装配执行流程

Spring Boot 自动装配执行流程 Spring Boot 自动装配执行流程如下&#xff1a; Spring Boot 启动时会创建一个 SpringApplication实例&#xff0c;该实例存储了应用相关信息&#xff0c;它负责启动并运行应用。实例化 SpringApplication 时&#xff0c;会自动装载META-INF/spr…

Linux文件chattr/lsattr/Linux权限(搭建权限测试环境实战)引申到内部原理及Linux删除系统文件原理-7539字详谈

企业高薪思维: 每一个阶段什么时候是最重要的&#xff1f;&#xff08;快速定位&#xff09; 1.学习最重要的事情 &#xff08;学生阶段&#xff0c;找工作前阶段&#xff09; 2.家庭&#xff0c;女朋友 &#xff08;工作阶段/学生阶段&#xff0c;学习不受到影响&#xff09; …

修改Ubuntu22.04系统图标

在Ubuntu 22.04中更改开机时显示的Ubuntu图标需要修改的设置。 主要思路是用自己图片替换系统图片&#xff0c;保持系统图片同名&#xff0c;同格式。 以下是一般的步骤&#xff1a; 修改启动界面的logo&#xff1a; sudo cp 新logo.png /usr/share/plymouth/themes/spinn…

k8s pod 绑核

一、概述 默认配置下&#xff0c;kubelet/Linux 使用 CFS&#xff08;完全公平调度&#xff09;算法来为 Pod 分配 CPU&#xff0c;工作负载&#xff08;Pod 中的进程&#xff09;会被调度到不同的可用的 CPU 核心&#xff0c;而且大多数工作负载对这种迁移带来的性能损失并不…

狠不狠?做个标签累不累?

QT是专门用来开发用户界面的程序&#xff0c;小部件&#xff08;Widgets&#xff09;是构成用户界面的基本元素。QT6提供了一个丰富的库&#xff0c;用于创建桌面、移动和嵌入式应用程序的用户界面。 小部件是图形用户界面(GUI)编程中的一个重要概念。它是构成用户界面的基本元…

@NameBinding注解名称绑定过滤器/拦截器

NameBinding注解名称绑定过滤器/拦截器&#xff0c;只针对某一些资源方法执行处理逻辑 一、为什么要用名称绑定 一般情况下&#xff0c;借助Spring的过滤器或者拦截器等对Http请求或响应进行处理就能满足需求。但是在有些场景下若只需对特定的xxxResource做拦截处理&#xff0…

项目大集成

一 keeplived 高可用 192.168.11.11nginx keeplived192.168.11.12nginx keeplived 两台均编译安装服务器 1 主服务器修改文件&#xff1a; 2 备服务器修改文本 scp keepalived.conf 192.168.11.12:/etc/keepalived/ 3 给主服务器添加虚拟ip ifconfig ens33:0 192.168…

Qt5怎么用QSetting生成配置文件、读取配置文件和保存配置文件

2024年4月22日&#xff0c;周一下午 在 Qt5 中&#xff0c;可以通过 QSettings 类生成、读取和保存配置文件。 QSettings 类提供了一个跨平台的接口&#xff0c;用于读取和写入应用程序的设置和配置信息&#xff0c;这些信息可以存储在不同的地方&#xff0c;如注册表&#xf…

【多态】底层原理

博主首页&#xff1a; 有趣的中国人 专栏首页&#xff1a; C进阶 本篇文章主要讲解 多态底层原理 的相关内容 1. 多态原理 1.1 虚函数表 先看一下这段代码&#xff0c;计算一下sizeof(Base)是多少&#xff1a; class Base { public:virtual void Func1(){cout << &quo…

Oracle 21 C 安装详细操作手册,并配置客户端连接

Oracle 21 C 安装详细操作手册 Win 11 Oracle 21C 下载&#xff1a; Database Software Downloads | Oracle 中国 云盘共享 链接&#xff1a;https://pan.baidu.com/s/12XCilnFYyLFnSVoU_ShaSA 提取码&#xff1a;nfwc Oracle 21C 配置与登陆&#xff1a; 开始菜单 NetMa…

Node.js身份核验接口、身份证二、三要素实名认证接口

随着互联网的高速发展&#xff0c;人们可以发表言论的渠道越来越多。网络平台不断汲取各地、各人、各时发表的各种信息。人们喜欢将信息发布到微博、知乎、天涯、豆瓣等等网络平台&#xff0c;逐步的&#xff0c;网络信息进入大爆炸时代。这些大量涌现的信息中难免掺杂着一些不…

数学建模:Matlab一元二次回归模型-重庆房价预测

摘要 自1998年我国实行住房改革以来,房地产行业已经逐渐成长为拉动中国经济增长的龙头产业。近几年在国家积极的财政政策刺激下,我国房地产市场处于不断发展阶段。然而,与美国等发达国家住房市场进入成熟期不同,我国正处在城市化和工业化进程加速阶段,住房水平低和需求比…

java中spring底层核心原理解析(1)

相关系列 java中spring底层核心原理解析(2)-CSDN博客 总起 本章主要是讲以下的内容 Bean的生命周期底层原理依赖注入底层原理初始化底层原理推断构造方法底层原理 先看spring入门代码&#xff1a; ClassPathXmlApplicationContext context new ClassPathXmlApplicationCo…

Git下载安装

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

华为认证云计算前景如何

互联网/移动互联网经历了高速发展的二十年&#xff0c;我们有幸一起见证了华为、阿里、腾讯、百度、字节跳动、京东、滴滴、拼多多等互联网公司的崛起&#xff0c;让普通技术人实现逆袭拿到高薪&#xff0c;也让小镇做题家们有了阶层跨越的机会。 但机会都是留给有准备的人&…

C++:特殊成员函数

构造函数、析构函数和拷贝构造函数是C类中的三种特殊成员函数&#xff0c;它们分别用于对象的初始化、清理和拷贝操作。 1.构造函数&#xff08;Constructor&#xff09;&#xff1a;构造函数在对象创建时自动调用&#xff0c;用于初始化对象的成员变量。它的名称与类名相同&a…