STM32H750 COMP模拟比较器
STM32H750 COMP模拟比较器
- 🔖STM32H750内置两个超低功耗比较器通道(COMP1 和 COMP2).
- 📄功能应用:
- 在模拟信号的触发下从低功耗模式唤醒
- 模拟信号调理
- 与定时器的 PWM 输出结合使用时,构成逐周期电流控制环路.
📙COMP主要特性
- 🌿可选反相模拟输入:
- I/O 引脚(因通道而异)
- DAC 通道 1 和通道 2 输出
- 通过调节器(缓冲分压器)提供的内部参考电压和三个因数分压值(1/4、1/2、3/4)
- 每个通道有两个 I/O 引脚可选作非反相模拟输入
- 可编程迟滞
- 可编程速度/功耗
- 将输出映射到 I/O
- 将输出重定向到用于触发以下事件的定时器输入:
- 捕捉事件
- OCREF_CLR 事件(用于逐周期电流控制)
- 断路事件(用于快速 PWM 关断)
- 消隐比较器输出
- 窗口比较器
- 可生成中断,用于使器件从睡眠模式和停止模式唤醒(通过 EXIT 控制器)
- 将中断输出定向到 CPU
2路比较器功能框图
📚比较器功能描述
📗COMP 引脚和内部信号
- 用作比较器输入的 I/O 必须在 GPIO 寄存器中配置为模拟模式。
- 比较器输出可通过其复用功能连接到 I/O。
- 输出也可以在内部重定向到用于以下用途的各种定时器输入:
- 使用 BKIN 和 BKIN2 输入紧急关断 PWM 信号
- 使用定时器的 ETR 输入进行逐周期电流控制
- 用于时序测量的输入捕捉.
比较器输出可以在内部同时连接到 I/O 引脚。
COMP 复位和时钟
时钟控制器提供的时钟 comp_pclk 与 APB 时钟同步。
注: 重要提示:极性选择逻辑和到端口的输出重定向独立于 APB 时钟。因此,即使在停止模式下 ,比较器仍能正常工作。连接至 CPU 的 NVIC 的中断线需要 APB 时钟 (comp_pclk) 才能工 作。如果没有 APB 时钟,则无法生成中断信号 comp_it。
比较器锁定机制
这两个比较器可用于过流或热保护等安全用途。对于具有特定功能安全要求的应用,可对比较器配置进行保护,以防发生意外修改(例如,当程序计数器损坏时)。为此,可以对比较器配置寄存器进行写保护(只读)。一旦比较器通道配置完成,其 LOCK 位设置为 1。从而使得只能读取比较器通道的整个寄存 器组以及通用 COMP_OR 寄存器,包括 LOCK 位。
只能通过 MCU 复位来移除写保护。
COMP_OR 寄存器由 COMP_CFGR1 或 COMP_CFGR2 的 LOCK 位进行锁定。
窗口比较器
窗口比较器用于监视模拟电压并检查其是否处于阈值上下限所定义的特定电压范围内。
窗口比较器需要两个 COMP 通道。受监视的模拟电压连接至其非反相 (+) 输入,阈值上下限
电压分别连接至各比较器的反相 (-) 输入。通过使能 WINMODE 位,可使 COMP 通道 2 的
非反相输入在内部与 COMP 通道 1 的非反相输入相连。这可以节省 COMP 通道 2 的输入引
脚以用于其他用途。
迟滞
比较器具有可编程迟滞,可在有噪声信号时避免发生意外输出转换。迟滞可在不需要时(例如,退出低功耗模式时)禁止,以便使用外部组件强制迟滞值.
比较器输出消隐功能
消隐功能的目的是防止电流调节在 PWM 周期开始处出现短暂电流尖峰(通常为功率开关反向并联二极管中的恢复电流)时发生跳闸。该功能使用通过定时器输出比较信号定义的消隐窗口。有关可选消隐信号,请参见寄存器说明。消隐信号对内部比较器输出进行门控,以便能使 comp_out 免受因电流尖峰而导致的寄生脉冲的干扰,
GPIO 上的比较器输出
比较器通道的 COMP1_OUT 和 COMP2_OUT 输出通过 COMP_OR 寄存器的 AFOP 字段 (位 [10:0])以及通过 GPIO 复用功能映射到 GPIO。
两种比较器通道输出的 GPIO 分配都必须在锁定任一通道的寄存器之前完成,因为在锁定任一比较器通道的寄存器时会锁定通用 COMP_OR 寄存器。
比较器输出重定向
任一 COMP 通道的输出均可重定向到定时器刹车输入(TIMx_BKIN 或 TIMx_BKIN2)可将 COMP 通道输出连接至其中一个 GPIO(可在复用功能中进行编程),作为定时器刹车输入。见表 218 和表 219。所选 GPIO 必须被设置为开漏模式。
COMP 输出通过 GPIO 传递至定时器刹车输入。通过上拉电阻,所选 GPIO 可用作定时器刹
车输入(与比较器输出进行逻辑 OR 运算)。
COMP 功耗和速度模式
对于给定的应用,可调节 COMP 通道功耗与传播延迟以获得最佳平衡。
COMP_CFGRx 寄存器的位 PWRMODE[1:0] 可编程为如下值:
00:高速/全功耗
01:中速/中等功耗
10:中速/中等功耗
11:极低速/超低功耗
COMP 低功耗模式
注: 当内部参考电压关闭时,不能使用比较器将器件从休眠或停止模式退出。
COMP 中断
可通过两种方式将比较器用作中断源。
比较器输出从内部连接到扩展中断和事件控制器。每个比较器都具有其各自的 EXTI 线,能
够产生中断或事件,可使器件退出低功耗模式。
比较器还提供有连接至 CPU 的 NVIC 的中断线。在 CPU 激活时使用该功能处理低延迟中
断。这需要 APB 时钟处于运行状态。
通过 EXTI 模块实现的中断
更多详细信息,请参见中断和事件部分。通过 EXTI 模块实现 COMPx 中断的程序:
- 将 EXTI 线(用于接收 comp_wkup 信号)配置为中断模式,选择上升沿、下降沿或任
一边沿有效,然后使能 EXTI 线。 - 配置并使能映射到相应 EXTI 线的 NVIC IRQ 通道。
- 使能 COMPx。
通过 CPU 的 NVIC 实现中断
通过 CPU 的 NVIC 实现 COMPx 中断的程序:
- 配置并使能映射到 comp_it 线的 NVIC IRQ 通道。
- 在 COMP_CFGRx 中配置并使能 ITEN。
- 使能 COMPx。
注: 要使用该中断,需要使能 APB 时钟。如果未使能该时钟,则不会生成中断。
SCALER 功能
调节器模块用于为各个比较器输入提供不同的参考电压。其基于一个驱动电阻桥的放大器。
放大器输入连接至内部参考电压。
放大器和电阻桥可单独使能。放大器由 COMP_CFGRx 寄存器的 SCALEN 位使能。电阻桥由 COMP_CFGRx 寄存器的 BRGEN 位使能。
如果未使用电阻分压,则可断开电阻桥,以降低功耗。断开后,1/4 VREF_COMP、1/2 VREF_COMP和 3/4 VREF_COMP 值等于 VREF_COMP。
📘作为模拟信号的触发源,从低功耗模式唤醒
模拟比较器用作信号触发源,从低功耗模式中唤醒。此应用例程可以在.pack包中找到相关例程:
COMP_Interrupt
- 从低功耗模式中唤醒例程配置:使用内部1.2V参考电压,作为反向端(INM),正向端(INP):PB0引脚作为信号输入端。
/*** @brief COMP configuration* @param None* @retval None*/
void COMP_Config(void)
{/*##-1- Configure the COMP1 peripheral ###################################*/Comp1Handle.Instance = COMP1;Comp1Handle.Init.InvertingInput = COMP_INPUT_MINUS_VREFINT;//内部参考电压作为VINP:1.2V±02Comp1Handle.Init.NonInvertingInput = COMP_INPUT_PLUS_IO1; /* PB.00 */Comp1Handle.Init.OutputPol = COMP_OUTPUTPOL_NONINVERTED;Comp1Handle.Init.Mode = COMP_POWERMODE_HIGHSPEED;Comp1Handle.Init.Hysteresis = COMP_HYSTERESIS_NONE;Comp1Handle.Init.BlankingSrce = COMP_BLANKINGSRC_NONE;Comp1Handle.Init.WindowMode = COMP_WINDOWMODE_DISABLE;Comp1Handle.Init.TriggerMode = COMP_TRIGGERMODE_IT_RISING;if(HAL_COMP_Init(&Comp1Handle) != HAL_OK){/* Initialization Error */Error_Handler();}
}/*** @brief COMP MSP Initialization * This function configures the hardware resources used in this example:* - Peripheral's clock enable* - Peripheral's GPIO Configuration * - NVIC configuration for COMP interrupt request enable* @param hcomp: COMP handle pointer* @retval None*/
void HAL_COMP_MspInit(COMP_HandleTypeDef *hcomp)
{GPIO_InitTypeDef GPIO_InitStruct;/*##-1- Enable peripherals and GPIO Clocks #################################*//* Enable GPIO clock ***************************************************/COMPx_GPIO_CLK_ENABLE();/* Enable COMP peripheral clock ****************************************/__HAL_RCC_COMP12_CLK_ENABLE();/*##-2- Configure peripheral GPIO ##########################################*//* COMP GPIO pin configuration */GPIO_InitStruct.Pin = COMPx_PIN;GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;GPIO_InitStruct.Pull = GPIO_NOPULL;HAL_GPIO_Init(COMPx_GPIO_PORT, &GPIO_InitStruct);/*##-3- Configure the NVIC for COMPx #######################################*//* Enable the COMPx IRQ Channel */HAL_NVIC_SetPriority(COMPx_IRQn, 3, 0);HAL_NVIC_EnableIRQ(COMPx_IRQn);
}
- 🌿main:
/* Configure the COMP1 peripheral */COMP_Config();/*## Enable peripherals ####################################################*//* Start COMP1 */if(HAL_COMP_Start_IT(&Comp1Handle) != HAL_OK){/* Initialization Error */Error_Handler(); }
/* Enter STOP mode */HAL_PWR_EnterSTOPMode(PWR_MAINREGULATOR_ON, PWR_STOPENTRY_WFI);//进入停机模式/* ... STOP mode ... *//* at that point, MCU has been awoken *///当PB0引脚电压信号大于1.2V时,停机模式会被唤醒,继续执行下面的代码,需要重新初始化时钟和其他需要使用到的外设。/* Re-configure the system clock */SystemClock_Config();
- 🌿比较器中断回调:
void HAL_COMP_TriggerCallback(COMP_HandleTypeDef *hcomp)
{if (hcomp->Instance==COMP1){// 执行相应的操作COMP_TRG_FLG =1;}}
当比较器输入引脚PB0,输入电压在超过1.2V时,会响应中断。如果开启了停机模式,则会唤醒,继续执行
HAL_PWR_EnterSTOPMode(PWR_MAINREGULATOR_ON, PWR_STOPENTRY_WFI);
之后的代码。
相关文章:

STM32H750 COMP模拟比较器
STM32H750 COMP模拟比较器 🔖STM32H750内置两个超低功耗比较器通道(COMP1 和 COMP2). 📄功能应用: 在模拟信号的触发下从低功耗模式唤醒模拟信号调理与定时器的 PWM 输出结合使用时,构成逐周期电流控制环路…...
openresty入门教程:rewrite_by_lua_block
在OpenResty中,rewrite_by_lua_block 是一个强大的工具,它允许你在Nginx的rewrite阶段执行Lua脚本。这个阶段在Nginx处理请求的早期发生,通常用于修改请求URI、请求参数、请求头等,或者根据某些条件执行重定向、返回特定响应等。 …...

Java 并发编程学习笔记
参考资料: JAVA并发专题 - 终有救赎的专栏 - 掘金 Java并发编程学习路线(建议收藏��) | Java程序员进阶之路x沉默王二 面试题目: JUC第一讲:Java并发知识体系详解 面试题汇总(P6熟练 P7精通…...

【SpringMVC】——Cookie和Session机制
阿华代码,不是逆风,就是我疯 你们的点赞收藏是我前进最大的动力!! 希望本文内容能够帮助到你!! 目录 一:实践 1:获取URL中的参数 (1)PathVariable 2&…...

[产品管理-60]:产品的情感化设计与常用工具:感性工学、情感分析、神经网络法、微软反应卡、突发情绪法
目录 一、概述 1、情感化设计的三个层次 2、情感化设计在产品中的应用 3、情感化设计的案例 4、情感化设计的意义 二、常见工具 1、感性工学 (情商) 2、情感分析 3、神经网络法 4、微软反应卡 5、突发情绪法 一、概述 产品的情感化设计是一种…...
uniapp 小程序 周选择器
这里贴出来的是子组件的代码,父组件只是打开了一下popup // 打开了一下popup $refs.popup.open(bottom)如果不想用子组件的话,直接打开popup就可以用<template><uni-popup ref"popup" type"bottom" background-color&quo…...
Android笔记(三十二):封装一个毫秒级别倒计时View
效果 倒计时View视频 背景 业务场景需要显示带有毫秒级别的倒计时,于是自己封装一个通用的倒计时组件 源码分析 核心倒计时逻辑,主要是每隔100毫秒计算一次从开始倒计时到现在的剩余时间,并通过process接口返回出去Handler每次设置100毫秒…...

[产品管理-60]:马斯洛需求层次与产品的情感化设计
目录 一、概述 1、马斯洛需求层次理论概述 2、产品情感化设计与马斯洛需求层次的关系 3、产品情感化设计的实践案例 二、马斯洛需求层次与用户情感程度(本能、行为、反思)的关系 1、马斯洛需求层次与用户情感程度概述 2、马斯洛需求层次与用户情感…...

Python接口自动化测试自学指南(项目实战)
🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 接口自动化测试是指通过编写程序来模拟用户的行为,对接口进行自动化测试。Python是一种流行的编程语言,它在接口自动化测试中得到了广…...
ESLint 使用教程(三):12个ESLint 配置项功能与使用方式详解
前言 在现代前端开发中,代码质量与一致性是至关重要的,ESLint 正是为此而生的一款强大工具,本文将带您详细了解 ESLint 的配置文件,并通过通俗易懂的方式讲解其主要配置项及其配置方法。此外,我们还将探讨一些高级配置…...
如何将 EDB 文件导入 Ansys HFSS 和 Ansys Q3D
EDB 文件包含有关印刷电路板 (PCB) 的基本数据,包括其布局、组件、连接性和电磁属性。将 EDB 文件导入 Ansys 工具是利用仿真和分析功能设计高效、可靠和高性能电子系统的关键步骤。在这里,我将向您展示如何将 EDB 文件导入 Ansys…...

HbuildderX运行到手机或模拟器的Android App基座识别不到设备 mac
寻找模拟器 背景: 运行的是h5,模拟器是网易MuMu。 首先检查一下是否配置dab环境,adb version 配置一下hbuilderX的adb: 将命令输出的路径配置到hbuilderx里面去,然后重启下HbuilderX。 开始安装基座…一直安装不…...

智慧流控 力行天地 | 同元软控受邀参加第十三届全国流体传动与控制学术会议
2024年10月27日-30日,由中国机械工程学会流体传动与控制分会主办的第十三届全国流体传动与控制学术会议在秦皇岛召开。大会以“智慧流控 力行天地”为主题,来自全国高校、科研院所及企事业单位的专家学者出席本次会议。 大会围绕工程应用、新型流控元件、…...
Python日志分析与故障定位
Python日志分析与故障定位 目录 📊 分布式系统日志分析:ELK Stack与Fluentd⚡ 实时日志流处理与异常检测🐍 使用Python分析并处理海量日志数据🚨 自动化故障检测与报警系统🔍 故障根因分析(Root Cause An…...

w029基于springboot的网上购物商城系统研发
🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹赠送计算机毕业设计600个选题excel文件࿰…...
Uniapp全局文件执行顺序详解
Uniapp全局文件执行顺序详解 在Uni-App项目中,全局文件的执行顺序对于深入理解应用的启动和初始化流程至关重要。本文将详细阐述这些文件的执行顺序,并提供相应的示例代码,以便开发者更好地理解和应用。 1. index.html 文件描述࿱…...

车企死亡加速,买车看好这三条线
文 | AUTO芯球 作者 | 雷慢 真不是我危言耸听, 新能源车是真不能随便买啊, 就在这几天,哪吒被传出要裁员70%, 多少车主,多少员工和家庭要失眠了, 哪吒也回应了,说没有裁员,只是精…...

SpringClud一站式学习之Eureka服务治理(二)
SpringClud一站式学习之Eureka服务治理 引言1. 搭建Eureka Server1.1. 添加Eureka Server依赖1.2. 添加 Eureka Server注解1.3. 配置Eureka Server1.4. 运行Eureka Server 2. 搭建Eureka Client 服务提供者2.1. 添加依赖2.2. 添加注解2.3. 配置Eureka Client2.4. 启动服务 3. 搭…...
空间解析几何【上】
文章目录 两向量共线&三向量共面线段定比分点内积&外积&混合积内积(点积)外积(叉积)几何性质混合积轮换对称性对换改变一次符号线性性质几何性质球面方程特点空间平面参数方程行列式方程(点位式)向量式方程三点式方程行列式方程点法式一般式截距式法式方程离…...

Python 获取PDF的各种页面信息(页数、页面尺寸、旋转角度、页面方向等)
目录 安装所需库 Python获取PDF页数 Python获取PDF页面尺寸 Python获取PDF页面旋转角度 Python获取PDF页面方向 Python获取PDF页面标签 Python获取PDF页面边框信息 了解PDF页面信息对于有效处理、编辑和管理PDF文件至关重要。PDF文件通常包含多个页面,每个页…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...

如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!
简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...

springboot整合VUE之在线教育管理系统简介
可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...

Razor编程中@Html的方法使用大全
文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...

[ACTF2020 新生赛]Include 1(php://filter伪协议)
题目 做法 启动靶机,点进去 点进去 查看URL,有 ?fileflag.php说明存在文件包含,原理是php://filter 协议 当它与包含函数结合时,php://filter流会被当作php文件执行。 用php://filter加编码,能让PHP把文件内容…...
【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)
LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 题目描述解题思路Java代码 题目描述 题目链接:LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement
Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...