TIM输入捕获

1.简介

1.IC(Input Capture):输入捕获

2.在输入捕获模式下,当通道输入引脚出现指定电平跳变时(上升沿和下降沿),当前CNT的值将被锁存(把当前CNT的值进行读取,并写入)到CCR中,用于测量PWM波形的频率、占空比、脉冲间隔、电平持续事件等参数

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

4.可以配置为PWMI模式,同时测量频率和占空比,还可以配合主从触发模式,实现硬件全自动测量

2.工作原理&边沿引脚展示

1.一旦由边沿(上升沿,下降沿),输入滤波和边沿检测电路就会检测到这个上升(下降)沿,让输入捕获电路产生动作

2.外部中断电路动作是向CPU申请中断,输入捕获执行动作是控制后续电路,当前CNT的值将被锁存到CCR中

3.输入捕获和输出比较的对比

1.输出捕获,引脚是输入端口,输出比较,引脚是输出端口

2.输出比较,是根据CNT于CCR大小关系执行输出动作,输出捕获,是接收到输入信号,执行CNT的锁存到CCR的动作

4.频率测量方法&中界频率

1.测频法:在闸门时间(通常为1秒)T内,对上升(下降)沿计次,得到N,则频率f~x=N/T(适合测量高频信号)

2.测周法:两个上升沿内,以标准频率f~c计次,得到N,则频率f~x=f~c/N(适合测量低频信号)

1.原理:定时器计次,使用一个已知的标准频率f~c的计次时钟,来驱动计数器,从一个上升沿开始计,计数器从0开始,一直计到下一个上升沿,停止

2.计一个数时间是1/f~c,计N个数,时间就是f~c/N,得到周期,周期取倒数得到频率

3.中界频率:测频法于测周法误差相等的频率点f~m=(f~c/T)**0.5,当待测信号频率从大于中界频率时,测频法误差更小,使用测频法更合适,当待测信号频率大于中界频率时,测周法误差更小,使用测周法更合适

4.测频法于测周法比较:测频法更新慢,数据较为稳定,测周法更新快,数据跳变快

5.正负1误差:在测频法和测周法测量频率是,会出现计数计到一半时间就截止的情况,只能舍弃或者把那个不完整的周期视为一个周期,若计次N数值较大,正负1对N的影响就会很小,所以,计次N越大,正负1误差对我们的影响就越小

5.代码设计

1.以对射式红外传感器计次为原型,每来一个上升(下降)沿计次+1,在使用一个定时器,定一个定时中断,在中断里,每隔一秒去一下计次值,同时清零计次为下一次做准备,这样每次读取的计次值就是频率

6.异或门

1.执行逻辑:当三个输入引脚的任何一个有电平反转时,输出引脚就产生一次电平翻转,之后通过数据选择器,到达输入捕获通道1,数据选择器如果选择上面一个,那输入捕获通道1的输入,就是3个引脚的异或值,如果选择下面一个,异或门就没有用,4个通道各用各的引脚

7.输入滤波器:对信号进行滤波,避免一些高频毛刺信号误触发

8.边沿检测器:可以选择高低电平触发,出现指定的电平时,边沿检测电路就会触发后续电路执行动作

9.两套滤波和边沿检测电路

1.第一套电路:经过滤波和极性选择,得到TI1FP1,输入给上面通道1的后续电路

2.第二套电路:经过另一个滤波和极性选择,得到TI1FP2,输入给下面通道2的后续电路

3.两个信号可以选择各走各的,也可以选择进行一个交叉

4.交叉连接的目的

1.可以灵活切换后续捕获电路的输入

2.可以把一个引脚的输入,同时映射到两个捕获单元

5.PWMI模式:第一个捕获通道使用上升沿触发,用来捕获周期,第二个通道使用下降沿触发,用来捕获占空比,两个通道同时对一个引脚进行捕获,就可以同时测量频率和占空比

6.TRC信号:可作为捕获部分的输入

7.预分频器:可以对捕获到的信号进行分频

8.捕获电路触发:信号分频之后,每来一个触发信号,CNT的值,就会向CCR转运一次,转运的同时,会发生一个捕获事件,这个事件会在状态寄存器置标志位,同时也可以产生中断,若需要在捕获瞬间处理一些事情,就可以开启这个捕获中断

9.因为CNT计数器由内部标准时钟驱动,所以CNT的数值可以用于记录两个上升沿之间的时间间隔(周期)

10.测周法设计原理

1.上升沿用于触发输入捕获,CNT用于计数计时

2.每来一个上升沿,取一下CNT的值,自动存在CCR里,CCR捕获到的值,就是计数值N

3.CNT的驱动时钟,就是f~c

4.每次捕获之后,都到将CNT清零,这样下次再捕获的时候,取出的CNT才是两个上升沿的时间间隔

5.再一次捕获后自动将CNT清零的步骤,可以使用主从触发模式,自动完成

11.输入捕获通道1

1.原理图

2.引脚介绍

1.TI1:CH1引脚

2.TI1F:滤波后的信号

3.fDTS:滤波器的采样时钟来源

4.CCMR1寄存器ICF位:可以控制滤波器的参数

5.ICF位:定义了TI1输入的采样频率及数字滤波器的长度,数字滤波器由一个时间计数器组成,它记录到N个时间后会产生一个输出的跳变,即以采样频率对输入信号进行采样,当连续N个值都为高电平,输出才为高电平,连续N个值都为低电平,输出才为低电平,当信号出现高频抖动,导致连续采样N个值不全都一样,那输出就不会变化,这样就可以达到滤波的效果,采样频率越低,采样个数N越大,滤波效果就越好

6.边沿检测器:捕获上升沿或下降沿

7.CCER寄存器的CC1P位:选择极性,最终得到TI1FP1触发信号,通过数据选择器,进入后续电路

8.CC1S位:对数据选择器进行选择

9.ICPS位:配置这里的分频器(不分频,2分频,4分频,8分频)

10.CC1E位:控制输出使能或失能,如果失能了输出,输入端产生指定边沿信号,经过层层电路,让CNT的值,转运到CCR里面来

11.自动清零CNT:TI1FP1信号的上升沿触发捕获,还可以同时触发从模式,自动完成CNT的清零

12.主从触发模式(主模式,从模式,触发源选择的统称)

1.主模式:将定时器内部信号,映射到TRGO引脚,用于触发别的外设

2.从模式:接收其他外设或自身外设的一些信号,用于控制自身定时器的运行

3.触发源选择:选择从模式的触发信号源(可视为从模式的一部分),选择指定的一个信号,得到TRGI,去触发从模式,可在下图列表中,选择一项操作再自动执行

13.输入捕获基本结构示意图

1.局限:因为只使用了一个通道,所以只能测量频率

2.代码编写流程:配置好时基单元,启动定时器,CNT就会在预分频之后的时钟驱动下,不断自增

3.CNT:再测周法中用来计数计时

4.:经过预分频的时钟频率:驱动CNT的标准频率f~c

5.GPIO口:输出像左上角的方波信号

6.触发方式:经过滤波器边沿检测,选择TI1FP1为上升沿触发,之后输入选择直连的通道,并选择分频器的分频方式,当TI1FP1出现上升沿之后,CNT的当前计数值转运到CCR1中

7.触发源选择:选中TI1FP1为触发信号,并选择从模式操作,此时TI1FP1的上升沿,也会通过上面这一路,去出发CNT清零(先捕获,再清零)

8.若想使用从模式自动清零CNT,只能用通道1和通道2

14.PWMI基本结构

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

2.TI1FP2:配置为与TI1FP1相反的边沿,通过交叉通道,去触发通道2的捕获单元,可通过CCR2/CCR1的方式求占空比

15.初始化函数编写步骤

1.RCC开启时钟,开启GPIO和TIM的时钟

2.GPIO初始化,GPIO配置成输入模式

3.配置时基单元,让CNT计数器再内部时钟的驱动下自增运行

4.配置输入捕获单元,包括滤波器、极性、直连通道和交叉通道、分频器这些参数

5.选择从模式触发源

6.选择触发之后执行的操作

7.开启定时器

16.库函数介绍

1.TIM_ICInit:初始化输入捕获单元,四个通道共用一个函数,使用哪个通道可在结构体配置,单一配置一个通道

2.TIM_PWMIConfig:初始化输入捕获单元,快速配置两个通道

3.TIM_ICStructInit:给输入捕获结构体赋予一个初始值

4.TIM_SelectInputTrigger:选择输入触发源TRGI(调用此函数可以选择从模式触发源)

5.TIM_SelectOutputTrigger:选择输出触发源TRGO(调用此函数可以选择主模式触发源)

6.TIM_SelectSlaveMode:选择从模式

7.TIM_SetIC1Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC);

TIM_SetIC2Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC);

TIM_SetIC3Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC);

TIM_SetIC4Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC);:分别单独配置1,2,3,4的分频器

8.TIM_GetCapture1(TIM_TypeDef* TIMx);

TIM_GetCapture2(TIM_TypeDef* TIMx);

TIM_GetCapture3(TIM_TypeDef* TIMx);

TIM_GetCapture4(TIM_TypeDef* TIMx);:

1.作用:分别读取4个通道的CCR

2.与TIM_SetCompare1的对比:输出比较模式下,CCR是只写的,要用SetCompare写入

输入捕获模式下,CCR只读,要用GetCapture读出

17.滤波器和分频器的区别:滤波器计次,并不会改变信号的原有频率(一般滤波器的采样频率都会远高于信号频率,所以滤波器智慧滤除高频噪声,使信号更平滑,信号频率不变),分频器对信号本身进行计次,会改变频率

相关推荐
西城微科方案开发2 小时前
西城微科蓝牙电子秤PCBA方案设计
单片机·嵌入式硬件
hongmai66688811 小时前
FH8856V310芯片详解:6M高清+0.5TOPS算力,赋能智能安防新方案
人工智能·单片机·嵌入式硬件·物联网·智能家居
三易串口屏14 小时前
串口屏是什么
单片机·嵌入式硬件
冰茶丿16 小时前
嵌入式安全第一关:Secure Boot是怎么保护你的设备的?
嵌入式硬件·安全
卖萌的斜阳16 小时前
W55MH32L-EVB 上手测评:硬件 TCP/IP 加持的以太网单片机,MicroPython 零门槛开发
单片机·网络协议·tcp/ip
Kuakewei88817 小时前
4056充电芯片:28V高耐压+电池反接保护+热调节功能
嵌入式硬件
三品吉他手会点灯17 小时前
嵌入式机器学习 - 学习笔记1.1.1 - 什么是机器学习?
c语言·人工智能·笔记·嵌入式硬件·学习·机器学习
woohuwan17 小时前
CST 匝数比和采样电阻怎么算?
单片机·嵌入式硬件
王光环19 小时前
STM32H750串口一直进IRQ问题解决
stm32·单片机·嵌入式硬件