PWM互补输出--死区时间计算分享-KIA MOS管
死区时间计算方式详解
配置PWM互补输出的死区时间,本质上就是在配置TIM1高级控制定时器的刹车和死区寄存器(TIMx_BDTR)中的DTG[7:0](死区发生器设置)部分。
在WB32参考手册中找到该部分:
先介绍一下公式中的各个变量代表的含义:
1)DT:死区持续时间(DT=步长值×步长时间)。
2)T-DTS:系统时钟周期时长。
例:WB32F103CBT6的系统时钟频率为72M,则T-DTS = 1/72M = 13.89ns
3)Tdtg:步长时间,等于系统时钟周期时长乘以倍数,这个值用于计算最终死区时间。
4)DTG[7 : 5] = 0xx,DTG[7 : 5] = 10x,DTG[7 : 5] = 110,DTG[7 : 5] = 111。这四个部分分别对应四种死区时间计算方式。
可以简单理解为将DTG[7 : 0]这8位分为两部分,一部分决定步长值(二进制),另一部分决定与步长时间相乘的系数。
仔细阅读死区时间计算表:
请注意:
DTG[7 : 5] = 0xx和DTG[7 : 5] = 10x中是含有x的,x部分并不参与决定步长值,但含x部分可和DTG剩余部分一起决定与步长值相乘的系数部分。
结合图11-1中公式,当DTG[7 : 5] = 10x时,其步长值(二进制)为10,步长时间Tdtg等于系统时钟周期时长的两倍,对应计算公式DT = (64 + DTG[5 : 0])×Tdtg,Tdtg = 2×T-DTS。
DTG[5 : 0]的取值范围为“00 0000(二进制)”到“11 1111(二进制)”,换算成十进制,则DTG[5 : 0]可取值范围为“0-63”。
即时钟频率72M,DTG[7 : 5] = 10x时:
最小死区时间DT=(64+0)Tdtg=64(2T-DTS)=64213.89=1778ns
最大死区时间DT=(64+63)Tdtg=127(2T-DTS)=127213.89=3528ns
死区时间结构体成员参数值计算
上述过程讲解了死区时间的计算方法,但我们在代码编写时该如何传值呢?
例如现在需要2us(2000ns)的死区时间,依据上述表格应选方式3计算:2000 = (64+DTG[5 : 0]) Tdtg = (64+x) * 2 13.89 ns
解出DTG[5 : 0]为8,换算为二进制“0b1000”。
则DTG[7 : 0]=0b10001000=0x88
联系方式:邹先生
联系电话:0755-83888366-8022
手机:18123972950
QQ:2880195519
联系地址:深圳市福田区金田路3037号金中环国际商务大厦2109
请搜微信公众号:“KIA半导体”或扫一扫下图“关注”官方微信公众号
请“关注”官方微信公众号:提供 MOS管 技术帮助
免责声明:本网站部分文章或图片来源其它出处,如有侵权,请联系删除。