STM32——输入捕获、编码器接口(十一)

一、简介

输入捕获

• IC ( Input Capture )输入捕获
• 输入捕获模式下,当通道输入引脚出现指定电平跳变时,当前 CNT 的值将被锁存到 CCR 中,可用于测量 PWM 波形的频率、占空比、脉冲间隔、电平持续时间等参数
• 每个高级定时器和通用定时器都拥有 4 个输入捕获通道
• 可配置为 PWMI 模式,同时测量频率和占空比

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

编码器接口

• Encoder Interface 编码器接口
• 编码器接口可接收增量(正交)编码器的信号,根据编码器旋转产生的正交信号脉冲,自动控制 CNT 自增或自减,从而指示编码器的位置、旋转方向和旋转速度
• 每个高级定时器和通用定时器都拥有 1 个编码器接口

两个输入引脚借用了输入捕获的通道1和通道2

二、输入捕获

频率测量

测频法:第一个上升沿到下一个上升沿为一个周期,在一个固定时间内被测信号经过N个周期,所以T测 = T标 / N。

测周法:在被测信号的一个周期内,标准频率驱动计数器计数,N就是CNT的计数值,也就是在时间T测内,标准信号经过N个周期,T测 = N * T标。

中界频率:

当 fx​>fm​ 时,用测频法精度更高

当 fx​<fm​ 时,用测周法精度更高

基本结构

信号从 GPIO 输入,到最终得到计数值,分输入捕获单元时基 + 从模式单元两大路径,两者联动完成自动计数。

  1. 输入捕获单元(绿色 + 粉色左半部分):处理被测信号
  • GPIO:被测频率信号(比如传感器输出的方波)的输入引脚。

  • 滤波器:硬件滤除信号上的高频噪声,避免误触发捕获。

  • 边沿检测 / 极性选择:设置捕获的触发边沿,决定什么时候触发 捕获 和 复位(CNT清零)。

  • 分频器:可选 1/2/4/8 分频,比如设为 2,就会每 2 个上升沿触发一次捕获,用于测量周期更长的信号,避免计数器溢出。

  • CCR1 捕获 / 比较器 :核心寄存器,当触发捕获时,硬件自动把当前 CNT 的值复制到 CCR1,之后 CNT 被复位为 0,准备下一次计数。

  1. 时基 + 从模式单元(粉色右半部分 + 橙色模块):提供标准时钟并自动复位
  • 时基单元(PSC+CNT+ARR)

    用一个时钟源驱动它,经过PSC 预分频器变成我们需要的标准频率,ARR 自动重装载器,这里几乎用不到(因为 CNT 会被被测信号的上升沿提前复位),只需设为最大值(如 65535)防止溢出即可。

  • 触发源选择:把 "输入捕获处理后的信号(TI1FP1)" 选为从模式的触发源。

  • 从模式 Reset :从模式的一种工作模式,当检测到触发源(TI1FP1)的上升沿时,硬件自动把 CNT 复位为 0,实现 "一个被测周期,CNT 从 0 数到 N" 的自动循环。

PWMI
  • 边沿检测 / 极性选择现在输出两路滤波后的信号:

    • TI1FP1:对应上升沿,触发 CCR1 捕获和从模式复位
    • TI1FP2:对应下降沿,触发 CCR2 捕获
  • 双捕获通道(CCR1+CCR2)

    • CCR1:在上升沿触发时,锁存 CNT 值并复位计数器,记录完整周期
    • CCR2:在下降沿触发时,锁存 CNT 值,记录高电平持续时间
    • PWM占空比 = CNT2/CNT1
  • 从模式 Reset 触发源仍为TI1FP1(上升沿),确保每个周期开始时 CNT 都被复位为 0,保证计数的连续性和准确性。

三、编码器接口

基本结构

增量式编码器输出 A、B 两路正交脉冲,编码器接口通过检测两路信号的边沿顺序,自动控制(无需软件配置) CNT 的增减:

  • 当 A 相脉冲先于 B 相出现 → 判定为顺时针旋转 → CNT 自增
  • 当 B 相脉冲先于 A 相出现 → 判定为逆时针旋转 → CNT 自减
  • 若开启双边沿检测,每个 A/B 相的上升沿和下降沿都会触发一次计数,分辨率提升至 4 倍。
工作模式
实例

不反向

1. "向前(正转)"阶段
  • 当 TI1(A 相)的上升沿到来时,TI2(B 相)为低电平 → 匹配表格「低」行「TI1FP1 上升」列 → 判定为向上计数(CNT++)
  • 当 TI2(B 相)的上升沿到来时,TI1(A 相)为高电平 → 匹配表格「高」行「TI2FP2 上升」列 → 判定为向上计数(CNT++)
  • 结果:计数器持续上升,对应编码器正转。
2. "向后(反转)"阶段
  • 当 TI1(A 相)的上升沿到来时,TI2(B 相)为高电平 → 匹配表格「高」行「TI1FP1 上升」列 → 判定为向下计数(CNT--)
  • 当 TI2(B 相)的上升沿到来时,TI1(A 相)为低电平 → 匹配表格「低」行「TI2FP2 上升」列 → 判定为向下计数(CNT--)
  • 结果:计数器持续下降,对应编码器反转。
3. "毛刺"阶段
  • 图中短暂的脉冲毛刺,因为不符合正交脉冲的相位关系(TI1/TI2 的电平不匹配判定规则),所以不会触发计数器变化

当TI1(A 相)变化后的电平和 TI2(B 相)电平 相反:向上计数 相同:向下计数

当TI2(B 相)变化后的电平和 TI1(A 相)电平 相同:向上计数 相反:向下计数

TI1反向

相关推荐
2501_9181269130 分钟前
stm32核心板是什么属性?
linux·c语言·stm32·嵌入式硬件·个人开发
古译汉书1 小时前
RTOS:ISR与互斥量的关系
运维·服务器·stm32·嵌入式硬件
国科安芯7 小时前
实战验证:ASM1042S2S CANFD收发器的质子单粒子效应试验与在轨性能
网络·人工智能·单片机·嵌入式硬件·物联网·fpga开发
Zevalin爱灰灰7 小时前
基于STM32实现OTA&BootLoader 第二章——外设功能开发
stm32·单片机·物联网·嵌入式
2501_918126917 小时前
stm32能刷什么程序?
linux·stm32·单片机·嵌入式硬件·学习
国科安芯7 小时前
ASP4644S电源芯片引脚功能与参考设计输出电压计算方法
网络·单片机·嵌入式硬件·fpga开发·性能优化
国科安芯8 小时前
抗辐照MCU芯片在核工业水下探测耐辐照数字摄像机中的应用研究
网络·单片机·嵌入式硬件
VALENIAN瓦伦尼安教学设备8 小时前
品牌故事:1964年塞纳河畔ASHOOTER激光对中仪诞生的夜晚
数据库·人工智能·嵌入式硬件
Zevalin爱灰灰8 小时前
基于STM32实现OTA&BootLoader 第一章——概述
stm32·单片机·物联网·嵌入式
一路往蓝-Anbo9 小时前
第 10 章:OpenAMP 实战——构建 M33 与 Linux 的 RPMsg 消息隧道
linux·运维·服务器·驱动开发·stm32·单片机·嵌入式硬件