你(们)好。
我将 F28379D 控制器用于我的应用、以控制两个全桥转换器。 其中、我将使用4个 ePWM。 Im 将 EPWM1保持为主站、这将 在 EPWM_SYNC_OUT_PULSE_ON_COUNTER_ZERO 时生成 SYNCOUT 事件。 我面临的问题是(仅关注 EPWM3)、当我将 EPWM3 的 TBPHS 中的相移值从0更改为1时、它丢失了一个完整周期的脉冲。 我尝试了许多不同的值、发现只有当我从0移位到其他值时才会发生。 我已经阅读过一些 E2E 论坛和 TRM、但没有为此找到合适的解决方案。 下面给出了我在 EPWM3中使用的配置、请看一下。 请向我提供解决方案、原因和 解决方法。 谢谢
EPWM3:
//
//设置 TBCLK
//
ePWM_setTimeEPWM3_BASEPeriod (EPWM3_BASE、EPWM_TIMER_TBPRD-1);
EPWM_setPhaseShift (EPWM3_BASE、0u);
EPWM_setTimeEPWM3_BASECounter (EPWM3_base、0U);
//
//设置比较值
//
EPWM_setCounterCompareValue (EPWM3_base、
epwm_counter_compare_A、
(EPWM_TIMER_TBPRD/2)-1);
EPWM_setCounterCompareValue (EPWM3_base、
epwm_counter_compare_B、
(EPWM_TIMER_TBPRD/2)-1);
//
//设置计数器模式
//
EPWM_setTimeEPWM3_BASECounterMode (EPWM3_BASE、EPWM_COUNTER_MODE_UP);
EPWM_disablePhaseShiftLoad (EPWM3_base);
EPWM_setClockPrescaler (EPWM3_BASE、
epwm_clock_divider 1、
EPWM_HSCLOCK_DIVIDER_1);
//
//设置隐藏
//
EPWM_setCounterCompareLoadLoadLoadMode (EPWM3_base、
epwm_counter_compare_A、
EPWM_COMP_LOAD_ON_CNTR_ZERO);
EPWM_setCounterCompareLoadLoadLoadMode (EPWM3_base、
epwm_counter_compare_B、
EPWM_COMP_LOAD_ON_CNTR_ZERO);
EPWM_setDeadBandControlShadowLoadMode (EPWM3_BASE、EPWM_DB_LOAD_ON_CNTR_ZERO);
//
//设置操作
//
EPWM_setActionQualifierAction (EPWM3_BASE、
ePWM_AQ_OUTPUT_A、
ePWM_AQ_OUTPUT_HIGH、
ePWM_AQ_OUTPUT_ON_TIMEEPWM3_BASE_ZERO);
EPWM_setActionQualifierAction (EPWM3_BASE、
ePWM_AQ_OUTPUT_B、
ePWM_AQ_OUTPUT_HIGH、
ePWM_AQ_OUTPUT_ON_TIMEEPWM3_BASE_ZERO);
EPWM_setActionQualifierAction (EPWM3_BASE、
ePWM_AQ_OUTPUT_A、
ePWM_AQ_OUTPUT_LOW、
ePWM_AQ_OUTPUT_ON_TIMEEPWM3_BASE_UP_CMPA);
EPWM_setActionQualifierAction (EPWM3_BASE、
ePWM_AQ_OUTPUT_B、
ePWM_AQ_OUTPUT_LOW、
ePWM_AQ_OUTPUT_ON_TIMEEPWM3_BASE_UP_CMPB);
//
// ePWM1 SYNCO 在 CTR =0时生成
//
EPWM_setSyncOutPulseMode (EPWM1_BASE、EPWM_SYNC_OUT_PULSE_ON_COUNTER_ZERO);
在这里、我附加了丢失脉冲事件。 黄色- EPWM3A、绿色- EPWM3B 均为完整信号。