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

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

3天内不再提示

两个IGBT为什么会出现同时导通的情况呢?

GReq_mcu168 来源:玩转单片机 作者:玩转单片机 2021-01-13 16:28 次阅读

什么是死区时间?

数据手册的参数

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

STM32中配置死区时间

什么是死区时间?

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

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

0351cc30-51b1-11eb-8b86-12bb97331649.png

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

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

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

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

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

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

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

038bcf70-51b1-11eb-8b86-12bb97331649.png

互补PWM的死区时间

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

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

数据手册的参数

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

03c54c8c-51b1-11eb-8b86-12bb97331649.png

IRF540

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

0437389c-51b1-11eb-8b86-12bb97331649.png

典型参数

:门极的开通延迟时间

:门极的关断延迟时间

:门极上升时间

:门极下降时间

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

046dab84-51b1-11eb-8b86-12bb97331649.png

IGBT

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

04c05c12-51b1-11eb-8b86-12bb97331649.png

开关属性

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

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

:最大的关断延迟时间;

:最小的开通延迟时间;

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

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

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

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

STM32中配置死区时间

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

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

04f2be0a-51b1-11eb-8b86-12bb97331649.png

TIMx_BDTR

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

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

061171fa-51b1-11eb-8b86-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)

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

0641edee-51b1-11eb-8b86-12bb97331649.jpg

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

文章出处:【微信公众号:玩转单片机】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

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

    关注

    146

    文章

    16840

    浏览量

    349724
  • IGBT
    +关注

    关注

    1261

    文章

    3737

    浏览量

    247828

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

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

收藏 人收藏

    评论

    相关推荐

    MCX射频头使用不当会出现什么情况

     德索工程师说道MCX射频头使用不当可能会出现多种情况,这些问题不仅影响设备的性能,还可能对系统整体造成损害。以下是对MCX射频头使用不当可能出现情况的详细分析:  连接不稳:如果M
    的头像 发表于 09-27 09:05 209次阅读
    MCX射频头使用不当<b class='flag-5'>会出现</b>什么<b class='flag-5'>情况</b>

    igbt通压降受哪些因素影响

    。这个参数对于整个电力电子系统的效率和性能至关重要。通压降的大小受到多种因素的影响,以下是一些主要因素的分析: IGBT的结构和设计 : 栅极氧化层厚度 :栅极氧化层的厚度会影响IGBT
    的头像 发表于 09-19 14:51 582次阅读

    uart串口和mqtt同时启用,开启蓝牙扫描就会出现wifi连接超时和mqtt心跳包收不到的情况,为什么?

    uart串口和mqtt同时启用,这时候开启蓝牙扫描就会出现wifi连接超时和mqtt心跳包收不到的情况。 也可以是我蓝牙扫描和mqtt在共存时,这时加上一uart就
    发表于 06-05 06:06

    请问ad9171的两个输出端口是否支持同时输出两个不同的频率?

    你好,关于AD9171芯片我有一问题 ,数据手册显示该芯片具有两个输出通道,芯片内部有DAC0和DAC1共两个DAC通道,那么这两个通道是否支持
    发表于 05-28 06:20

    stm32F4为什么不能同时两个usb device

    stm32F4为什么不能同时两个usb device,我的板子上有nandflash和sd卡,我想同时使用两个做u盘,在file_config如果nand和memorry card
    发表于 05-17 12:36

    示波器两个探头地线为什么不能同时接在电路上

    电路上 示波器两个探头地线不能同时接在电路上是因为电路存在接地问题。例如,如果两个地线同时连接到电路上,它们就会形成一回路。这会导致电流在
    的头像 发表于 02-26 11:31 856次阅读
    示波器<b class='flag-5'>两个</b>探头地线为什么不能<b class='flag-5'>同时</b>接在电路上

    用CCU6捕获两个波形的上升沿,当这两个波形同时出现上升沿的时候,是怎么触发中断的啊?

    CCU6只有一中断函数,我用CCU6捕获两个波形的上升沿,当这两个波形同时出现上升沿的时候,是怎么触发中断的啊?是一前一后进入中断的吗,还
    发表于 02-22 07:41

    为什么电流探头会出现无法消磁的情况?该如何解决

    为什么电流探头会出现无法消磁的情况?该如何解决? 电流探头无法消磁的情况可能是由于多种因素造成的,包括材料的性质、使用条件以及操作不当等
    的头像 发表于 01-08 17:21 627次阅读

    LT3790 MOS管同时通有信号会产生振荡的原因?

    为什么我用3790设计的电压转换器,有的板子会出现上电M3和M4同时通的现象。我量了TG2信号,发现这个信号有很大的振荡,不是方波的形式。 测试条件:输入22V,输出15V,空载。 请问这种
    发表于 01-05 07:12

    是否可以简单的将两个稳压芯片进行并联提供更大的输出电流

    如果一稳压芯片输出电流不能够满足要求,是否可以简单的将两个稳压芯片进行并联提供更大的输出电流? 下
    的头像 发表于 12-29 16:22 4049次阅读
    是否可以简单的将<b class='flag-5'>两个</b>稳压芯片进行并联提供更大的输出电流<b class='flag-5'>呢</b>?

    ADXRS453能同时检测两个方向吗?

    ADXRS453的介绍中说可以检测两个方向X或Y,但是手册中只提供了一套速率寄存器RATE0和RATE1,只能用于一方向。我的问题是ADXRS453能否同时检测两个方向的速率?如何读
    发表于 12-29 06:30

    电机负荷大是什么原因 电机负荷过大会出现什么情况 怎么处理?

    电机负荷大是什么原因 电机负荷过大会出现什么情况 电机负荷过大怎么处理 电机负荷大的原因可以分为两个方面:机械负载和电气负载。 机械负载是指电机用于驱动的机械设备所需要的功率。当机械负载过大时,电机
    的头像 发表于 12-25 11:32 3228次阅读

    stm32一定时器能同时控制两个灯以不同频率闪烁吗?

    STM32的定时器功能强大,**STM32的定时器可以同时控制两个灯以不同频率闪烁** 。
    的头像 发表于 12-13 10:43 1823次阅读

    针对两个电压不匹配兼容的问题,该如何去解决

    针对两个电压不匹配兼容的问题,该如何去解决? 电压不匹配兼容是电气工程中一常见的问题,当两个电压不匹配的设备需要进行连接时,可能会出现
    的头像 发表于 11-30 15:21 3186次阅读

    开关电源为什么会出现浪涌电流上升的情况

    开关电源为什么会出现浪涌电流上升的情况? 开关电源是一种常见的电源供应器件,其作用是将电能转换为所需的直流电或交流电,并为各种电子设备提供稳定的电源。然而,在开关电源的使用过程中,有时会出现浪涌电流
    的头像 发表于 11-16 11:06 1911次阅读