【输入捕获模式测量频率】:可以直接用信号发生器(接PA6)也可以用PWM模块输出一个频率和占空比可调的波形发出信号,同时可以利用示波器验证是否正确。

【PWM输入模式(PWMI模式)同时测量频率和占空比】

【输入捕获简介】

  • 输入捕获IC(Input Capture),位于下图中红色部分,和输出比较通道共用4个CCR寄存器,故对于同一个定时器不能同时使用输入捕获和输出比较
  • 输入捕获的主要功能:当通道输入引脚出现指定电平跳变时,当前CNT的值将锁存到CCR中,可用于测量PWM波形的频率,占空比,脉冲间隔,电平持续时间等参数
  • 基本定时器没有输入捕获功能
  •  可配合主从触发模式,实现硬件全自动测量,需要测量的时候直接读取CCR寄存器

【前沿知识——频率测量】

cubemax输入捕获_引脚

  •  STM32频率只能测量数字信号,如果想要测量正弦波,那还需要搭建一个信号预处理电路(利用运放搭建一个比较器),如果电压较高则需要考虑隔离(使用隔离放大器,电压互感器等元件)
  • 测频法适合高频信号,测周法适合测量低频信号
  • 测频法更新较慢,但数值稳定,自带均值滤波,如果闸门时间内波形频率有变化,则得到的是平均频率;测周法更新较快,速度取决于待测信号的频率,数据跳变快
  • 关于频率快慢的界定,中界频率是测频法与测周法误差相等的频率点

【测周法】

cubemax输入捕获_上升沿_02

  • 四个通道引脚:参考引脚定义表可以知道引脚复用在什么位置
  • 异或门:3个引脚电平都相同为0;3个引脚中有高有低为1。
  • 输入滤波器和边沿检测器:可以分别得到TIFP1和TIFP2,可以走不同的通道进行交叉,灵活切换后续捕获电路的输入/把一个引脚的输入映射到两个捕获单元
  • 分频之后的触发信号可以触发捕获电路进行工作:一个触发信号使CNT的值向CCR转运一次,发生一个捕获事件,在状态寄存器置标志位,同时产生中断

【输入捕获通道】

cubemax输入捕获_寄存器_03

  •  滤波器的输入是CH1的引脚TI1和滤波器的采样时钟来源fDTS,输出是滤波后的信号TI1F
  • 其中,CCMR1寄存器里的ICF位可以控制滤波器的参数:以采样频率对输入信号进行采样,连续N个值为低电平,输出才是低电平
  • 滤波之后的信号通过边沿检测器,捕获上升沿或者下降沿。使用CCER寄存器中的CC1P位选择极性
  • 得到TL1FP1触发信号,通过数据选择器,进入通道1后续的捕获电路
  • 每捕获一次CNT的值并转运到CCR,都要将CNT清零一下,以便于下一次捕获。硬件电路可以在捕获之后自动完成CNT的清零工作:TI1FP1信号和TI1的边沿信号TI1F_ED都通向从模式控制器

【主从触发模式】 = 主模式+触发源选择+从模式

cubemax输入捕获_上升沿_04

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

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

触发源选择:选择从模式的触发信号源,得到TRGI

【思路梳理】

cubemax输入捕获_cubemax输入捕获_05

  1.  配置时基单元,启动定时器,计数器CNT会在预分频后的时钟驱动下不断自增。计数器CNT是测周法中用于计数计时的部分
  2. 经过预分频后的时钟频率 = 驱动计数器CNT的标准频率fc = 72M / 预分频系数
  3. 在捕获通道1的GPIO口输入方波信号,经过滤波器和边沿检测,选择TI1F1作为上升沿触发,输入选择直连的通道,分频器选择不分频
  4. 当TI1FP1出现上升沿后,CNT的当前计数值转运到CCR1里。达到触发捕获的目的。
  5. 触发源选择,选择TI1FP1作为触发信号;从模式选择复位操作。达到触发CNT清零的目的。

cubemax输入捕获_上升沿_06

  1.  将TI1FP2配置为下降沿触发,通过交叉通道,触发通道2的捕获单元。
  2. 这里并不触发CNT清零