我们重点关注STM32的编码器接口是如何实现信号采集和倍频的。查STM32参考手册得到:
接入编码器接口的是TI1FP1和TI2FP2。
其中STM32的编码器接口在计数的时候, 并不是单纯采集某一通道信号的上升沿或下降沿,而是需要综合另一个通道信号的电平。表中“相对信号的电平”指的就是在计数的时候所参考的另一个通道信号的电平, 这些电平决定了计数器的计数方向。
下图所展示的信息对应表格中“仅在TI1处计数”。 图中包含TI1、TI2两通道的信号,以及计数器的计数方向,其中TI1比TI2 提前 1/4个周期,以TI1的信号边沿作为有效边沿。 当检测到TI1的上升沿时,TI2为低电平,此时计数器向上计数1次,下一时刻检测到TI1的下降沿时,TI2为高电平,此时计数器仍然向上计数一次,以此类推。 这样就能把TI1的上升沿和下降沿都用来计数,即实现了对原始信号的2倍频。
最后如下图所示,对应表格中“在TI1和TI2处均计数”。同理,这种采样方式可以把两个通道的上升沿和下降沿都用来计数,且计数方向一致,相当于原来仅在一个通道处计数的2倍,所以这种就能实现对原始信号的4倍频。
另外给出一个手册上较为完整的图: