高级定时器简介
高级定时器就是比通用定时器更高级的定时器,它的功能比通用定时器更多(加粗字体为比通用定时器多的部分)。
主要特性有:16位递增、递减、中心对齐计数器;
16位预分频器(分频系数:1~65536)可用于触发DAC、ADC;
在更新事件、触发事件、输入捕获、输出比较时,会产生中断/DMA请求4个独立通道,可用于:输入捕获、输出比较、输出PWM、单脉冲模式;
使用外部信号控制定时器且可实现多个定时器互连的同步电路支持编码器和霍尔传感器电路等;
重复计数器;
死区时间带可编程的互补输出;
断路输入,用于将定时器的输出信号置于用户可选的安全配置中
高级定时器框图
① 重复计数器
在基本定时器中,定时器发生上溢或者下溢时会产生更新事件。但有重复计数器的定时器有所不同,每当定时器发生上溢或者下溢时重复计数器的值会减一,当重复计数器的值为0时,再发生一次溢出事件才会产生定时器更新事件。如果重复计数器寄存器RCR(图上时REP它是RCR的低位)的值为N,那么更新事件会在定时器发生N+1次上溢或下溢时发生。
重复计数器的特性,在控制生成 PWM 信号时很有用。
这里解释下且再同步,当我们软件产生了软件更新后,RCR寄存器里的值会再缓冲到它的影子寄存器里(相当于重置影子寄存器),所以图中还需要4次才能触发更新事件。
② 输出比较
高级定时器的输出比较部分和通用定时器相比,多了带死区控制的互补输出功能。框图中第②部分的 TIMx_CH1N、 TIMx_CH2N 和 TIMx_CH3N 分别是定时器通道 1、通道 2 和通道 3的互补输出通道,通道 4 是没有互补输出通道的。 DTG 是死区发生器,死区时间由 DTG[7:0]位来配置。 如果不使用互补通道和死区时间控制,那么高级定时器 TIM1 和 TIM8 和通用定时器的输出比较部分使用方法基本一样,只是要注意 MOE 位得置 1 定时器才能输出。
如果使用互补通道,那么就有一定的区别了。
在互补输出图中,通过对比,可以知道这两个 PWM 刚好是反过来的, OCx的 PWM 为高电平期间,OCxN的 PWM 则是低电平,反之亦然,这就是互补输出。
再带死区控制的互补输出图中,可以发现,在OCx输出的PWM和OCxN输出的PWM再高低电平转换期间,插入了一段时间才实现互补输出,这段时间就叫做死区时间。可以通过 DTG[7:0]位配置控制死区时间的长度。
③ 断路功能
又称刹车功能,一般用于电机控制的刹车。 F1 系列有一个断路通道,断路源可以是刹车输入引脚(TIMx_BKIN),也可以是一个时钟失败事件。时钟失败事件由复位时钟控制器中的时钟安全系统产生。 系统复位后, 断路功能默认被禁止, MOE 位为低。
高级定时器相关寄存器
具体请参考 《STM32F10xxx参考手册_V10(中文版)》
高级定时器相关实验
高级定时器输出指定个数PWM实验
高级定时器输出比较模式实验
… … … …