学习笔记——STM32F103-TIM高级定时器理论知识(第二部分)

TIM高级定时器理论知识(第二部分)

大家好,由于昨晚的国旗护卫队训练和下雨,回到宿舍已经很晚了,于是就鸽了一天,还请大家见谅。

好了,言归正传,前天那一期,我给大家讲解了时钟源和控制器两个部分,今天来讲另外两个部分:时基和输入捕获。

时基单元其实也比较简单,它的流程图如下:
学习笔记——STM32F103-TIM高级定时器理论知识(第二部分)_第1张图片
它的组成部分分为四个部分:
1、16bit的预分频器PSC
2、16bit的计数器CNT
3、8bit的重复计数器RCR
4、16bit的自动重装载寄存器ARR

大家看这个流程图是不是很眼熟呢?它和我们之前看到的基本定时器框图是差不多的,唯一不同的地方在于它多了一个重复计数器。重复计数器在向上计数时,计数到ARR时不会产生更新中断,此时REP+1;而向下计数是,当ARR变为0事,REP-1。

好了,时基部分就没什么其他介绍了,接下来才是重点。

输入捕获

输入捕获可以对输入信号的上升沿,下降沿或者双边呀进行捕获,常用的有测量输入信号的脉宽和测量PWM输入信号的频率和占空比两种。

输入捕获的大概原理是:当捕获到信号的跳变沿的时候,把计数器CNT的值锁存到捕获寄存器CCR中,把前后两次捕获到的CCR寄存器中的值相减,就可以计出脉宽或频率,如果捕获的脉宽或频率,如果捕获的脉宽的时间长度超过你所捕获定时器的周期,就会发生溢出。

它的功能框图如下:
学习笔记——STM32F103-TIM高级定时器理论知识(第二部分)_第2张图片

我们在学习输入捕获的时候需要学习以下五个要点:
1、输入通道
当使用需要被测量的信号从定时器的外部引脚TIMx_CH1/2/3/4进入,通常叫TI1/2/3/4,在后面的捕获讲解中对于要被测量的信号都以TIx为标准叫法。
2、输入滤波和边沿检测
当输入的信号存在高频干扰的时候,我们需要对输入信号进行滤波,即重新采样。根据采样定律,采样的频率必须大于2倍的输入信号。比如输入信号为1M,又存在高频的信号干扰,那么此时就很有必要进行滤波,此时可以把采样频率设为2M,这样可以在保证采样到有效信号的基础上,把高于2M的高频信号过滤掉。
滤波器的配置由CRI寄存器的位CKD[1:0]和CCMR1/2的位ICxF[3:0]控制,从ICxF位的描述可知,采样频率fSAMPLE可以由fCK_INT和fDTS分频后的时钟提供,其中fCK_INT是内部时钟,fDTS是fCK_INT经过分频后的得到的频率,分频因子由CKD[1:0]决定,可以是不分频,2分频,4分频。
边沿检测器是用来设置信号在捕获的时候是什么边沿有效。可以是上升沿,下降沿,双边沿。具体的由CCER寄存器的位CCxP和CCxNP决定。
3、捕获通道
捕获通道就是IC1/2/3/4,每个捕获通道都有一个相对应的捕获寄存器CCR1/2/3/4,当发生捕获的时候,计数器CNT的值就会被锁存到捕获寄存器中。

!!!
这里要注意的是输入通道和捕获通道的区别。
输入通道是用来输入信号的,捕获通道是用来捕获输入信号的通道,一个输入信号的通道可以同时输入给两个捕获通道。比如输入通道TI1的信号经过滤波边沿检测器之后的TI1FP1和TI1FP2可以进入到捕获通道IC1,IC2。当只需要测量输入信号的脉宽的时候,用一个捕获通道即可。两者的映射关系具体有寄存器CCMRx的位CCxS[1:0]配置.
4、预分频器
(1)ICx的输出信号会经过一个预分频器,用于决定发生多少个事件时进行一次捕获
(2)具体的寄存器CCMRx的位ICxPSC配置,如果希望捕获信号的每一个边沿,则不分频。
5、捕获寄存器
经过预分频器的信号ICxPS是最终被捕获的信号,当第一次捕获发生时,计数器CNT的值会被锁存在捕获寄存器CCR中,还会产生CCxI中断,相应的中断位CCxIF(在SR寄存器中)会被置位,通过软件或者读取CCR中的值可以将CCxIF清零。如果发生第二次捕获(即重复捕获CCR寄存器已捕获到的计数器值且CCxIF标志已置1),则捕获溢出标志位CCxOF(在SR寄存器中)会被置位,CCxOF只能通过软件清零。

这就是两个部分,明天是第三部分,单讲一个输出比较,它和今天的输入捕获作用一样大,希望大家好好学习。

你可能感兴趣的:(学习笔记——STM32F103-TIM高级定时器理论知识(第二部分))