整体来讲,STM32各个系列的TIMER外设基本框架和功能是类似的,大体分高级定时器、通用定时器和基本定时器。除了基本定时器外,每个高级定时器或部分通用定时器都可以产生4对中间信号,分别是TI1FP1 与TI1FP2,TI2FP1 与TI2FP2,TI3FP3 与TI3FP4,TI4FP3 与TI4FP4,即每个输入通道可以生产1对信号。这里以STM32F103系列为例聊聊T这个 TImFPn,。
在SMT32各系列的参考手册的定时器部分,在描述高级定时器或通用定时器时都可以看到如下的一副图。图中对那4对信号被清晰地描绘了出来。
这四对信号可以统一写为:TImFPn,其中 m代表滤波和边沿检测器前的输入通道号,n代表经过滤波和边沿检测器后将要接入或者说要映射到的捕捉通道号。 比如:TI1FP1,是来自于通道TI1,经过滤波器后将接到捕捉比较通道IC1;
TI1FP1,是来自于通道TI1,经过滤波器后将接到捕捉比较通道IC1;
TI1FP2,是来自于通道TI1,经过滤波器后将接到捕捉比较通道IC2;
TI2FP1,是来自于通道TI2,经过滤波器后将接到捕捉比较通道IC1;
TI2FP2,是来自于通道TI2,经过滤波器后将接到捕捉比较通道IC2;
TI3FP3,是来自于通道TI3,经过滤波器后将接到捕捉比较通道IC3;
TI3FP4,是来自于通道TI3,经过滤波器后将接到捕捉比较通道IC4;
TI4FP3,是来自于通道TI4,经过滤波器后将接到捕捉比较通道IC3;
TI4FP4,是来自于通道TI4,经过滤波器后将接到捕捉比较通道IC4;
那每一对信号到底是什么关系呢?比如TI1FP1与TI1FP2。说实在的,这个地方参考手册里就没有个明确的表述,让人很费解。但是可以从一个地方可以推理得出来,那个地方下面会提到。其实,二者都是来自同一TI1输入通道,经过输入滤波和边沿检测器后所产生的具有相同特征的信号,然后映射到不同的输入捕捉通道,本质上还是同一路信号。
同理,TI2信号,经过滤波和边沿检测后产生了2路滤波信号,分别是TI2FP1与TI2FP2,它俩也是具有相同特征的信号,只是TI2FP1映射到捕捉通道IC1,TI2FP2映射到捕捉通道IC2.
那么对于TI3、TI4输入通道,经过滤波和边沿检测后,也分别产生两对滤波信号TI3FP3与TI3FP4,TI4FP3与TI4FP4,分别前往IC3和IC4输入捕捉通道。
STM32定时器部分,有个PWM输入模式的应用介绍。专门介绍如何利用PWM输入模式测量某一路外部输入信号的频率和占空比的话题。这里正是利用TI1FP1与TI1FP2来自于同一通道TI1且TI1FP1可以作为从模式触发源的特点来完成的。通过该实例不难理解TI1FP1与TI1FP2的实质就是一个东西。【在不做过滤和反相处理的前提下,TI1=TIF1P1=TI1FP2】
下面是利用PWM输入模式对TI1输入信号的周期和占空比进行测试的大致过程。特别注意图中红色标注的那些地方。
显然,这里的PWM输入模式正是利用2个捕捉通道针对同一信号进行的捕捉,只是分别针对上升沿和下降沿进行捕捉。
要注意的是,利用上述PWM输入模式方法对外部输入信号的频率和占空比进行测量,只限于TI1或TI2通道。因为只有TI1FP1和TI2FP2接到了从模式控制器。这点,资料上有讲得清楚,有人有时无视了这点,将待测信号接到TI3或TI4后使用上述方法自然就不灵光了。
另外,STM32的部分定时器中还集成了正交编码控制器,这个应用与TI1FP1和TI2PF2有关,换言之,要使用STM32内部正交编码功能的话,只能使用TI1和TI2两个输入通道。所以,应用时不要随便乱接。
而且,并不是只要有TI1和TI2两个输入通道的定时器就内置正交编码接口。其实不然。比方32F1系列中的TIM9和TIM12就不支持。所以设计时需要查看下相关定时器的框架图。
关于正交编码器应用,有个编码信号与计数方向对照关系表经常让人觉得看起来费劲。【注意,正交编码接口用到的信号是TI1FP1和TI2FP2。即一路来自TI1,一路来自TI2】
结合上面的关系表和计数阶梯图我们来一起看下。
假设对于来自于TI1和TI2的信号不做过滤和反相处理,TI1=TIF1P1,TI2=TI2FP2。
上面的那个编码与计数方向对照表里提到相对信号电平,其实这里TI1FP1的相对信号就是TI2,TI2FP2的相对信号就是TI1。
假设选择正交编码器要同时对TI1和TI2进行计数的模式,不做滤波和换相。
那么当TI1FP1的上升沿到来时,如果此时其相对信号TI2的电平为低,则计数器向上计数;如果此时其相对信号TI2的电平为高,则计数器向下计数。结合上面的关系表和计数阶梯图,同样可以看出,当TI1FP1的下降沿到来时,如果此时其相对信号TI2的电平为低,则计数器向下计数;如果此时其相对信号TI2的电平为高,则计数器向上计数。
那对于TI2FP2的上升沿和下降沿时刻的计数方向的判断,一样可以通过其相对信号TI1的电平结合上面的对照表得知其相应时刻的计数方向。
小结下,上面只是就STM32定时器中的TImFPn信号做些沟通或应用提醒,具体应用时还得详细研究参考手册。不可否认,STM32的定时器功能非常强大,定时器资源很多,参考手册中描述它的文字篇幅也相当大,不过有些细节地方讲得差强人意。大家在研读参考手册时,最好文字阅读结合查看图表,必要时可以结合ST官方的参考库TIMER外设应用示例代码帮助理解。