STM32 TIM输入捕获

本文详细介绍了InputCapture技术,包括如何通过输入捕获测量信号参数如周期和频率,以及高级定时器和通用定时器的输入捕获功能、配合主从触发模式的应用。还涉及了频率和占空比测量方法,以及C程序中的初始化配置步骤。
摘要由CSDN通过智能技术生成

介绍

IC(Input Capture)输入捕获,用于测量信号的参数,比如周期和频率。

输入捕获模式下,当通道输入引脚出现指定电平跳变时(或者说捕获单元捕捉到外部信号的有效边沿时),当前CNT的值将被锁存到CCR中,可用于测量PWM波形的频率、占空比、脉冲间隔(类似于频率)、电平持续时间(类似于占空比)等参数。

每个高级定时器和通用定时器都拥有四个输入捕获通道

可配置为PWMI模式(PWM输入模式Input),同时测量频率和占空比

可配合主从触发模式,实现硬件全自动测量。

通用定时器和高级定时器输入捕获相同,没有区别。基本定时器没有输入捕获功能。

输入捕获演示图

周期(Periods):捕获差值(Diff)*(PSC+1)/TIMx_CLK

频率(Freq):1/Periods

当待测信号不大于定时器的一个完整的计数周期(0~ARR)时,连续两次捕获值CCRx_1和CCRx_2的捕获差值计算方法:

若CCRx_1<CCRx_2:Diff = CCRx_2 - CCRx_1;

若CCRx_1>CCRx_2:Diff = (ARR + 1 - CCRx_1) + CCRx_2.

寄存器原理图

下方通道,左边四个是输入捕获通道,右边四个是输出比较通道,八个通道共用四个CCR寄存器,另外,他们四个通道的引脚,CH1~CH4,四个通道的引脚也是共用的。因此一个CCR寄存器只能对一个通道负责,要么输入捕获,要么输出比较。

输入捕获和输出比较的对比:

输入捕获:CH1~4是输入端口 ;输出比较:CH1~4是输出端口

输入捕获:将CNT的值锁存到CCR中 ;输出比较:将CNT和CCR的值比较,根据其大小关系执行输出动作。



频率测量方法

测频法:信号频率高一些,减小误差。

测周法:信号频率低一些,一个周期时间比较长,这样定时器内部计次次数就会比较多,有助于减小误差。

输入捕获通道细化框图

CCR寄存器中的CC1P位可以选择极性;

CC1S位可以对数据选择器进行选择,ICPS可以对分频器进行配置

主从触发模式(Up主自己起的)

主模式:将寄存器内部的值映射到TRGO口,用于触发别的外设。

从模式:接收其他外设或者自身外设的信号,从而控制自身定时器的运行。

触发源选择:选择触发从模式的信号源

输入捕获基本结构(测周法)

输入捕获的GPIO口输入捕获上图的方波信号,经过滤波器和边沿检测,再选择TI1FP1为上升沿触发,之后选择直连的输入通道,分频器选择不分频(这里的分频器是对上升沿触发的信号进行分频,1分频即为每一个信号都有效,2分频为每两个信号有效一次,以此类推),当TI1FP1出现上升沿时,触发捕获和清零CNT,CNT的计数值就转运到CCR1捕获寄存器里,同时CNT置0.

当这个电路工作时,CNT计数器的值始终保持最新的计数值,即从0开始自增。

#CNT计数最大值取决于ARR的设置值,即65535

#从模式的触发源选择只有TI1FP1和TI2FP2两个信号,没有TI3和TI4信号。所以如果想要使用从模式自动清零CNT,则只能使用通道1和2,若使用通道3和4则要开启捕获中断,但中断频繁触发会消耗软件资源

C程序IC初始化配置:

输入捕获模式的初始化:
         1. RCC开启时钟,打开GPIO和TIM的时钟打开 
         2.GPIO初始化,将GPIO配置成输入模式,配置成上拉输入或者浮空输入
         3.配置时基单元,使CNT在内部时钟驱动下自增运行
         4.配置输入捕获单元(使用结构体配置),包括滤波器,极性选择,直连通道还是交叉通               道,分频器

         5.配置TRGI的触发源为TI1FP1

         6.选择Reset操作

         7.最后调用TIM_ CMD()函数开启定时器,使电路整体工作

         

PWMI基本结构

使用了两个通道同时捕获一个引脚,则可以同时测量周期和占空比

TI1FP1配置上升沿触发,触发捕获和清零CNT,CCR1得到CNT的计数值。配置TI1FP2下降沿触发,通过交叉通道,触发通道2的捕获单元。CCR2捕获的是在一个正在进行的周期内,高电平转化为电平时,CNT的计数值。这样,CCR1是一整个周期的计数值,CCR2是高电平期间的计数值。用CCR2/CCR1即可得到占空比。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值