【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清零(主从触发模式自动处理)。