当前位置: 首页 > article >正文

【STM32】TIM定时器输入捕获

1 输入捕获

1.1 输入捕获简介

IC(Input Capture)输入捕获

输入捕获模式下,当通道输入引脚出现指定电平跳变时(上升沿/下降沿),当前CNT的值将被锁存到CCR中(把CNT的值读出来,写入到CCR中),可用于测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数

每个高级定时器和通用定时器都拥有4个输入捕获通道

可配置为PWMI模式(PWM的输入模式),同时测量频率和占空比

可配合主从触发模式,实现硬件全自动测量

对于同一个定时器,输入捕获和输出比较只能使用其中一个,不能同时使用(共用)

输出比较是根据CNT和CCT的大小关系来执行输出动作;

输入捕获是接收到输入信号,执行CNT锁到CCR的动作;

1.2 频率测量

左边频率大于右边频率。STM32也只能测数字信号。

测频法:上升沿出现的次数/时间。适合高频信号,测量结果更新慢

测周法:两个上升沿的持续时间。fc是标准频率/计次。适合低频信号,测量结果更新快

中界频率:测频法与测周法误差相等的频率点

当待测频率小于中界频率时,测周法误差更小;反之测频法误差更小。

本节使用的是测周法

1.3 输入捕获电路

最左边是4个通道的引脚,参考引脚定义表就可以知道这个引脚复用在哪个位置。接下来是三输入的异或门,接到了CH1、CH2、CH3,异或们的逻辑是当三个输入引脚的任何一个有电平翻转时,输出引脚就产生一次电平翻转,之后,输出通过数据选择器,到达输入捕获通道1。数据选择器如果选择上面的,就是3个引脚的异或值;如果选择下面一个,那异或门就没有用,4通道各用各的引脚。异或门是为了三相无刷电机服务的。

输入信号此时来到输入滤波器和边沿检测器,输入滤波器对信号进行滤波,避免高频的毛刺信号误触发;边沿检测器处可以选择高电平触发/低电平触发(类似中断),当出现指定电平时,边沿检测电路就会触发后续电路执行动作。有两套电路,分别输出TI1FP1(输出给通道1的后续电路)和TI1FP2(输出给 下面通道2的后续电路),下面同理。

可以把一个引脚的输入,同时映射到两个捕获单元,这也是PWMI模式的经典结构。

第一个通道使用上升沿触发,用来捕获周期;

第二个通道使用下降沿触发,用来捕获占空比;两个通道同时对一个引脚进行捕获,就可以同时测量频率和占空比。

TRC信号也是为了无刷电机的驱动。

经过分频器之后的信号,就可以触发捕获电路进行工作了。每来一个触发信号,CNT的值,就会向CCR转运一次,转运的同时,会发生一个捕获事件,这个事件会在状态寄存器置标志位,同时也可以产生中断,可以开启这个中断处理事情。每次捕获之后,需要把CNT清零(主从触发模式自动处理)。

1.3.1 输入捕获通道


http://www.kler.cn/news/161932.html

相关文章:

  • WordCount 源码解析 Mapper,Reducer,Driver
  • 【环境搭建】ubuntu22安装ros2
  • 麒麟KYLINOS操作系统修改GRUB字体大小
  • lodash常用方法
  • 2023.12.1 --数据仓库之 拉链表
  • ⭐Unity 搭建UDP客户端(01) 配合网络调试助手测试
  • BUUCTF-[GYCTF2020]FlaskApp flask爆破pin
  • Docker入门:容器化原理
  • Clean 架构下的现代 Android 架构指南
  • 实验3.5 路由器的单臂路由配置
  • 装配式技术助力EHS平台系统:打造全方位的安全在线监测平台!
  • 【PTA-C语言】编程练习4 - 数组Ⅱ
  • 【面试经典150 | 二叉树】翻转二叉树
  • ubuntu内移除snap
  • VUE2+THREE.JS 按照行动轨迹移动人物模型并相机视角跟随人物
  • 智能优化算法应用:基于材料生成算法无线传感器网络(WSN)覆盖优化 - 附代码
  • Thymeleaf生成pdf表格合并单元格描边不显示
  • SpringDataJPA基础
  • Cypress:前端自动化测试的终极利器
  • Leetcode刷题笔记题解(C++):165. 比较版本号
  • 安路Anlogic FPGA下载器的驱动安装教程
  • 【mysql】下一行减去上一行数据、自增序列场景应用
  • 2023年4K投影仪怎么选?极米H6 4K高亮版怎么样?
  • Leetcode—1466.重新规划路线【中等】
  • 【PTA题目】7-7 自守数 分数 15
  • 芯知识 | 如何选择合适的单片机语音芯片?
  • 使用单例模式+观察者模式实现参数配置实时更新
  • 算术运算(这么简单?进来坐坐?)
  • 复杂gRPC之go调用go
  • C++标准模板(STL)- 类型支持 (杂项变换,确定一组类型的公共类型,std::common_type)