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.

[参考译文] TMS320F28377S:CMPSS + PWM 逐周期跳闸问题。

Guru**** 2468460 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1128616/tms320f28377s-cmpss-pwm-cycle-by-cycle-trip-problem

器件型号:TMS320F28377S

您好!

我在 PWM2A 输出与 CMPIN3P 输入之间放置一个 RC 电路(1K、10nF)。 我将 PWM 周期配置为25us、将占空比配置为50%。  

我希望比较器输入大于1.65V 时 PWM 输出立即变为零、并保持为零、直到下一个周期、即使比较器电压降至1.65V 以下也是如此。 问题是、一旦比较器输入降至1.65V 以下、PWM 输出就会恢复为1、从而在 PWM 引脚上产生高频振荡。

我的以下配置中有哪些错误或缺少哪些内容?

空 initCMPSS (空)


CMPSS_enableModule (CMPSS3_base);
CMPSS_CONFIGHighComparator (CMPSS3_base、CMPSS_INSRC_DAC);


CMPSS_CONFIGDAC (CMPSS3_base、CMPSS_DACREF_VDDA | CMPSS_DACVAL_SYSCLK |
CMPSS DACSRC_Shdw);
CMPSS_setDACValueHigh (CMPSS3_base、2048);

CMPSS_CONFIGOutputsHigh (CMPSS3_base、CMPSS_TRIP_ASYNC_COMP |
CMPSS_TRIPOUT_ASYNC_COMP);

Xbar_setOutputMuxConfig (XBAR_OUTPUT3、XBAR_OUT_MUX04_CMPSS3_CTRIPOUTH);
Xbar_enableOutputMux (XBAR_OUTPUT3、XBAR_MUX04);

空 EnableTripZone (空)

ePWM_setTripZoneAction (EPWM2_base、ePWM_TZ_ACT_EVENT_DCAEVT1、ePWM_TZ_ACT_LOW);

ePWM_setTripZoneDigitalCompareEventCondition (EPWM2_base、ePWM_TZ_DC_OUTPUT _A1、ePWM_TZ_EVENT_DCXH_HIGH);

ePWM_enableDigitalCompareTripCombinationInput (EPWM2_base、ePWM_DC_Combinational_TRIPIN4、ePWM_DC_TYPE_DCAH);

ePWM_enableTripZoneSignals (EPWM2_base、ePWM_TZ_SIGNAL _CBC1);

ePWM_setDigitalCompareEventSource (EPWM2_base、ePWM_DC_MODULE_A、ePWM_DC_EVENT_1、ePWM_DC_EVENT_SOURCE、ORIG_SIG_SIGNAL);

Xbar_setEPWMMuxConfig (XBAR_TRIP4、XBAR_EPWM_MUX04_CMPSS3_CTRIPH);
Xbar_enableEPWMMUX (XBAR_TRIP4、XBAR_MUX04);

ePWM_clearTripZoneFlag (EPWM2_base、ePWM_TZ_INTERRUPT | ePWM_TZ_FLAG_OST);

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Ari、

    我注意到您指定了一个与 DCAEVT1相关的操作。  

    [引用 userid="519810" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forume/1128616/tms320f28377s-cmpss-pwm-tby-cycle-ture-trip-problem "] ePWM_setTripZoneAction (EPWM2_base、ePWM_act_low-event_tPWM_action];tPWM_tpwm_event_low_t_event_event_tZ[ePWM_tZ]

    我认为、根据您的描述、您所需要的实际上是 TZA (EPWMxA)/TZB (EPWMxB)的操作。

    ePWM_setTripZoneAction (myEPWM0_BASE、 ePWM_TZ_ACT_EVENT_TZA、 ePWM_TZ_ACT_LOW);
    为 DCAEVT1指定的操作仅在条件持续期间发生。 这就是当比较 器输入电压低于1.65V 时、PWM 输出立即恢复为1的原因。 我们的数字比较子模块培训视频提供了有关此主题的更多信息: https://training.ti.com/enhanced-pulse-width-modulator-epwm-training-c2000-mcus?context=1137766-1149551 
    此外、我看到您已经配置了 DCAEVT1、但请注意、对于 CBC、您只能使用 DCAEVT2或 DCBEVT2。
    此致、
    Marlyn
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Marilyn、非常感谢您的支持。

    我还必须:

    ePWM_setTripZoneAction (EPWM2_base、ePWM_TZ_ACT_EVENT_DCAEVT2、 ePWM_TZ_ACT_DISABLE);