首先我们需要了解,什么是“死区时间” 通常,大功率电机、变频器等,末端都是由大功率管、IGBT等元件组成的H桥或3相桥。每个桥的上半桥和下半桥是是绝对不能同时导通的,但高速的PWM驱动信号在达到功率元件的控制极时,往往会由于各种各样的原因产生延迟的效果,造成某个半桥元件在应该关断时没有关断,造成功率元件烧毁。死区就是在上半桥关断后,延迟一段时间再打开下半桥或在下半桥关断后,延迟一段时间再打开上半桥,从而避免功率元件烧毁。这段延迟时间就是死区。(就是上、下半桥的元件都是关断的)死区时间控制在通常的低端单片机所配备的PWM中是没有的。死区时间是PWM输出时,为了使H桥或半H桥的上下管不会因为开关速度问题发生同时导通而设置的一个保护时段,所以在这个时间,上下管都不会有输出。
其次,我们需要看看什么是“互补模式”
如上图,是在另一篇**N76E003 PWM之极性控制中使用P0.1和P0.3两个管脚,程序中PWM5为极性控制输出,PWM4为正常输出,占空比均设定为0.25ms,周期1ms
上图就可以看做是没有插入死区的互补模式。
上图就是带死区时间的互补模式(源自官方手册) 理解了互补模式&死区后,接下来就让我们来看看相关寄存器如何配置。
首先将PWMMOD配置为互补模式 set_PWMMOD0; clr_PWMMOD1;在该模式中PG0/2/4输出信号与独立模式下输出信号相
同,但PG1/3/5 输出与PG0/2/4输出的信号互补。 同时忽略PG1/3/5占空比寄存器{PWMnH, PWMnL}
(n:1/3/5)。
具体的死区时间设置,需要查看使用开关管的开通与关断的时间,即DT>TON+TOFF
在此例程中,我们设定为5us
(PS:补充说明,之前例程中测量的死区时间,与设计时间差距严重,之后再翻阅新唐官方例程中,发现其使用了如下函数进行较为准确的死区时间设定,故在此修改本程序,望周知)
|