stm32TIM输入捕获

目录

1.频率测量

2.输入捕获结构

3.输入捕获模式测频率(测周法)

  • ICInput Capture)输入捕获
  • 输入捕获模式下,当通道输入引脚出现指定电平跳变时,当前CNT的值将被锁存到CCR中,可用于测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数
  • 每个高级定时器和通用定时器都拥有4个输入捕获通道
  • 可配置为PWMI模式,同时测量频率和占空比
  • 可配合主从触发模式,实现硬件全自动测量

       四个输入捕获和输出比较模块共用4个CCR寄存器,输入捕获的4个输入引脚和输出比较的4个输出引脚相同。

1.频率测量

       频率的定义是1s内出现了多少个周期。测频法适用于高频情况,在闸门时间T内,计次N越大,测得频率越准确。测周法适用于低频情况,以标准频率f_{c}计次,计次N越大,测得频率越准确。高频和低频可以通过中界频率来划分,两种方法的N相同说明误差相同,此时求得的频率为中界频率。

2.输入捕获结构

       输入信号经过输入滤波器和边沿检测器,输入滤波器可以滤除高频毛刺防止误触发,边沿检测器可以选择高电平触发,或者低电平触发,当出现指定电平时,边沿检测电路会触发后续电路执行动作。其实里面有两套输入滤波器和边沿检测器,分别经过滤波和极性选择得到输出信号TI1FP1和TI1FP2,分别通往通道1和通道2的后续电路。

       TI1和TI2信号进来,可以选择各走各的或者交叉连接。为什么要交叉连接呢?一是可以灵活切换后续捕获电路的输入,一会想选CH1作为输入,一会想选CH2作为输入,这样就可以通过数据选择器,灵活选择输入。二是可以把一个引脚的输入,同时映射到两个捕获单元,这也是PWMI模式的经典结构。

       第一个通道可使用上升沿触发,捕获频率,第二个通道可使用下降沿触发,捕获占空比。两个通道同时对一个引脚进行捕获,就能同时测量频率和占空比了,这就是PWMI模式。

       预分频器可以对输入信号进行分频,分频后的触发信号就可以触发捕获电路工作了。每来一个信号,CNT的值(CNT的数值可以用来记录两个上升沿之间的时间间隔),就会向CCR转运一次。转运的同时,会发生一个捕获事件,这个事件会在状态寄存器置标志位,同时也可产生中断。如果想在捕获瞬间处理一些事情的话,就可以开启捕获中断。

       使用输入捕获测频率时,每次捕获后,要把CNT清0,这样上升沿再捕获时,取出的CNT才是两个上升沿的时间间隔。捕获后清0的操作可以通过主从触发模式,自动完成。

       ICF[3:0]定义了TI1输入的采样频率和数字滤波长度。滤波原理是以采样频率对信号采样,当连续N个值都为高电平,输出才为高电平。CC1P可用来选择极性。

       主模式可以将定时器内部的信号,映射到TRGO引脚 ,用于触发别的引脚。从模式是接收其他外设或者自身外设的一些信号,用于控制自身定时器的运行。触发源选择,选择指定的一个信号,得到TRGI,TRGI去触发从模式。例如对CNT清0,触发源选择TI1FP1,从模式执行Reset。

       例如定时器的级联,可以选择一个定时器主模式输出更新信号到TRGO,另一个定时器选择上一个定时器触发从模式,从模式选择执行外部时钟模式1的操作。

      TI1FP1上升沿触发,正常的捕获周期,TI1FP2配置为下降沿触发,通过交叉通道,去触发通道2的捕获单元。 整个工作情况:首先上升沿,CCR1捕获,同时清零CNT,CNT++,然后,在下降沿这个时刻,触发CCR2捕获,此时CCR2的值就是CNT在高电平时的计数值,知道下一次上升沿,CCR1捕获周期,CNT清零。CCR2/CCR1就得到占空比。

3.输入捕获模式测频率(测周法)

       先用PWM模块,在PA0端口输出一个频率和占空比可调的波形,测量波形的输入口是PA6。使用杜邦线将PA6与PA0连接,可实现测量自己PWM模块产生波形的频率。为了便捷调节生成波形的频率,用函数来调节频率,由于改变ARR,频率和占空比都会变,所以选择改变PSC的值(TIM_PrescaleConfig())。

       输入捕获初始化:

第一步,RCC开启时钟,把GPIO和TIM的时钟打开。

第二步,GPIO初始化,把GPIO配置成输入模式,上拉输入或者浮空输入。

第三步,配置时基单元,让CNT计数器在内部时钟驱动下自增运行。

第四步,配置输入捕获单元,包括滤波器、极性、直连通道还是交叉通道、分频器这些参数。

第五步,选择从模式的触发源。

第六步,选择出发之后执行的操作。

第七步,开启定时器。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值