This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F28379S的EPWM比较器触发关断,触发信号消失后,EPWM又回到高电平

我想用内部比较器的输出作为事件,进行触发EPWM6B关断。发现触发动作是正常的,但是由于我的触发信号是一个窄脉冲,触发信号降为低电平之后,EPWM6B又回到了高电平,这不是我期望的。我想要的是触发之后,本周期不再回到高电平。如下图所示:从上到下依次为CH1:EPWM6A、CH2:EPWM6B、CH4:触发信号。EPWM6A和6B是互补信号。

触发部分的代码如下(无法直接粘贴代码,请见谅):

希望大神们提供一下思路或者解决方案,多谢~

  • 可能是因为设置了互补模式之后芯片直接按照EPWMxA互斥输出了。将PWMB改成也用比较器控制呢?
  • 谢谢!您说的这个原因我之前是考虑过但是不够确定,按照您的说法基本可以确定是这个原因。我最初的想法是EPWMA和EPWMB分别用两个不同的比较器触发关断的,结果EPWMA触发关断之后是正常的,没有再置位过(图中黄色部分的CH1,图中的程序为了单独解决这个问题就没有给EPWMA设置触发关断),EPWMB触发关断后就是存在这个问题。我现在有三个想法,还不知道如何能够实现:
    1、修改死区的设置,感觉对这部分的理解不太深。最理想是能够设置A和B开启的时候均有延迟,但是不是互补的模式;
    2、对触发EPWMB的比较器进行某些配置,使其触发关断后,保证该周期内信号不会再上升;
    3、EPWMA和B设置成两个独立的模式,对EPWMB的上升沿和下降沿均采用触发的方式,EPWMB的上升沿需要EPWMA的下降沿触发,且这个时间要可调,EPWMB的下降沿用原本比较器的触发信号关断。
    但是以上三种方法目前都还没有确定的思路该如何设置,望指点,多谢!

    Best wishes,

    Joey Zhang

  • 第一,要修改一下互补模式,现在肯定是互补模式
    第二,要增加死区时间
  • 谢谢!
    我按照你的说法增加了死区时间,但发现对此没有效果;
    对于修改为非互补的模式,我把跟死区设置相关的函数都浏览尝试了一遍,但是没有实现相关设置。麻烦可以更具体一下描述?谢谢!
  • 经过调试,最终确认为死区问题,且改成非互补之后问题解决。谢谢!
  • 谢谢您。确实是互补的原因,后来加深了死区的理解后修改完成了。但是由于程序对死区的要求,需要将A和B的逻辑进行调换才能实现。
  • 好的,感谢你的反馈!