程序现象,向右计数,数值增大,向左计数,数值为负,计次较小
正交编码器一般可以测量位置,或带有方向的速度值,有2个信号输出引脚,A相和B相。
当编码器的旋转轴旋转起来时,A相和B相会输出方波信号,转的越快,方波的频率就越高,频率代表速度。
当A,B相的边沿出现上升还是下降,对于另一相的状态,正传和反转相反。
每个定时器只有一个编码器接口,基本定时器没有编码器接口。
编码器输入部分
编码器的输入引脚就是定时器CH1、CH2。 CH3和CH4与编码器无关。
编码器输出部分
编码器输出部分控制CNT计数时钟,和计数方向,输出执行流程是,如出现了边沿信号,并且对应另一相的状态为正转,则控制CNT自增,否则控制CNT自减。内部72Mhz时钟和时基单元初始化设置的计数方向,并不会使用。
输入捕获前2个通道,通过GPIO接入编码器A,B相,通过滤波器和边沿检测和极性选择,产生TI1FP1,TI1FP2,通向编码器接口,编码器接口通过预分频器控制CNT计数器的时钟,同时编码器接口还根据编码器的旋转方向,控制CNT计数的方向,编码器正转时,CNT自增,编码器返转时,CNT自减。 这里ARR有效,设置为最大量程65535,利用补码的特性,很容易得到负数。
这里TI1FP1,TI1FP2就是编码器的A,B相。
总结:正转的状态都向上计数,反转的状态都向下计数。
TI1 TI2均不反相
毛刺部分,展示的是正交编码器抗噪声的原理,TI2没有变化,TI1跳变好几次(如TI1上升沿,TI2低电平,就是向上计数)
如出现一个引脚不变,另一个引脚连续跳变多次的毛刺信号,计数器就会加,减加减来回摆动,但最终计数器的值不变,并不受毛刺噪声的影响,这就是正交编码器抗噪声的原理。
TI1反相,TI23反相
TI1和TI2进来,都会经过极性选择,但是,编码器接口上升沿和下降沿都有效,可以看做成高低电平的选择。如果选择上升沿的参数,信号直通过来,高低电平不反转,如果选择下降沿的参数,信号通过非门进来,高低电平反转。
如果2个信号都不反转,就是都不反相,如把TI1高低电平反转一下,就是TI1反相。
图中,把TI1高低电平取反,才是实际编码器接口的电平。