器件型号: TMS320F28P659DK-Q1
您好:
我写信请求您提供有关 ePWM 外设配置的支持。
在我们的应用中、我们使用四个外设来驱动两个 H 桥的两个桥臂。
在运行期间、在前半个周期中、两个桥臂的 MOSFET 必须根据调制信号进行开关、而对于其余的两个桥臂、高侧 MOSFET 的驱动信号必须保持低电平、低侧 MOSFET 的驱动信号必须保持高电平。 在后半个周期中、行为必须反转。 除此之外、我们还需要改变 PWM 周期。
在实现该行为时、我们已经看到、驱动低侧的信号上随机出现持续时间与死区相等的脉冲(请参阅随附的屏幕)。
只有当我们改变 PWM 周期时、才会出现这种行为。
为了确保低侧信号始终为高电平、高侧信号始终为低电平、在半个周期内、我们将比较器设置为与周期相同的值。
附件您还可以根据您的一个示例找到固件、我们用于重现此行为。
PWM 外设已按如下方式配置:
EPWM_setClockPrescaler(myEPWM1_BASE, EPWM_CLOCK_DIVIDER_1, EPWM_HSCLOCK_DIVIDER_1);
EPWM_setTimeBasePeriod(myEPWM1_BASE, 500);
EPWM_setTimeBaseCounter(myEPWM1_BASE, 0);
EPWM_setTimeBaseCounterMode(myEPWM1_BASE, EPWM_COUNTER_MODE_UP_DOWN);
EPWM_disablePhaseShiftLoad(myEPWM1_BASE);
EPWM_setPhaseShift(myEPWM1_BASE, 0);
EPWM_setCounterCompareValue(myEPWM1_BASE, EPWM_COUNTER_COMPARE_A, 250);
EPWM_setCounterCompareShadowLoadMode(myEPWM1_BASE, EPWM_COUNTER_COMPARE_A, EPWM_COMP_LOAD_ON_CNTR_ZERO);
EPWM_setCounterCompareValue(myEPWM1_BASE, EPWM_COUNTER_COMPARE_B, 0);
EPWM_setCounterCompareShadowLoadMode(myEPWM1_BASE, EPWM_COUNTER_COMPARE_B, EPWM_COMP_LOAD_ON_CNTR_ZERO);
EPWM_setActionQualifierAction(myEPWM1_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_LOW, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);
EPWM_setActionQualifierAction(myEPWM1_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_HIGH, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);
EPWM_setDeadBandDelayPolarity(myEPWM1_BASE, EPWM_DB_FED, EPWM_DB_POLARITY_ACTIVE_LOW);
EPWM_setDeadBandDelayMode(myEPWM1_BASE, EPWM_DB_RED, true);
EPWM_setRisingEdgeDelayCountShadowLoadMode(myEPWM1_BASE, EPWM_RED_LOAD_ON_CNTR_ZERO);
EPWM_setRisingEdgeDelayCount(myEPWM1_BASE, 20);
EPWM_setDeadBandDelayMode(myEPWM1_BASE, EPWM_DB_FED, true);
EPWM_setFallingEdgeDelayCountShadowLoadMode(myEPWM1_BASE, EPWM_FED_LOAD_ON_CNTR_ZERO);
EPWM_setFallingEdgeDelayCount(myEPWM1_BASE, 20);
EPWM_enableInterrupt(myEPWM1_BASE);
EPWM_setInterruptSource(myEPWM1_BASE, EPWM_INT_TBCTR_ZERO);
EPWM_setInterruptEventCount(myEPWM1_BASE, 3);

您是否看到过类似的行为? 您对如何配置外设来避免这种情况有何建议?
谢谢您、
Simone


