STM32 定时器 输入捕获

用于测频率测占空比

IC(Input Capture)输入捕获

  • 输入捕获模式下,当通道输入引脚出现指定电平跳变(上升沿/下降沿)时,会让当前CNT的值将被锁存到CCR中,可用于测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数
  • 每个高级定时器和通用定时器都拥有4个输入捕获通道,基本定时器没有输入捕获功能
  • 可配置为PWMI模式,同时测量频率和占空比
    • PWMI是PWM输入模式,专门为测量PWM频率和占空比设计的
  • 可配合主从触发模式,实现硬件全自动测量

如上图,左下角的三个输入连接在一个异或门,当3个输入引脚有任何一个有电平翻转时,输出引脚就产生一次电平反转,输出通过数据选择器,到达输入捕获通道1,数据选择器可以选择上面或者下面一个(不通过异或门),设计这个异或门是为三相无刷电机服务的

无刷电机有3个霍尔传感器检测转子位置,可以根据转子的位置进行换相,有了这个异或门,3个通道就可以连接上无刷电机的霍尔传感器。

输入滤波、边沿检测(可以选择高电平触发、低电平触发,当出现指定的电压时,边沿检测电路就会触发后续电路执行动作)

有两套输入滤波、边沿检测电路,通道一可以输出TI1FP1和TI1FP2(去了IC2),通道二也可以输出TI2FP1(去了IC1)和TI2FP2。可以灵活切换输入,可以把一个引脚的输入映射到两个捕获单元,第一个捕获通道,使用上升沿触发,用来捕获周期,第二个通道,使用下降沿触发,捕获占空比,两通道同时对一个引脚进行捕获,就可以同时测量频率和占空比。

通道3、4也是一样,可以选择各自独立连接或者进行交叉。

TRC信号,在图上部分连接

预分频器:对输入的信号分频,分频后的信号触发捕获电路进行工作

每来一个触发信号,CNT的值就会向CCR转运一次,转运的同时发生一个捕获事件,该事件会在状态寄存器置标志位,同时也可以产生中断,CCR捕获到的置就是公式里的N

CNT清零可以使用主从触发模式来自动完成。

CCMR1寄存器里的ICF位可以控制滤波器的参数

滤波器工作原理在CCMR1寄存器一节

边沿检测器捕获上升沿或者下降沿

用CCER寄存器里的CC1P位,可以选择极性

最终得到TI1FP1触发信号,通过数据选择器

应当还有一条一样的电路,得到TI1FP2的触发信号,连通到通道2(IC2)

CC1S位可以对数据选择器进行选择

ICPS位可以配置分频器。选择不、2、4、8分频

CC1E位控制输出使能或失能

为方便下一次计数,将CNT里的值捕获到CCR里面后,清零CNT,方便下一次捕获

如何自动清零CNT

TI1FP1信号和TI1的边沿信号都可以通向从模式控制器,从模式里面有电路可以自动完成CNT清零

频率测量

上图是一个频率逐渐降低的方波波形,左边频率最高,右边最低,只有高低电平的数字信号,STM32只能测量数字信号,如果要测量正弦波,那则还需要搭建一个信号预处理电路(最简单的就是用运放搭建一个比较器)将正弦波转换为数字信号,再输入给STM32即可。如果测量的电压信号非常高,还要考虑隔离问题,比如隔离放大器,电压互感等元件,隔离高压端和低压端,保证电路安全。

频率测量方法

测周法:用已知的标准频率fc的计次时钟来驱动计数器,计算连续的两个上升沿之间的间隔时间,从一个上升沿开始计,计数器从0开始一直计到下一个上升沿,停止,计一个数的时间是1/fc,计N个数,时间是N/fc,N/fc是周期,fc/N则为周期。

  • 测频法适合测量高频信号,测量结果更新慢,数值相对稳定
  • 测周法适合测量低频信号,测量结果更新快,数值跳变快波动大
  • 存在正负1误差
    • 测频法,在闸门时间内,可能有的周期信号不完整,比如在最后的时间,周期才出现一半,闸门时间就到了
    • 测周法,在最后时刻,一个数计到一半,周期就结束了
    • 要减小误差,就要增大N的值

结合两个公式将N消掉,得到两个方法误差相同时的频率

中界频率:当待测信号小于中界频率时,测周法误差更小,当待测信号大于中界频率时,测频法误差更小。

总结输入捕获基本结构

这个结构只使用了1个通道,只能测频率

注意:只有通道CH1、CH2可以使用从模式自动清零CNT,通道CH3、CH4只能开启捕获中断来手动清零,比较消耗软件资源。

 PWMI基本结构

PWMI模式,使用了两个通道捕获一个引脚,可以同时测量周期占空比

TI1FP1配置为上升沿触发,触发CCR1捕获CNT值(测量周期)和清零CNT。

TI1FP2配置为下降沿触发,触发CCR2捕获CNT值。可以测量到高电平持续的时间,计算占空比。

测频法代码实现

使用计数器,每来一个上升沿,计次加1,再用定时器,定一个1s的定时中断,在中断里,每隔1s取计数器的值,同时清零计次,为下一次做准备。

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

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

相关文章

2024年入职/转行网络安全,该如何规划?_网络安全职业规划

前言 前段时间,知名机构麦可思研究院发布了 《2022年中国本科生就业报告》,其中详细列出近五年的本科绿牌专业,其中,信息安全位列第一。 网络安全前景 对于网络安全的发展与就业前景,想必无需我多言,作为…

制造企业为什么要数字化转型?面临哪些困难?

如何界定制造企业 制造业(Manufacturing Industry)是指机械工业时代利用某种资源(物料、能源、设备、工具、资金、技术、信息和人力等),按照市场要求,通过制造过程,转化为可供人们使用和利用的…

坐牢第二十七天(聊天室)

基于UDP的网络聊天室 一.项目需求: 1.如果有用户登录,其他用户可以收到这个人的登录信息 2.如果有人发送信息,其他用户可以收到这个人的群聊信息 3.如果有人下线,其他用户可以收到这个人的下线信息 4.服务器可以发送系统信息…

8月16日笔记

只有DNS协议出网场景 DNS 协议是一种请求、应答协议,也是一种可用于应用层的隧道技术。DNS 隧道的工作原理很简单,在进行 DNS 查询时,如果查询的域名不在 DNS 服务器本机缓存中,就会访问互联网进行查询,然后返回结果。…

JavaScript基础知识(三)

样式修改 元素.style是对象的一种格式,用于通过设置元素的相关行内样式来设置css,也可以选择相关关联的样式来修改元素相关的样式. 要注意的是,选择相关的样式的时候,样式名是采用小驼峰写法而非是全部小写的方式 类名 添加类名: 元素.classList.add("classname") …

FFmpeg开发笔记(五十二)移动端的国产视频播放器GSYVideoPlayer

GSYVideoPlayer是一个国产的移动端视频播放器,它采用了IJKPlayer、Media3(EXOPlayer)、MediaPlayer、AliPlayer等四种播放器内核,支持弹幕、滤镜、广告等多项功能。 GSYVideoPlayer的Github主页为https://github.com/CarGuo/GSYVideoPlayer,截…

『Z-Workshop』 The Graph workshop mini hackathon活动

Community Meetup In Hangzhou ZJUBCA 2024 求是 创新 概述 / OVERVIEW The Graph作为一个去中心化的查询协议,为区块链数据的索引和查询提供了强大的支持。我们希望通过这场黑客松,激发大家对区块链技术更深层次的探索和应用,共同推动这一…

Facebook与区块链:社交网络如何融入去中心化技术

随着区块链技术的飞速发展,去中心化理念逐渐渗透到各个领域,社交网络也不例外。作为全球领先的社交平台,Facebook在这一趋势下开始积极探索区块链技术的潜力,希望利用这一前沿技术来提升平台的安全性、透明度和用户控制权。本文将…

Linux网络:基于OS的网络架构

Linux网络:OS视角下的网络架构 网络分层模型OSI 七层模型TCP/IP 五层模型 协议操作系统与网络网络相关命令ifconfigpingnetstat 本博客将基于操作系统,讲解计算机网络的设计理念,帮助大家理解操作系统与网络之间的关系。 网络分层模型 网络…

【AI安防】YOLOv8 + OpenVINO2023 + QT5 电子围栏预警系统

引言 电子围栏是一种利用无线通信技术和地理信息系统实现的虚拟边界,用于监控和控制被监控对象的位置。它可以帮助我们实现对特定区域内的自定义对象进行实时检测、定位与跟踪。本文介绍了一种基于YOLOv8 OpenVINO2023 QT5 联合打造的实时高效、多线程、自定义对…

Java使用Graphics绘制图片文字边缘出现粗糙的锯齿问题解决

为什么会出现锯齿问题 文字出现锯齿的现象通常是由于显示设备的分辨率有限,无法完美地表现出字符的曲线和斜线的原因。 怎么解决 可以通过Graphics2D设置抗锯齿效果 // 打开抗锯齿效果g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VAL…

【备战蓝桥杯青少组】第二天 奇特的砖墙

真题 第十四届省赛 编程题 第5题 工人砌了一面奇特的砖墙,该墙由N列砖组成(1≤N≤1e6),且每列砖的数量为Ki(1≤Ki≤1e4,相邻砖块之间无缝隙),每块砖的长宽高都为1。小蓝为了美化这面…

网络安全简介(入门篇)

目录 前言 一、什么是网络安全? 二、网络安全的重要性 1、保护数据安全和隐私 2、防止服务中断和数据丢失 3、防止经济损失和法律责任 4、维护公共安全和国家安全 5、提升技术发展和创新 三、网络安全等级保护 1、第一级(自主保护级&#xff0…

解密!抖音百万粉丝博主三维地图视频都用到了什么GIS数据和技术

引言 在抖音上有许多诸如三维地图科普局、三维地图看世界和三维地图鉴赏等百万粉丝博主靠着三维地图科普城市、景区、人文和地理视频获赞百万,在我们浏览视频时犹如身临其境一般,那么制作这些视频需要什么GIS技术呢?如何利用MapMost技术自己…

2024最新50道NLP和人工智能领域面试题+答案(中文+英文双版本)

编者按:分享一个很硬核的免费人工智能学习网站,通俗易懂,风趣幽默, 可以当故事来看,轻松学习。 中文版本 自然语言处理 (NLP)已成为语言学、人工智能和计算机科学交叉领域的变革性领域。随着文本数据量的不断增加&…

树莓派5 笔记26:ollama大型语言模型_中文输入法_Python_espeak文字转语音

今日继续学习树莓派5 8G:(Raspberry Pi,简称RPi或RasPi) 本人所用树莓派4B 装载的系统与版本如下: 版本可用命令 (lsb_release -a) 查询: Opencv 与 python 版本如下: 下载大语言模型,下载中文输入法&#…

遗传算法原理与实战(python、matlab)

遗传算法 1.什么是遗传算法 遗传算法(Genetic Algorithm,简称GA)是一种基于生物进化论和遗传学原理的全局优化搜索算法。它通过模拟自然界中生物种群的遗传机制和进化过程来解决复杂问题,如函数优化、组合优化、机器学习等。遗传…

Anki如何安装插件

文章目录 前言如何安装 Anki 插件开始安装如何获取插件代码安装成功 前言 如果需要扩展 Anki 可能就需要安装一些插件。 这里介绍如何安装插件。 如何安装 Anki 插件 当下载完 anki 后打开软件。 开始安装 点击上面的工具栏,然后点击插件。 这时候会跳出新的弹…

【esp32程序编译提示undefined reference to ‘xxxx‘】

案例1: 【背景】 在使用SquareLine Studio设计UI时,成功导出UI代码,在编译代码的时候提示undefined reference to ‘ui_img_1869164015’,有一个变量无法识别,没有定义。 【定位步骤】 1.首先找到用这个变量的.c文件…

html文件运行后界面反馈xxx拒绝连接

概述&#xff1a;我的html代码中包含了外站界面&#xff0c;运行后界面反馈到xxx拒绝连接&#xff0c;我尝试了网上的诸多方法&#xff0c;例如换一个浏览器运行&#xff0c;修改主机网络设置&#xff0c;更改浏览器DNS都没有作用。 <!DOCTYPE html> <html> <h…