STM32学习笔记【江科协】【6-5】TIM输入捕获

ICInput Capture)输入捕获

* 四个输入捕获和输出比较通道,共用四个CCR寄存器,四个通道的引脚也是共用的,所以对于同一个定时器,输入捕获和输出比较只能使用其中一个,不能同时使用

  • 8输入捕获模式下,当通道输入引脚出现指定电平跳变时,当前CNT的值将被锁存到CCR中,可用于测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数

*与外部中断的区别是,外部中断执行的动作是向CPU申请中断,而这里电路执行的动作是,控制后续电路

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

*基本定时器没有输入捕获通道

  • 可配置为PWMI模式,同时测量频率和占空比

*也就是PWM的输入模式

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

频率测量

*STM32只能测量这种高低电平数字信号,如果需要测量一种正弦波,还需要搭建一个信号预处理电路(用运放搭建一个比较器)(并不清楚运放和比较器是什么),把正弦波转换为数字信号再输入给STM32;如果测量的信号电压非常高,那还需要考虑隔离的问题,比如用一些隔离放大器、电压互感器等元件,隔离高压端和低压端保证电路的安全

  • 测频法:在闸门时间T内,对上升沿计次,得到N,则频率

𝑓𝑥=𝑁 / 𝑇

(适合高频信号)(结果更新慢,数值相对稳定)(相当自带一个均值滤波)

  • 测周法:两个上升沿内,以标准频率fc计次,得到N ,则频率

𝑓𝑥=𝑓𝑐 / 𝑁

(周期的倒数就是频率)(适合低频信号)(更新快,数据跳变也非常快)

  • 中界频率:测频法与测周法误差相等的频率点

𝑓𝑚=𝑓𝑐 / 𝑇

(正负1误差:测频法每个周期信号不一定是完整的,可能只有半个周期,那么只能舍弃掉或者当作一个周期来看。测周法同理)(为了消除正负1的影响,要使N尽可能地大)(当有一个频率,测频法和测周法的N相同,说明误差相同,另两个方法N相等,把fx解出来,就是中界频率)(当大于中界频率,选用测频法,当小于中界频率,选用测周法)


本节输入捕获测频率,使用的方法是测周法

输入捕获的各部分电路

异或门:当三个输入引脚的任何一个有电平翻转时,输出引脚久产生一次电平翻转

*这个设计其实是为三相无刷电机服务的,无刷电机有3个霍尔传感器检测转子的位置,可以根据转子的位置换相,有了这个异或门,就可以在前三个通道接上无刷电机的霍尔传感器,然后这个定时器就作为无刷电机的接口定时器,去驱动换相电路工作

数据选择器(输入通道1的前面的那个):选择上面那个,就是三个引脚的异或值;选择下面那个,异或门就没用,4个通道各用各的引脚

输入滤波器:可以进行滤波,避免一些高频的毛刺信号误触发

边沿检测器:和外部中断那里一样,可以选择高电平触发,或者低电平触发

这里其实有两套输入滤波器和边沿检测器,第一套电路,经过滤波和极性选择,得到T1FP1(TI1 Filter Polarity 1),输入给通道1的后续电路,第二套电路,经过另一个滤波和极性选择,得到T1FP2(TI1 Filter Polarity 2),输入给下面通道2的后续电路。下面TI2的信号进来同理,得到TI2FP1和TI2FP2。其中TI2FP1输入给上面,TI2FP2输入给下面。

这里可以选择一个交叉,让CH2引脚输入给通道1,或者CH1引脚输入给通道2。选择交叉输入的目的:一,可以灵活切换后续捕获电路的输入;二,可以把一个引脚输入,同时映射到两个捕获的单元,这也是PWMI模式的经典结构(第一个捕获通道,使用上升沿触发,用来捕获周期;第二个捕获通道,使用下降沿触发,用来捕获占空比;两个通道同时对一个引脚捕获,就可以同时测量频率和占空比)

下面的通道3和通道4是同样的结构

TRC信号也可以选择作为捕获部分的输入,这样设计也是为了无刷电机的驱动

TRC信号来自这里

每来一个捕获信号,CNT(由内部的标准时钟驱动)的值就会向CCR转运一次,同时发生一个捕获事件,这个事件会在状态寄存器置标志位,同时也可以产生中断,如果需要在捕获的瞬间处理一些事情,就可以开启这个捕获中断

这也就是测周法,上升沿用于触发输入捕获,CNT用于计数计时,每来一个上升沿,取一下CNT的值,自动存在CCR里,CCR捕获的值就是计数值N,CNT的驱动时钟,就是fc

 在一次捕获后CNT清0的操作,可以用主从触发模式,来自动完成

 

*这里省略道一套一样的电路,得到TI1FP2触发信号,连通到通道2的后续电路

 fDTS是滤波器的采样时钟来源,CCMR1寄存器里的ICF位可以控制滤波器的参数(具体怎么工作,可以看看参考手册CCMR1寄存器那一节),CC1P可以选择极性,CC1S位可以对数据选择器进行选择,ICPS位可以配置这里的分频器,CC1E位控制输出使能或失能0

TI1FP1和TI1F_ED都可以通向从模式控制器

这三块就对应三个函数

TRGO用于触发外设

TRGI用于触发从模式

这个电路工作时,CCR1的值,始终保持为最新一个周期的计数值

CNT的值一般是有上限的,ARR一般设置为最大65535,那么CNT最大也只能记65535个数,如果信号频率太低,CNT计数值可能会溢出

从模式触发源选择没有TI3和TI4的信号,如果这里想使用从模式自动清零CNT,就只能使用通道1和通道2,对于通道3和通道4,就只能开启捕获中断,在中断里手动清零了,不过这样程序就会处于频繁中断的状态,比较消耗软件资源

TI1FP1设置上升沿触发,触发捕获和清零CNT,正常捕获周期

TI1FP2配置为下降沿触发,通过交叉通道,触发通道2的捕获单元

这一节对应参考手册的捕获/比较通道和输入捕获模式这两节

主从触发模式在定时器同步这一节

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值