STM32 HAL无刷电机驱动高级定时器互补输出与刹车功能详解
对于驱动bldc需要定时器死区时间控制的解释:
在bldc驱动中,我们需要注意死区时间设定,在H_PWM – L_PWM方式下驱动,需要注意mos管的延时特性,死区设定是防止半桥上下MOS同时导通,造成MOS烧坏,如下图1,因为MOS导通和关断是有时间限制的,虽然MCU输出的互补信号在高低电平上没有重叠,但是由于中间电路的延时和MOS本身特性导致最后驱动MOS的信号有开关重叠,如下图2。
一般来说,死区时间为200ns-2us,不能再大,有些电机应用中对这个要求更高,那要用死区补偿来优化。
图一
图二
MOSFET的电气特性(动态特性tr/ton/tf/toff)
IRFS3607PBF的相关电气特性:
- td (on): 导通延迟时间
指从栅极-源极电压升高超过VGS的10%,到漏极-源极电压达到VDS的90%的时间。 - tr:上升时间
指漏极-源极电压从VDS的90%降至10%的所需时间。 - ton:导通时间
导通时间等于td (on)+ tr。 - td (off):关断延迟时间
指从栅极-源极电压降至VGS的90%以下,到漏源电压达到VDS的10%的时间。 - tf:下降时间
指漏极-源极电压从VDS的10%升至90%的用时。 - toff:关断时间
关断时间等于td(off)+ tf。
定时器pwm中心对齐模式与死区控制示意图
死区时间计算:
例如f407 168M主频,ckd配置为00,则Tck_int = 1/168M,DTG位设置为120,即0111 1000,高三位为011,即DT=120 * 1/168M。
对于这里这两个分频很多人会弄混,我来说明一下,psc影响到的是计数单元的时钟频率,而ckd影响的是内部的滤波器与死区时间的时钟分频,这里ckd是对内部时钟进行的分频。
F4XX参考手册366页
定时器刹车功能:
F4XX表73:
关于hal配置刹车模式与相关快刹、慢刹的理解:
STM32 TIM PWM高阶操作:刹车及状态约束_pwm刹车功能-CSDN博客
定时器刹车功能与直接对ccr寄存器置0或关闭pwm输出的区别(实际是快刹与慢刹的区别):
在STM32微控制器中,定时器的刹车功能(Brake function)和直接对CCR寄存器置0(Counting Control Register)在实现停止定时器计数的效果上是相似的,但它们在行为和应用场景上存在一些差异:
-
定时器刹车功能:
- 刹车功能通常与定时器的PWM输出功能相关,用于在特定条件下(如错误检测或紧急情况)快速关闭PWM输出。
- 刹车功能可能会立即将CCR寄存器的值设置为与ARR(Auto-reload Register)相同,从而快速降低输出到0%占空比,停止PWM波形。
- 刹车功能可能涉及到硬件电路,如刹车引脚,用于外部控制或检测刹车信号。
- 刹车功能可能会触发一个刹车事件的中断,以便软件可以响应刹车事件。
-
直接对CCR寄存器置0:
- 直接对CCR寄存器置0是一个简单的软件操作,用于停止定时器计数。
- 这种方法只是简单地将CCR寄存器的值设置为0,不会影响定时器的其他设置或状态。
- 这种方法不会引起任何刹车中断,也不会触发特定的刹车事件。
- 直接对CCR寄存器置0的操作不会影响定时器的计数器(CNT),如果稍后重新开始计数,计数器将从当前值继续。
刹车功能的特点:
直接对CCR寄存器置0的特点:
总的来说,刹车功能提供了一种快速、可靠的方法来紧急停止电机或其他负载,而直接对CCR寄存器置0则是一种更通用的方法来停止定时器计数。在设计系统时,应根据具体需求选择合适的方法。
作者:拿破仑43