注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
hmf1235789的个人空间 https://home.eeworld.com.cn/space-uid-598095.html [收藏] [复制] [分享] [RSS]
日志

如何实现上下管pwm互锁???

已有 1475 次阅读2018-2-2 17:51

请教大家一个问题,如何实现igbt上下管的pwm互锁,防止上下管同时出现高电平而导通。要求:上管PWMA=1的时候,下管失效PWMB=0;下管PWMB=1的时候,上管失效PWMA=0。用门极或锁存电路实现,因为我最后要用Verilog来写程序。
正常情况下或者在cpld里面分频后是互补的pwm波,加上死区就可以用了。但是如果是外来pwm的情况,为了防止出现同时为高,需要做一个这样的处理。
我自己写了的如下:
[Verilog] 纯文本查看 复制代码
//pwm_up_in pwm_dw_in互锁输出
always @(posedge clk)
        if(rst)
                pwm_up <= 1'b0;
        else
                if(pwm_up_in && pwm_dw)
                        pwm_up <= 1'b0;                                                                                                        //pwm_up_in分频为pwm_up pwm_dw
                else
                        pwm_up <= pwm_up_in;
               
always @(posedge clk)
        if(rst)
                pwm_dw <= 1'b0;
        else
                if(pwm_dw_in && pwm_up)
                        pwm_dw <= 1'b0;                                                                                                        //pwm_up_in分频为pwm_up pwm_dw       
                else
                        pwm_dw <= pwm_dw_in;

这段代码出现的问题是,在复位时刻pwm_up,pwm_dw都是为0的,程序会进入全1或全0的循环当中。
我也画了这个图,不知道可不可以?


本文来自论坛,点击查看完整帖子内容。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章