stm32高级定时器输入捕获

#输入捕获

##一、IC(Input Capture)

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

  • 每个高级定时器和通用定时器都有4个输入捕获统统到

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

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

从上图可以看出,四个输入捕获和输出比较共用一个CCR寄存器

###输入捕获与输出比较的区别

  • 输出比较是根据CNT和CCR的大小关系来执行输出动作 也就是根据分频系数以及自动重装载值确定输出频率

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

##二、频率测量

  • 测频法:在闸门时间内对上升沿(下降沿)进行计次,得到次数N,除以时间就是频率(适用于高频信号)实际测量的是一个闸门时间内的平均频率,其值较为平滑 blockformula_editorf_x = \dfrac{N}{T}

  • 测周法:在两个上升沿内,以标准频率fc计次,一个数时间是1/fc,记N个数,时间就是N/fc,取其倒数就是频率(适用于低频信号),由于是测一个周期,其响应速度很快,但只是测量一个周期,易受到干扰 blockformula_editorf_x = \frac{f_c}{N}

  • 中界频率:由于以上两种方法可能会出现在测量周期内计数提前停止的情况,会出现正负1的误差,在这样的情况下需要对信号本身进行判断:

  • blockformula_editorf_m = \sqrt{\frac{f_c}{T}} 当信号频率小于中界频率时,测周法明显误差更小
    当信号频率大于中界频率时,测频法明显更实用
    ##三、具体测量过程

  • 首先信号从TI1引脚进入电路,经过一个滤波器,对输入信号进行采样,连续N个信号为高电平才输出高电平,这样可以达到滤波的作用,采样频率越低,采样点越多,滤波效果越好

  • 然后通过一个边沿检测器,捕获上升沿和下降沿

  • 捕获后的信号进入到下一个数据选择器,CC1S进行数据选择,ICPS进行分频器配置,CC1E控制输出使能


本文章使用limfx的vscode插件快速发布