江科大笔记—TIM输入捕获

在这里插入图片描述
电平跳变是,上升沿或下降沿
锁存在CCR中,把当前CNT的值读出来,写入到CCR中。

  • 输出比较,是根据CNT和CCR大小关系来执行的输出动作
  • 输入捕获,是接受到输入信号,执行CNT锁存到CCR的动作。
    每个高级定时器和通用定时器都拥有4各输入捕获通道,且二者没有区别。基本定时器没有输入捕获的功能。
    在这里插入图片描述
  • 频率逐渐降低的方波波形,越往左频率越高,越往右频率越低,这里信号都是只有高低电平的数字信号,对于STM32测频率而言,它也是只能测量数字信号的。如果需要测量一个正弦波则需要搭建一个信号预处理电路,最简单的就是用运放搭建一个比较器,把正弦波转换为数字信号再输入给STM32就行了。
  • 如果你测量的信号电压非常高,那还要考虑隔离的问题,比如使用隔离放大器、电压互感器等元件,隔离高压端和低压端,保证电路的安全。总之,经过处理最终输入给STM32的信号是如上图的高低电平信号,高电平3.3v,低电平0v。
  • 为了测量频率,有两种方法可以选择:测频法、测周法
  • 测频法:定时器中断,并记录捕获次数;测周法:捕获中断,并记录定时器次数。
  • 测频法适用于测量高频信号,测周法适用于测量低频信号
  • 输入捕获模块采用周期法

测周法是:周期的倒数就是频率。如果我们能用定时器测量出一个周期的时间(相邻上升沿或相邻下降沿的间隔时间)取倒数即得到测量频率。

捕获信号的两个上升沿,然后测量一下两个上升沿之间持续的时间,但是实际上,并没有一个精度无穷大的秒表来测量时间,测量时间的方法,实际上也是定时器计次,我们使用一个已知的标准频率fc的计次时钟来驱动计数器,从一个上升沿开始计数器从0开始一直计到下一个上升沿停止,计一个数的时间是1/fc,计N个数时间就是N/fc也就是周期,再取倒数就得到了频率。

测频法和测周法区别

  • 根据上图可以清晰地看出,测频法在闸门时间内,最好要多出现一些上升沿,计次数量多一些有助于减小误差,测频法要求信号频率要稍微高一些,测频法的测量结果更新慢一些,测量结果是一段时间的平均值,值比较平滑,数值相对稳定;对于测周法,就要求信号频率低一些,低频信号,周期比较长,计次就会比较多,有助于减小误差,测周法的测量结果更新的快,只测量一个周期,就能出一次结果,数据跳变也非常快,所以出结果的速度取决于待测信号的频率,一般而言,待测信号都是几百hz几千hz,所以一般情况下,测周法结果更新更快,但是由于它只测量一个周期,所以结果值会受噪声的影响,波动比较大,这就是这两种方法的基本特征对比。

  • 由于测量原理的差异,一般而言,测频法的结果更新频率会比较慢,但是数值较为稳定;测周法的结果更新频率较快,数据跳变也比较灵敏。从原理上看,测频法自带一个均值滤波的功能,如果在闸门时间
    T内被测频率有变化,测频法得到的实际是这一段闸门时间内的平均频率;而测周法只测量一个周期,故其结果会受噪声的影响,波动会比较大。所以,对于测频法和测周法的一个共同点是:N越大,误差就越小。在两种方法中,计次都可能会产生正负1误差。在测频法的一个闸门时间内,并不是每一个被测信号的周期都是完整的;测周法的标准计数信号的信号也不一定是被测信号的整数倍,所以它也不一定是每一个都完整的。对于上述的两种情况,都会出现多计一个数或者少计一个数的情况,所以会产生正负1误差。

中界频率

如何在不同情况下正确选择测频法和测周法呢?所以多高算高频,多低算低频,我们有以下一个参数来考量:中界频率,测频法和测周法误差相等的频率点。由于两种方法的误差都与N的正负1误差有关,所以当两种方法计次的N相同时,两种方法的误差也就相同。消去两种方法公式中的N,将测频法和测周法的N提出来,令两个方法N相等,将fx解出来,可得:
在这里插入图片描述
T 是测频法的闸门时间,f c是测频法的标准频率。

总结: 当待测信号频率小于中界频率时,测周法误差更小,选择测周法更合适;当待测信号频率大于中界频率时,测频法误差更小,选择测频法更合适。

输入捕获电路

在这里插入图片描述
输入信号来到了输入滤波器和边沿检测器(极性选择)。输入滤波器可以对信号进行滤波,避免一些高频的毛刺信号误触发;边沿检测器就是和外部中断一样,可以选择高电平触发或者低电平触发,当出现指定的电平时,边沿检测电路就会触发后续电路执行动作。设计了两套滤波和边沿检测电路,第一套电路经过滤波和极性选择得到TI1FP1,输入给通道1的后续电路。第二套电路,经过另一个滤波和极性选择,得到TI1FP2,输入给通道2的后续电路,同理,下面TI2信号进来,也经过两套滤波和极性选择得到TI2FP1输入通道1和TI2FP2输入通道2。可以进行交叉连接,例如CH1引脚输入给通道2,CH2引脚输入给通道1,进行交叉连接的目的是两个:1.一个通道灵活切换两个引脚,可以灵活切换后续捕获电路的输入,2.两个通道同时捕获一个引脚,可以把一个引脚的输入,同时映射到两个捕获单元,这也是PWMI模式的经典结构,实现两个通道(IC)对一个引脚(CH)进行捕获,就可以同时测量频率和占空比。可以选择各自独立连接,也可以选择进行交叉连接。另外还有一个TRC信号,也可选择作为捕获部分的输入,TRC信号来源于最上面,设计也是为了无刷电机的驱动。
在这里插入图片描述

  • 然后来到了预分频器。每个通道各有一个预分频器,可以选择对前面的信号进行分频,分频之后的触发信号,就可以触发电路进行工作了,每来一个触发信号,CNT的值就会向CCR转运一次,转运的同时会发生一个捕获事件,这个事件会在状态寄存器置标志位,同时也可以产生中断,如果需要在捕获的瞬间,处理一些事情的话,就可以开启这个捕获中断,这个就是整个电路的工作流程。
  • 比如可以配置上升沿触发捕获,每来一个上升沿,CNT转运到CCR一次,又因为CNT计数器是由内部的标准时钟驱动的,所以CNT的数值可以用来记录两个上升沿之间的时间间隔(周期)再取倒数就是测周法测量的频率了,在一次捕获后将CNT清零(可以用主从触发模式来自动完成CNT清零)

输入捕获通道1

在这里插入图片描述

  1. 引脚进来,先经过一个滤波器,滤波器的输入是TI1就是CH1的引脚,输出的TI1F就是滤波后的信号
  2. FDTS是滤波器的采样时钟来源
  3. CCMR1寄存器里的ICF位可以控制滤波器的参数
  4. 滤波器的工作原理就是:以采样频率对输入信号进行采样,当连续N个值都为高电平,输出才为高电平,当连续N个值都为低电平,输出才为低电平,如果信号出现高频抖动,导致连续采样N个值不全都一样,那输出就不会变化,这样就可以达到滤波的效果。采样频率越低,采样个数N越大,滤波效果就越好。在实际应用中,如果波形噪声比较大,就可以把IC1F位参数设置大一点来过滤噪声。
  5. 滤波之后的信号通过边沿检测器。捕获上升沿或者下降沿
  6. CCER寄存器里的CC1P位可以进行极性选择
  7. 最终得到TI1FP1触发信号
  8. 通过数据选择器,进入通道1后续的捕获电路。
    在这里插入图片描述
    1.一套一样的电路得到TI1FP2触发信号,连通到通道2的后续电路,上图并没有画出来,同样,通道2有TI2FP1连通到通道1的后续,通道2也有TI2FP2连通到通道2的后续,总共有四种连接方式,然后经过数据选择器,进入后续捕获部分电路

2.CCMR寄存器的CC1S位可以对数据选择器进行选择

3.之后,CCMR寄存器的ICPS位可以配置分频器,可以选择不分频、2分频、4分频、8分频

4.CCMR寄存器的CC1E位,控制输出使能或失能。如果使能了输出,输入端产生指定边沿信号,经过层层电路,就可以最后将CNT的值转运到CCR里来,每捕获一次CNT的值,都要把CNT清0一下,以便于下一次的捕获,从模式控制器就可以在捕获之后自动完成CNT的清零工作

5.如何自动清零CNT: TI1FP1信号和TI1F_ED边沿信号,都可以通向从模式控制器,比如TI1FP1信号的上升沿触发捕获,还可以同时触发从模式,这个从模式里就有电路,可以自动完成CNT的清零。从模式自动完成CNT的清零。

主从触发模式

在这里插入图片描述
作用及如何完成硬件自动化操作

介绍:主从触发模式,即主模式、从模式和触发源选择三个功能的简称。

  • 主模式可以将定时器内部的信号映射到TRGO引脚,用于触发其他外设的操作
  • 从模式可以接收其他外设或自身外设的一些信号,用于触发自己的一些操作(定时器的运行);
  • 触发源选择,即选择从模式的触发信号源功能,也可以认为它是从模式的一部分。
  • 在从模式下,可以通过触发源选择功能选择一个信号产生TRGI信号,之后去触发从模式,从模式可以在上面列表中选择一项操作来自动执行。

主模式

在这里插入图片描述

触发源

在这里插入图片描述

从模式选择

在这里插入图片描述
在这里插入图片描述

  • 首先,配置时基单元,启动寄存器,则CNT就会在预分频之后的时钟驱动下不断自增。测周法用CNT来计数,间接实现计时的功能。经过预分频后的时钟频率,就是测周法的标准频率fc。之后,GPIO输入一个待测的方波信号,经过经过滤波器和边沿检测选择TI1FP1为上升沿触发,之后数据选择器选择直连通道,分频器选择不分频。当TI1FP1出现上升沿之后,CNT的值就会被CCR1转运捕获;同时触发源选择模块选择TI1FP1为触发信号,从模式选择复位操作,触发CNT清零(先后顺序是:先转运CNT的值到CCR,再触发从模式给CNT清零。或者是非阻塞的同时转移:CNT的值转移到CCR,同时0转移到CNT里面去,总之是先捕获,再清零)。当电路不断工作时,CCR1中的值始终是最新一个周期的计数值,即测周法的计次数
    N。所以,当我们想读取信号的频率时,只需要读取CCR1得到N,再计算fc/N就得到频率了。当不需要读取时,整个电路全自动的测量,不需要占用任何软件资源。

注意:

  • CNT的计数值是有上限的。由于ARR最大为65535,故CNT最大也只能计65535个数。如果信号频率太低,CNT的计数值可能会溢出。
  • 从模式的触发源选择中有TI1FP1和TI2FP2,但是没有TI3和TI4的信号。所以如果要使用从模式自动清零CNT,就必须使用通道1或通道2作为输入。对于通道3和通道4,就只能开启捕获中断,在中断中手动清0了(程序会处于频繁中断的状态,比较占用软件资源)。

在这里插入图片描述

PWMI模式使用两个通道同时捕获一个引脚,可以同时测量周期和占空比,相比前面输入捕获,下面多了一个TI1FP2的通道。

  • 首先TI1FP1配置上升沿触发,触发捕获和清零CNT,正常的捕获周期,再来一个TI1FP2,配置为下降沿触发,通过交叉通道去触发通道2的捕获单元(最开始上升沿CCR1捕获同时清零CNT,之后CNT一直加,然后在下降沿时刻触发CCR2捕获,这时CCR2的值就是CNT从上升沿到下降沿的计数值也就是高电平期间的计数值,CCR2捕获并不触发CNT清零,所以CNT继续加,直到下一次上升沿,CCR1捕获周期并CNT清零,这样执行之后CCR1就是一整个周期的计数值,CCR2就是高电平期间的计数值,用CCR2/CCR1就是占空比,以上就是PWMI模式使用两个通道来捕获频率和占空比的思路。另外也可以两个通道同时捕获第一个引脚的输入

  • 21
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值