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

相关推荐
搁浅小泽16 小时前
变频空调检修完整流程(通用版)
单片机·嵌入式硬件·可靠性工程师
笨笨饿1 天前
29_Z变换在工程中的实际意义
c语言·开发语言·人工智能·单片机·mcu·算法·机器人
xiangw@GZ1 天前
低功耗应用:BUCK的输入与输出环路
嵌入式硬件
张同学031 天前
220V 转 12V/5V 电源输入电路设计笔记
笔记·嵌入式硬件·硬件工程
清风6666661 天前
基于单片机的智能药物盒设计与实现
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
李永奉1 天前
杰理芯片SDK-详细讲解AC695N/AC696N芯片SDK中APP模式流程
单片机·嵌入式硬件·物联网·语音识别
笨笨饿1 天前
30_泰勒级数
c语言·stm32·嵌入式硬件·线性代数·机器学习·自动化·概率论
季鹏EthanJ1 天前
VCC上电慢导致STM32无法复位
stm32·单片机·嵌入式硬件·上电复位故障·bor
点灯小铭1 天前
基于单片机的太阳能12V蓄电池光控时控路灯智能控制器设计
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
LCG元1 天前
STM32实战:基于STM32F103的智能体重秤(HX711+OLED)
stm32·单片机·嵌入式硬件