TIM编码器接口
- Encoder Interface 编码器接口
- 编码器接口可接收增量(正交)编码器的信号,根据编码器旋转产生的正交信号脉冲,自动控制CNT自增或自减,从而指示编码器的位置、旋转方向和旋转速度
- 每个高级定时器和通用定时器都拥有1个编码器接口
- 两个输入引脚借用了输入捕获的通道1和通道2
正交编码器
定时器编码器部分
编码器有两个输入端TI1FP1和TI2FP2,分别要接到编码器的A相和B相。可以看出编码器功能借用了输入捕获通道的前两个通道CH1和CH2。
在输出端,相当于从模式控制器,来控制CNT的计数时钟和计数方向,具体计数规则可以依照正交编码器正反转判断规则,如果正转则CNT自增,如果反转则CNT自减。而在其他模式下时基单元使用的72MHz时钟频率,以及我们在时基单元初始化设置的计数方向在编码器模式下不生效,因为此时计数时钟和计数方向都由编码器托管,计数器的自增和自减,受编码器控制。
编码器接口基本结构
输入捕获的前两个通道(CH1、CH2)通过GPIO口接入编码器的A、B相,然后通过滤波器和边沿检测极性选择,产生TI1FP1和TI2FP2,通向编码器接口,编码器接口通过预分频器控制CNT计数器和时钟,同时,编码器接口还根据编码器旋转方向,控制CNT的计数方向(编码器正转,CNT自增;反之自减)
这里ARR我们一般设置为65535,即最大量程,利用补码,可以很容易得到负数。
编码器工作模式
实例(均不反相)
编码器抗噪声原理:
在毛刺部分,一个引脚信号不变,另一个引脚信号连续跳变多次,由表中计数逻辑计数器就会连续加减加减,保持计数值不变,抵抗毛刺的干扰。
实例(TI1反相)
在输入捕获模式下,TI1和TI2经过边沿检测极性选择时会选择上升沿有限还是下降沿有效,然而对于编码器接口,上升沿和下降沿均能触发其计数。所以在编码器模式下,边沿检测极性选择就不是对边沿的极性选择了,而是对高低电平的极性选择。如果我们选择上升沿的参数,则代表信号直通过来,高低电平极性不反转;如果我们选择下降沿的参数,则代表信号会通过一个非门过来,高低电平极性要进行反转。简而言之,就是TI1和TI2信号是否通过一个非门。
于是下图里TI1信号的上升沿实际上为下降沿,再根据计数逻辑判断CNT自增或自减。