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

大家好,我终于恢复更新了,今天给大家讲解的是高级定时器理论知识的最后一部分

输出比较

输出比较就是通过定时器的外部引脚输出控制信号,有冻结、将通道X(X=1,2,3,4)设置为匹配时输出有效电平、将通道X设置为匹配时输出无效电平、翻转、强制变为无效电平、PWM1和PWM2这八种模式,具体使用哪种模式由寄存器CCMRx[2:0]配置。其中PWM模式是输出比较中的特例,使用的也最多。

这是输出比较的功能框图:
在这里插入图片描述

这个功能框图一共有四个部分组成,我们来一起看看它们分别有什么作用。

1、输出比较寄存器
当计数器CNT的值跟比较寄存器CCR的值相等的时候,输出参考信号OCxREF的信号的极性就会发生改变,其中OCxREF=1称之为有效电平,OCxREF=0称之为无效电平,并会产生比较中断CCx1,相应的标志位CCxIF会置位。然后OCxREF再经过一系列的控制之后就会成为真正的输出信号OCx/OCxN。

2、死区发生器
在生成的参考波形OCxREF的基础上,可以插入死区时间,用于生成两路互补的输出信号OCx和OCxN,死区时间的大小具体由BDTR寄存器的位ETG[7:0]配置。死区时间的大小必须与输出信号相连接的器件及其特性来调整。

3、输出控制

输出控制的功能框图如下表示:
在这里插入图片描述
在输出比较的输出控制中,参考信号OCxREF在经过死区发生器之后会产生两路带死区的互补性好,这两路带死区的互补性好然后就进入输出控制电路,如果没有加入死区控制,那么进图输出控制电路的信号就直接是OCxREF。
进入输出控制电路的信号会被分成两路,一路是原始信号,一路是被反向的信号,具体的由寄存器CCER的位CCxP和CCxNP控制。经过极性选择的信号是否有OCx引脚输出到外部引脚CHx/CHxN则由寄存器的位CCER的位CxE/CxNE配置。
如果加入了断路功能,则断路和死区寄存器BDTR的MOE/OSSI和OSSR这三个位会共同影响输出的信号。

4、输出引脚
输出比较的输出信号最终是通过定时器的外部IO来输出的,分别为CH1/2/3/4,其中前面三个通道还有互补的输出通道CH1/2/3N,更加详细的IO说明还请查阅相关数据手册。

那么输入捕获的应用有哪些呢?

首先我们看到这张图:
在这里插入图片描述
这张图是测量脉宽和频率的示意图

第一次捕获,让CNT在中断里清零,捕获到寄存器再把边沿配置成下降沿;当捕获到value2不为0时,就可以开始计算宽度了。如果不改变边沿配置,那么第二次捕获到的依旧是上升沿,此时可以得到的就是一个周期的值。

我们再来看一张图:

在这里插入图片描述

这张图是PWM的输入模式。它分为直连和非直连两种。而且只能由通道一、二来捕获。

在直连的情况的下,从TI1进入,由TI1FP1来触发,连到IC1,对应周期;由硬件自动捕获,走TI1FP2路吗,连接到IC2,对应的数据是脉宽。

在非直连的情况下,选择TI1FP2为触发信号,周期由IC2来捕获;选择TI1FP1连接到IC1,捕获占空比,即脉宽。

那么输出比较的应用有哪些呢?

输出比较的应用比较简单:
1、输出比较模式总共有8中,常用的是PWM模式。
2、由寄存器CCMRx的位OCxM[2:0]配置。

接下来我来简单介绍一下PWM输出模式:
PWM输出就是对外输出脉宽可调的方波信号,信号频率由自动自动重装载寄存器ARR的值决定,占空比由比较寄存器CCR的值决定。

那么我们在前文提到的PWM1和PWM2有什么区别那?具体区别如下图:
在这里插入图片描述
P.S. 高电平有效,低电平无效。

讲到这里,关于TIM高级定时器理论知识就全部给大家讲解完毕了,相信大家对高级定时器也有了一个初步的了解。接下来我们就要开始实操的讲解了,希望各位好好消化,谢谢

猜你喜欢

转载自blog.csdn.net/weixin_41679822/article/details/100676065