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反向

相关推荐
Tronlong创龙10 小时前
SBC‑TLT153 嵌入式 Linux 应用开发,交叉编译与 GDB 调试实践(上)
嵌入式硬件·嵌入式开发·硬件开发·工业控制·工业开发板
巴渝小禹10 小时前
单片机死循环delay_us()计算方法
单片机·嵌入式硬件
Yiran_G10 小时前
LoRa串口模组和SoC模组怎么选?从MCU架构看无线通信方案设计
嵌入式硬件·物联网
HQB202611 小时前
CN6150|简芯维尔 6V/500mA 高速低噪声 CMOS‑LDO 线性稳压器
嵌入式硬件·硬件工程
科芯创展12 小时前
XZ3445 高集成升压/升降压DC-DC电源芯片技术解析
单片机·嵌入式硬件
艾芯微科技12 小时前
高充放电流锂电充放 SoC:ETA9885E10,便携储能、小移动电源 BOM 选型笔记
网络·单片机·嵌入式硬件·集成测试·51单片机
艾芯微科技13 小时前
钰泰 ETA6973PQ3Y|QFN3×3 2A 同步降压 Buck,I2C 可配置多档输出,动态调压 PMIC
网络·单片机·嵌入式硬件·fpga开发·集成测试·51单片机
Brilliantwxx13 小时前
【STM32】 通用定时器:输入捕获与输出比较详解 测脉宽、测频率
stm32·单片机·嵌入式硬件·mcu
意法半导体STM3214 小时前
【官方原创】LAT1703 STM32C5 LL Cordic例程
stm32·单片机·嵌入式硬件·stm32c5·ll cordic