STM32——TIM定时器的输入捕获功能

一、什么是输出比较与输入捕获?

可以看到:

输出比较OC是用于输出一定频率和占空比的PWM波形,可用于电机驱动进行调速等;而输入捕获IC是用于测量PWM波形的频率以及占空比等参数;和他们的名字相反,一个是比较输出一个捕获输入。下面重点介绍输入捕获功能。

二、工作原理

下图划线部分是定时器原理图的输入捕获框图部分:

两张图搭配起来看,上图是大致的工作原理图,下图是通道1的具体输入部分

上图当中,以通道1为例:

第一部分:设置滤波器,用来对信号进行滤波,信号从TI1输入,通过滤波器,输出TIF信号,正常情况下信号没有抖动,TI1F信号等于TI1的输入信号。

ICF[3:0]用来设置输入采样频率的数字滤波器的长度如ICF=0011,会在捕获上升沿时,以fCK_INT的频率连续采样八次通道1的信号电平,若都为高电平,则说明这是一个有效的触发,就会触发捕获中断,这样就可以滤除那些高电平低于八个采样周期的脉冲信号,达到滤波的效果,如果不做滤波处理,设置为ICF=0000,只要检测到跳边沿,就会触发捕获


第二部分:设置输入捕获极性:配置边沿检测器检测上升沿还是下降沿。在TIMx捕获/比较使能寄存器(TIMx_CCER)的


第三部分:设置输入捕获映射通道:通道一信号也可以映射到通道二上,同理通道二信号也可以映射到通道一上。在TIMx捕获/比较模式寄存器

而这为什么有两条支路也是为了可以同时检测频率和占空比,也就是PWMI的T

第四部分:设置输入输出捕获分频器,就是设置检测到几次跳变后触发捕获。在TIMx捕获/比较模式寄存器(TIMx_CCMR1)的

同时要开启输入捕获1使能,在TIMx捕获/比较使能寄存器(TIMx_CCER)的

三、测量原理:

可以看到测量频率,我们需要测量时间T内有几个上升沿/下降沿

为什么信号TI1FP1进行捕获的同时还要进行触发源的选择?

原理其实很简单,GPIO传输的脉冲信号来了,检测到上升沿,经过滤波得到TI1FP1,它经过分频器进行捕获,CNT 的值转存到CCR1,也就是第一次转存,而后我们需要把CNT清零,重新开始计算,直到下一个上升沿来临,这样第二次的转存的CCR1的值也就是一个间隔的时间T,就可以计算频率,取倒数即可。

那么它是如何进行清零的操作呢?这也就是TI1FP1进行触发源选择的原因。

现在应该大致明白了TIM的输入捕获工作原理,现在来看PWMI输入模式:

PWM输入模式 该模式是输入捕获模式的一个特例,除下列区别外,操作与输入捕获模式相同:

这样就是为什么这个模式下能同时检测到频率和占空比的原因了,利用了一个引脚脉冲可以输出两个信号的,一个通道映射到另外一个通道的原理。

前面是只是通过测量一个周期T,进而得到频率,那PWMI模式测量占空比又是怎么做到的?

可以看到:信号TI1FP2经过一个分配器还可以再次进行一次捕获,这时候我们设置为下降沿进行捕获,也就是TI1FP1进行上升沿捕获的同时,TI1FP2进行下降沿捕获,这样子就能测量出一个周期内高电平所占的时间,这样利用占空比的定义就可以计算出占空比。

相关推荐
远翔调光芯片^1382879887214 分钟前
远翔升压恒流芯片FP7209X与FP7209M什么区别?做以下应用市场摄影补光灯、便携灯、智能家居(调光)市场、太阳能、车灯、洗墙灯、舞台灯必看!
科技·单片机·智能家居·能源
极客小张1 小时前
基于STM32的智能充电桩:集成RTOS、MQTT与SQLite的先进管理系统设计思路
stm32·单片机·嵌入式硬件·mqtt·sqlite·毕业设计·智能充电桩
m0_739312874 小时前
【STM32】项目实战——OV7725/OV2604摄像头颜色识别检测(开源)
stm32·单片机·嵌入式硬件
嵌入式小章4 小时前
基于STM32的实时时钟(RTC)教学
stm32·嵌入式硬件·实时音视频
TeYiToKu4 小时前
笔记整理—linux驱动开发部分(9)framebuffer驱动框架
linux·c语言·arm开发·驱动开发·笔记·嵌入式硬件·arm
基极向上的三极管5 小时前
【AD】3-4 在原理图中放置元件
嵌入式硬件
徐嵌5 小时前
STM32项目---水质水位检测
stm32·单片机·嵌入式硬件
徐嵌6 小时前
STM32项目---畜牧定位器
c语言·stm32·单片机·物联网·iot
lantiandianzi6 小时前
基于单片机的老人生活安全监测系统
单片机·嵌入式硬件·生活
东胜物联6 小时前
探寻5G工业网关市场,5G工业网关品牌解析
人工智能·嵌入式硬件·5g