首页 > 代码库 > Stm32高级定时器(三)

Stm32高级定时器(三)

Stm32高级定时器(三)

 

1 互补输出和死区插入

1.1 死区:某个处于相对无效状态的时间或空间

技术分享

本来OCX信号与OCXREF时序同相同步,OCXN信号与OCXREF时序反相同步。但为了安全考虑,以OCXREF为参考基准,OCXN和OCX通道将理论上本该导通的时间点往后延时一下,即做从截止切换到导通状态的延时。

特点:

● OCx输出信号与参考信号相同,只是它的上升沿相对于参考信号的上升沿有一个延迟。

● OCxN输出信号与参考信号相反,只是它的上升沿相对于参考信号的下降沿有一个延迟。

1.2 STM32高级定时器中的死区的计算(请看底部参考文献)

计算时,先确定Tdts,然后结合你需要的死区时间选择相应的计算档位,最后确定DTG[7:0]。假设STM32f407的TIM1工作在168M,设置Tdts=1/168 us,死区设置为4us,经过估算该死区时间落在DTG[7:5]=111段。

先算得DTG[4:0]=01010B,再跟DTG[7:5]组合在一起,最后算得DTG[7:0]=11101010B,即0xEA.

需要注意的是,死区时间的计算是分段计算的,各段的时间步长和计算方式有差别,不可随便填写数据。

1.3 STM32高级定时器配置死区参数不合适时的问题

死区时间不能比嵌入死区前的互补通道的有效脉冲还宽,否则相应通道的输出呈无效状态。

当死区时间比有效电平还长时,就没有机会输出有效电平了。

技术分享

死区波形延迟大于负脉冲

技术分享

死区波形延迟大于正脉冲

2 使用刹车功能:PWM急停

通过硬件紧急终止输出

当使用刹车功能时,依据相应的控制位(TIMx_BDTR寄存器中的MOE、OSSI和OSSR位,TIMx_CR2寄存器中的OISx和OISxN位),输出使能信号和无效电平都会被修改。

刹车源既可以是刹车输入引脚又可以是一个时钟失败事件。时钟失败事件由复位时钟控制器中的时钟安全系统产生。

技术分享

上图说明,刹车信号(BREAK[MOE])触发时,输出OCx与OCxN在不同的CCxE,CCxP,OISx,CCxNE, CCxNP, OISxN位控制下的输出组合

3 单脉冲模式(OPM)

这种模式允许计数器响应一个激励,并在一个程序可控的延时之后产生一个脉宽可程序控制的脉冲。

技术分享

延时时间与脉冲宽度设置主要通过比较:定时器的计数值TIM_CNT、定时器的比较值TIM_CCRx与定时器的周期值TIM_ARR 这三个值来得出。具体如下:
比较

向上计数方式

向下计数方式

延时时间

TIM_CCRx - 0

TIM_ARR - TIM_CCRx

脉冲宽度

TIM_ARR - TIM_CCRx

TIM_CCRx - 0

4 参考文献

[1] ST MCU定时器应用中的死区控制话题

[2] stm32之通用定时器TIM

[3] STM32高级定时器死区时间设置探究

Stm32高级定时器(三)