【输入捕获模式测量频率】:可以直接用信号发生器(接PA6)也可以用PWM模块输出一个频率和占空比可调的波形发出信号,同时可以利用示波器验证是否正确。
【PWM输入模式(PWMI模式)同时测量频率和占空比】
【输入捕获简介】
- 输入捕获IC(Input Capture),位于下图中红色部分,和输出比较通道共用4个CCR寄存器,故对于同一个定时器不能同时使用输入捕获和输出比较
- 输入捕获的主要功能:当通道输入引脚出现指定电平跳变时,当前CNT的值将锁存到CCR中,可用于测量PWM波形的频率,占空比,脉冲间隔,电平持续时间等参数
- 基本定时器没有输入捕获功能
- 可配合主从触发模式,实现硬件全自动测量,需要测量的时候直接读取CCR寄存器
【前沿知识——频率测量】
- STM32频率只能测量数字信号,如果想要测量正弦波,那还需要搭建一个信号预处理电路(利用运放搭建一个比较器),如果电压较高则需要考虑隔离(使用隔离放大器,电压互感器等元件)
- 测频法适合高频信号,测周法适合测量低频信号
- 测频法更新较慢,但数值稳定,自带均值滤波,如果闸门时间内波形频率有变化,则得到的是平均频率;测周法更新较快,速度取决于待测信号的频率,数据跳变快
- 关于频率快慢的界定,中界频率是测频法与测周法误差相等的频率点
【测周法】
- 四个通道引脚:参考引脚定义表可以知道引脚复用在什么位置
- 异或门:3个引脚电平都相同为0;3个引脚中有高有低为1。
- 输入滤波器和边沿检测器:可以分别得到TIFP1和TIFP2,可以走不同的通道进行交叉,灵活切换后续捕获电路的输入/把一个引脚的输入映射到两个捕获单元。
- 分频之后的触发信号可以触发捕获电路进行工作:一个触发信号使CNT的值向CCR转运一次,发生一个捕获事件,在状态寄存器置标志位,同时产生中断
【输入捕获通道】
- 滤波器的输入是CH1的引脚TI1和滤波器的采样时钟来源fDTS,输出是滤波后的信号TI1F
- 其中,CCMR1寄存器里的ICF位可以控制滤波器的参数:以采样频率对输入信号进行采样,连续N个值为低电平,输出才是低电平
- 滤波之后的信号通过边沿检测器,捕获上升沿或者下降沿。使用CCER寄存器中的CC1P位选择极性
- 得到TL1FP1触发信号,通过数据选择器,进入通道1后续的捕获电路
- 每捕获一次CNT的值并转运到CCR,都要将CNT清零一下,以便于下一次捕获。硬件电路可以在捕获之后自动完成CNT的清零工作:TI1FP1信号和TI1的边沿信号TI1F_ED都通向从模式控制器
【主从触发模式】 = 主模式+触发源选择+从模式
主模式 :将定时器内部信号映射到TRGO引脚,用于触发别的外设
从模式:接收其他外设或者自身外设的一些信号,用于控制自身定时器的运行
触发源选择:选择从模式的触发信号源,得到TRGI
【思路梳理】
- 配置时基单元,启动定时器,计数器CNT会在预分频后的时钟驱动下不断自增。计数器CNT是测周法中用于计数计时的部分
- 经过预分频后的时钟频率 = 驱动计数器CNT的标准频率fc = 72M / 预分频系数
- 在捕获通道1的GPIO口输入方波信号,经过滤波器和边沿检测,选择TI1F1作为上升沿触发,输入选择直连的通道,分频器选择不分频
- 当TI1FP1出现上升沿后,CNT的当前计数值转运到CCR1里。达到触发捕获的目的。
- 触发源选择,选择TI1FP1作为触发信号;从模式选择复位操作。达到触发CNT清零的目的。
- 将TI1FP2配置为下降沿触发,通过交叉通道,触发通道2的捕获单元。
- 这里并不触发CNT清零