高级定时器TIM1,TIM8
重复计数器
在基本/通用定时器计数到预设定值时,发生上溢/下溢事件时直接就产生更新事件,或者产生中断;但对于高级定时器却不是这样,高级控制定时器在硬件结构上多出了重复计数器,在定时器发生上溢或下溢事件是不断减少重复计数器的值,计数溢出一次重复计数器的值就减少一次,只有重复计数器为0时才会生成更新事件。所以说如果设定重复计数器的值为N,那只有计数溢出N+1次,才能产生更新事件,或者中断。
重复计数器的值通过寄存器TIMx_RCR来设定
通俗理解:比如用高级定时器定时1ms,设置重复计数器的值为10次,那1ms后并不会产生中断,定时器会反复计数10次,计数溢出一次,重复计数器的值就减一,等10ms后,重复计数器减为0了,才产生一次中断
作用:比如PWM输出周期为1ms,设定重复计数器的值为200,则该PWM信号就会输出200次,在这200次里改变占空比,就能输出占空比变化的PWM波
互补输出
有两路输出波形,它们成互补状态,当上面波形输出高电平时,下面波形输出低电平,当上面波形输出低电平时,下面波形就输出高电平
用途:比如有两个MOS管,一个上,一个下,工作时只有一个能导通,就可以用互补输出来控制两个MOS管,确保一个时刻只有一个管导通
互补存在的问题
还是上面那两个MOS管,如果用互补输出会存在一个问题,本来互补输出是想要两个MOS管只能有一个导通,但MOS管在实际电路中因制作工艺精度的不同,或者其他因素的影响,导致导通和截止需要一定的时间,可能会存在上面MOS管在导通的瞬间,下面的MOS管仍然处于导通状态,还没来得及截止,反过来也一样,两个MOS管在某一瞬间同时导通,电流流过MOS管,导致管烧毁
死区
为了解决互补输出存在的问题,高级定时器提供了死区功能
问题切入点就是上面MOS管在导通之前,确保下面MOS管是截止状态,如下图所示
假如高电平是导通,上面MOS管就延时一会再导通,让下面MOS管有时间截止,反过来也一样,下面MOS管高电平想导通时,延时一会让上面MOS管完全截止后再导通,这延时的时间就是死区时间
示波器输出带死区的两路互补PWM输出
刹车功能
比如电路控制电机转动,并检测电机的电流,当电机出现故障时,如果通过软件来关闭输出信号,因为软件的延时,没能及时关闭电机,可能会出现意料之外的后果,所以用高级定时器的刹车功能,将检测端接到TIMx_BKIN,当出现不稳定状态时,用硬件电路及时关闭信号输出,停止电机转动
所以这刹车功能是一个硬件保护功能