通用定时器-定时器从模式&PWM输入模式
需求描述
当我们想同时测量一个pwm波的频率、周期和占空比的时候。由于要同时测量上升沿和下降沿,所以一个定时器的输出捕获通道无法实现这个功能。
因此想要完整测量pwm的所有信息,我们需要用到新的知识:定时器的从模式和PWM输入模式。
系统框图

定时器触发信号
定时器的触发信号分为两大类
触发输入信号(TRGI)
从外部或者自己的输入通道过来到本定时器的信号。
用了来控制本定时器一些动作,比如复位
这个时候本定时器就处于主从模式的从模式
触发输出信号(TRGO)
是本定时器输出到其他的定时器或其他外设的信号。
用于与其他定时器的级联(触发其他定时器的一些工作)或触发一些其他外设工作。
这个时候本定时器就是主从模式的主模式。
触发输入信号
根据参考手册从模式控制寄存器中TS[2:0]这三位的描述

触发输入信号有8个
大致可以分为4类
第一类
TS[2:0]=000-011
来源于其他定时器的TRGO信号。
经过芯片内部连接,来到本定时器的ITR0/1/2/3。
内部连接是定死的,不能更改。
比如TIM1的TRGO连接到了TIM2的ITR0
ITRx中某个信号经过信号选择器最终成为TRGI信号
TRGI信号通过从模式控制器控制本定时器实现复位或使能或更改计数方式等。
第二类
TS[2:0]=111
来源于外部触发脚ETR。
经过极性选择,边沿检测和预分频器,输入滤波器,成为TRGI信号。
TRGI信通过从模式控制器控制本定时器实现复位或使能或更改计数方式等。
第三类
TS[2:0]=100
来源于定时器自身通道1信号。
经过输入了滤波器和边沿检测器,得到TI1F_ED信号,上升沿和下降沿都会产生TI1F_ED信号。
经过信号选择器最终成为TRGI信号
第四类
TS[2:0]=101/110
来源于定时器自身通道1信号或通道2信号
经过输入滤波器和边沿检测器。
得到TI1FP1和TI2FP2信号。他们是上升沿或下降沿,只能选择一种。
最终成为TRGI信号。
后面案例中会使用第四类触发输入信号,来同时测量PWM的频率和占空比。
定时器从模式
使用前面的TRGI信号时,必须要把我们要控制的定时器配置为从模式工作模式

SMS[2:0]=000
关闭从模式,默认值
SMS[2:0]=001/010/011
编码器模式,目前还用不到,暂不讨论
SMS[2:0]=100
常用模式
复位模式。出发输入的上升沿会重新初始化计数器(让计数器重新从0开始计数)。这样就不需要手动清0计数器,也不需要去数上升沿的个数,从而可以硬件自动完成测量
SMS[2:0]=101
门控模式。TRGI上升沿启动计数器,下降沿停止计数器。
SMS[2:0]=101
触发模式。 TRGI上升沿启动计数器。但是不会停止计数器。
SMS[2:0]=111
外部时钟模式1。
PWM输入模式
该模式是输入捕获的一个特例,操作与输入捕获模式相同。
工作原理
以信号从通道一输入为例:
经过输入滤波器和边沿检测器得到两路信号:TI1FP1和TI1FP2。
这两个信号极性相反,一个得到输入的上升沿(TI1FP1),一个得到输入的下降沿(TI1FP2)。
TI1FP1得到IC1信号,在通道1,用来测量周期。
TI1FP2得到IC2信号,在通道2,用来测量高电平时间。
TI1FP1作为触发输入信号,开启从模式的复位模式。
信号图例

当上升沿到
通道一捕获
通道二捕获
从模式复位计数器
当下降沿到
通道二捕获
CCR2储存的就是高电平宽度
当上升沿到
通道一捕获
CCR1储存的就是周期
从模式会复位计数器