这里我们要搞清楚输入通道和捕获通道的区别,输入通道是用来输入信号的,捕获通道是用来捕
获输入信号的通道,一个输入通道的信号可以同时输入给两个捕获通道。比如输入通道
TI1
的信
号经过滤波边沿检测器之后的
TI1FP1
和
TI1FP2
可以进入到捕获通道
IC1
和
IC2
,其实这就是我
们后面要讲的
PWM
输入捕获,只有一路输入信号(
TI1
)却占用了两个捕获通道(
IC1
和
IC2
)。
当只需要测量输入信号的脉宽时候,用一个捕获通道即可。输入通道和捕获通道的映射关系具体
由寄存器
CCMRx
的位
CCxS[1:0]
配置。
预分频器
ICx
的输出信号会经过一个预分频器,用于决定发生多少个事件时进行一次捕获。具体的由寄存
器
CCMRx
的位
ICxPSC
配置,如果希望捕获信号的每一个边沿,则不分频。
捕获寄存器
经过预分频器的信号
ICxPS
是最终被捕获的信号,当发生捕获时(第一次),计数器
CNT
的值会
被锁存到捕获寄存器
CCR
中,还会产生
CCxI
中断,相应的中断位
CCxIF
(在
SR
寄存器中)会
被置位,通过软件或者读取
CCR
中的值可以将
CCxIF
清
0
。如果发生第二次捕获(即重复捕获:
CCR
寄存器中已捕获到计数器值且
CCxIF
标志已置
1
),则捕获溢出标志位
CCxOF
(在
SR
寄存器中)会被置位,CCxOF
只能通过软件清零。
输出比较
输出比较就是通过定时器的外部引脚对外输出控制信号,有冻结、将通道
X
(
x=1,2,3,4
)设置为
匹配时输出有效电平、将通道
X
设置为匹配时输出无效电平、翻转、强制变为无效电平、强制变
为有效电平、
PWM1
和
PWM2
这八种模式,具体使用哪种模式由寄存器
CCMRx
的位
OCxM[2:0]
配置。其中
PWM
模式是输出比较中的特例,使用的也最多
比较寄存器
当计数器
CNT
的值跟比较寄存器
CCR
的值相等的时候,输出参考信号
OCxREF
的信号的极性
就会改变,其中
OCxREF=1
(高电平)称之为有效电平,
OCxREF=0
(低电平)称之为无效电平,
并且会产生比较中断
CCxI
,相应的标志位
CCxIF
(
SR
寄存器中)会置位。然后
OCxREF
再经过
一系列的控制之后就成为真正的输出信号
OCx/OCxN
死区发生器
在生成的参考波形
OCxREF
的基础上,可以插入死区时间,用于生成两路互补的输出信号
OCx
和
OCxN
,死区时间的大小具体由
BDTR
寄存器的位
DTG[7:0]
配置。死区时间的大小必须根据与
输出信号相连接的器件及其特性来调整。下面我们简单举例说明下带死区的
PWM
信号的应用,
我们以一个板桥驱动电路为例。
在这个半桥驱动电路中,
Q1
导通,
Q2
截止,此时我想让
Q1
截止
Q2
导通,肯定是要先让
Q1
截
止一段时间之后,再等一段时间才让
Q2
导通,那么这段等待的时间就称为死区时间,因为
Q1
关闭需要时间(由
MOS
管的工艺决定)。如果
Q1
关闭之后,马上打开
Q2
,那么此时一段时间
内相当于
Q1
和
Q2
都导通了,这样电路会短路。
图
带死区插入的互补输出
是针对上面的半桥驱动电路而画的带死区插入的
PWM 信号,图中的死区时间要根据
MOS
管的工艺来调节。
输入捕获一般应用在两个方面,一个方面是脉冲跳变沿时间测量,另一方面是
PWM
输入测量。
测量脉宽或者频率
测量频率
当捕获通道
TIx
上出现上升沿时,发生第一次捕获,计数器
CNT
的值会被锁存到捕获寄存器
CCR
中,而且还会进入捕获中断,在中断服务程序中记录一次捕获(可以用一个标志变量来记录),并
把捕获寄存器中的值读取到
value1
中。当出现第二次上升沿时,发生第二次捕获,计数器
CNT
的值会再次被锁存到捕获寄存器
CCR
中,并再次进入捕获中断,在捕获中断中,把捕获寄存器
的值读取到
value3
中,并清除捕获记录标志。利用
value3
和
value1
的差值我们就可以算出信号的 周期(频率)。
测量脉宽
当捕获通道
TIx
上出现上升沿时,发生第一次捕获,计数器
CNT
的值会被锁存到捕获寄存器
CCR
中,而且还会进入捕获中断,在中断服务程序中记录一次捕获(可以用一个标志变量来记录),并
把捕获寄存器中的值读取到
value1
中。然后把捕获边沿改变为下降沿捕获,目的是捕获后面的
下降沿。当下降沿到来的时候,发生第二次捕获,计数器
CNT
的值会再次被锁存到捕获寄存器
CCR
中,并再次进入捕获中断,在捕获中断中,把捕获寄存器的值读取到
value3
中,并清除捕获
记录标志。然后把捕获边沿设置为上升沿捕获。
在测量脉宽过程中需要来回的切换捕获边沿的极性,如果测量的脉宽时间比较长,定时器就会发
生溢出,溢出的时候会产生更新中断,我们可以在中断里面对溢出进行记录处理。
PWM
输入模式
测量脉宽和频率还有一个更简便的方法就是使用
PWM
输入模式,该模式是输入捕获的特例,只
文章来源:https://blog.csdn.net/weixin_46323814/article/details/135362956
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:chenni525@qq.com进行投诉反馈,一经查实,立即删除!