0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何计算合理的死区时间?

GReq_mcu168 来源:玩转单片机 作者:玩转单片机 2020-12-09 16:25 次阅读

目录

什么是死区时间?

数据手册的参数

如何计算合理的死区时间?

STM32中配置死区时间

什么是死区时间?

PWM是脉冲宽度调制,在电力电子中,最常用的就是整流和逆变。这就需要用到整流桥和逆变桥。

对三相电来说,就需要三个桥臂。以两电平为例,每个桥臂上有两个电力电子器件,比如IGBT。大致如下图所示;

f9016e56-2e2a-11eb-a64d-12bb97331649.png

这两个IGBT不能同时导通,否则就会出现短路的情况,从而对系统造成损害。

那为什么会出现同时导通的情况呢?

因为开关元器件的和严格意义并不是相同的。

所以在驱动开关元器件门极的时候需要增加一段延时,确保另一个开关管完全关断之后再去打开这个开关元器件,通常存在两种情况;

上半桥关断后,延迟一段时间再打开下半桥;

下半桥关断后,延迟一段时间再打开上半桥;

这样就不会同时导通,从而避免功率元件烧毁;死区时间控制在通常的单片机所配备的PWM中都有这样的功能,下面会进一步介绍。

f94a7844-2e2a-11eb-a64d-12bb97331649.png

互补PWM的死区时间

相对于PWM来说,死区时间是在PWM输出的这个时间,上下管都不会有输出,当然会使波形输出中断,死区时间一般只占百分之几的周期。但是当PWM波本身占空比小时,空出的部分要比死区还大,所以死区会影响输出的纹波,但应该不是起到决定性作用的。

另外如果死区设置过小,但是仍然出现上下管同时导通,因为导通时间非常非常短,电流没有变得很大,不足以烧毁系统,那此时会导致开关元器件发热严重,所以选择合适的死区时间尤为重要,过大过小都不行。

数据手册的参数

这里看了一下NXP的IRF540的数据手册,栅极开关时间如下所示;

f9879940-2e2a-11eb-a64d-12bb97331649.png

IRF540

然后找到相关的,,,的相关典型参数;

f9a2bfe0-2e2a-11eb-a64d-12bb97331649.png

典型参数

:门极的开通延迟时间

:门极的关断延迟时间

:门极上升时间

:门极下降时间

下面是一个IGBT的数据手册;

IGBT

下图是IGBT的开关属性,同样可以找到,,,等参数,下面计算的时候会用到;

fa378e22-2e2a-11eb-a64d-12bb97331649.png

开关属性

如何计算合理的死区时间?

这里用表示死区时间,因为门极上升和下降时间通常比延迟时间小很多,所以这里可以不用考虑它们。则死区时间满足;

:最大的关断延迟时间;

:最小的开通延迟时间;

:最大的驱动信号传递延迟时间;

:最小的驱动信号传递延迟时间;

其中和正如上文所提到的可以元器件的数据手册中找到;和一般由驱动器厂家给出;

如果是MCU的IO驱动的话,需要考虑IO的上升时间和下降时间,另外一般会加光耦进行隔离,这里还需要考虑到光耦的开关延时。

STM32中配置死区时间

STM32的TIM高级定时器支持互补PWM波形发生,同时它支持插入死区时间和刹车的配置。

直接看参考手册里的寄存器TIMx_BDTR,这是配置刹车和死区时间的寄存器;

fa71e5cc-2e2a-11eb-a64d-12bb97331649.png

TIMx_BDTR

可以看到死区时间DT由**UTG[7:0]**决定,这里还有一个问题是是什么?在TIMx_CR1的寄存器可以得知,由TIMx_CR1寄存器的CKD决定;

如果这里配置成00,那么和内部定时器的频率相同,为8M;

faa5f0ec-2e2a-11eb-a64d-12bb97331649.png

CKD

结合代码做一下计算;系统频率为72M,下面是时基单元的配置;

#definePWM_FREQ((u16)16000)//inHz(N.b.:patterntypeiscenteraligned) #definePWM_PRSC((u8)0) #definePWM_PERIOD((u16)(CKTIM/(u32)(2*PWM_FREQ*(PWM_PRSC+1))))TIM_TimeBaseStructInit(&TIM1_TimeBaseStructure); /*TimeBaseconfiguration*/ TIM1_TimeBaseStructure.TIM_Prescaler=0x0; TIM1_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_CenterAligned1; TIM1_TimeBaseStructure.TIM_Period=PWM_PERIOD; TIM1_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV2;

PWM的频率是16K,注意这里的PWM是中央对齐模式,因此配置的时钟频率为32K;

下面时刹车和死区时间,BDTR寄存器的配置,因此这里的CK_INT为32M

#defineCKTIM((u32)72000000uL)/*Siliconrunningat72MHzResolution:1Hz*/ #defineDEADTIME_NS((u16)500)//innsec;rangeis[0...3500] #defineDEADTIME(u16)((unsignedlonglong)CKTIM/2 *(unsignedlonglong)DEADTIME_NS/1000000000uL)TIM1_BDTRInitStructure.TIM_OSSRState=TIM_OSSRState_Enable; TIM1_BDTRInitStructure.TIM_OSSIState=TIM_OSSIState_Enable; TIM1_BDTRInitStructure.TIM_LOCKLevel=TIM_LOCKLevel_1; TIM1_BDTRInitStructure.TIM_DeadTime=DEADTIME; TIM1_BDTRInitStructure.TIM_Break=TIM_Break_Disable; TIM1_BDTRInitStructure.TIM_BreakPolarity=TIM_BreakPolarity_High; TIM1_BDTRInitStructure.TIM_AutomaticOutput=TIM_AutomaticOutput_Disable;

例:若TDTS = 31ns(32MHZ),可能的死区时间为:0到3970ns,若步长时间为31ns;4000us到8us,若步长时间为62ns;8us到16us,若步长时间为250ns;16us到32us,若步长时间为500ns;

如果需要配置死区时间 1000ns,系统频率72,000,000Hz,那么需要配置寄存器的值为;

直接写成宏定义的形式;

#defineDEADTIME(u16)((unsignedlonglong)CKTIM/2 *(unsignedlonglong)DEADTIME_NS/1000000000uL)

示波器验证了一下;具体如下图所示;


责任编辑:lq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • PWM
    PWM
    +关注

    关注

    114

    文章

    4901

    浏览量

    209946
  • IGBT
    +关注

    关注

    1237

    文章

    3521

    浏览量

    243564
  • 逆变桥
    +关注

    关注

    1

    文章

    9

    浏览量

    10820

原文标题:炸机后才去注意PWM的死区时间

文章出处:【微信号:mcu168,微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    STM32高级定时器中的死区如何计算

    STM32高级定时器中的死区如何计算
    发表于 04-08 07:34

    STM32 PWM输出怎么设置死区时间时通道输出高电平?

    STM32 PWM输出怎么设置死区时间时通道输出高电平。
    发表于 03-22 07:59

    你知道变频器的正反转死区时间吗?它的停机方式有几种

    你知道变频器的正反转死区时间吗?它的停机方式有几种 变频器是一种电气设备,用于控制和调节交流电机的转速和运行方向。在使用变频器时,正反转死区时间是一个重要的参数,它影响着电机的运行效果
    的头像 发表于 02-18 13:51 604次阅读

    什么是逆变器的死区时间?其作用是什么?

    什么是逆变器的死区时间?其作用是什么? 逆变器的死区时间是指在切换开关的过程中,为了防止电流短路而加入的一段延时时间。逆变器的
    的头像 发表于 02-18 13:42 652次阅读

    PWM控制信号中的死区time对逆变器的影响

    PWM控制信号中的死区time对逆变器的影响 PWM是一种常见的电子控制技术,逆变器作为一种重要的电力电子设备,通常使用PWM控制信号来控制其输出波形。PWM控制信号中的死区时间是指在切换电路
    的头像 发表于 02-18 10:49 316次阅读

    变频器的死区是怎么形成的?变频器死区时间怎样测量

    变频器的死区是怎么形成的?变频器死区时间怎样测量  变频器的死区是由于功率半导体器件切换导致的暂时死区形成的。在变频器的工作过程中,功率半导
    的头像 发表于 02-18 10:49 546次阅读

    关于TC264死区时间的疑问求解

    各位,我配置了一版寄存器版本的CCU6初始化程序,生成6路中心沿对齐的PWM用于控制PWSM,其中包含了死区时间的配置,所使用单片机为TC264,程序能够正常输出中心对齐的PWM,但是为啥配置完成后只有通道2有死区,通道0,1没
    发表于 02-18 08:57

    pwm驱动cmos电路的反相器时需要设置死区时间吗?如何根据pmos管和nmos管的参数确定死区时间

    利用stm32f103生成互补pwm,然后控制反相器(反相器如图所示),需要考虑死区时间吗?如果需要的话,如何结合mos管的参数求得死区时间
    发表于 10-30 16:01

    开关电源为什么会有死区时间?开关电源死区时间及其影响因素分析

    开关电源为什么会有死区时间?开关电源死区时间及其影响因素分析  一、开关电源概述 开关电源作为一种高效、可靠的电源形式,已成为现代各种电子设备的重要部分。其中关键的元器件之一就是开关管
    的头像 发表于 10-24 09:58 3282次阅读

    H桥的死区时间和什么有关系?

    这个死区时间是由于什么引起的?很什么参数有关系
    发表于 10-12 08:22

    H桥的死区时间应该根据什么来设置?

    这个死区时间的设置是否有参考的标准
    发表于 10-12 07:43

    怎么测量一个H桥的死区时间

    怎么测量一个H桥的死区时间
    发表于 10-12 07:21

    R课堂 | PFC电路:死区时间理想值的考量

    关键要点 ・桥式电路中的死区时间设置与损耗和安全性有关,因此需要充分确认。 ・死区时间的理想值是不直通的最短时间。 ・由于开关器件的开关速度
    的头像 发表于 06-14 12:10 699次阅读
    R课堂 | PFC电路:<b class='flag-5'>死区</b><b class='flag-5'>时间</b>理想值的考量

    PFC电路:死区时间理想值的考量

    PFC电路:死区时间理想值的考量在本文中,我们将探讨如何估算桥式电路中理想的死区时间。电路示例电路以Power Device Solution Circuit/AC-DC PFC的一览
    发表于 06-12 14:29

    如何为UPS应用实施具有死区时间的互补PWM?

    我正在尝试为 UPS 应用实施具有死区时间的互补 PWM。 但是正如您在附加图像中发现的那样,死区时间是有效的,但没有得到与之互补的 PWM。 我附上源代码请检查并支持我解决这个问题。
    发表于 06-01 06:48