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.

[参考译文] TMS320F280025C:需要在发生跳闸事件时进行"同步"PWM (重置时基计数器)

Guru**** 2429800 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1158064/tms320f280025c-need-to-sync-pwm-reset-time-base-counter-on-trip-event

器件型号:TMS320F280025C
Thread 中讨论的其他器件:SysConfig

这是 SysConfig 附带的一些代码。  

我让 PWM 使用 CMPSS2进行逐周期限制。 这一切都是令人震惊的。  

我有跳闸5信号进入 CLB。 在 CMPSS2信号进入后10微秒内使用状态和计数器生成脉冲。 该脉冲路由到 trip8、后者路由到 PWM3数字比较模块。 根据我看到的情况、设置应该允许跳闸8生成一个将复位 TIEM 基址计数器的"SYNC"信号。  

它不是。 我不明白为什么。 我尝试使用 EVTA1和 EVTB1作为源。 满足我的需求

想法?

ePWM_setClockPrescaler (EPWM3_Dina_base、ePWM_CLOCK 分频器_2、ePWM_HSCLOCK_DIVIDER_1);
ePWM_setTimeBasePeriod (EPWM3_Dina_base、2500);
ePWM_setTimeBaseCounter (EPWM3_Dina_base、0);
ePWM_setTimeBaseCounterMode (EPWM3_Dina_base、ePWM_COUNTER_MODE_UP);
ePWM_DisablePhaseShiftLoad (EPWM3_Dina_base);
ePWM_setPhaseShift (EPWM3_Dina_base、0);
ePWM_setSyncInPulseSource (EPWM3_Dina_base、ePWM_SYNC_IN_PULSE_SRC_SYNCOUT_EPWM3);


ePWM_enableSyncOutPulseSource (EPWM3_Dina_base、ePWM_SYNC_OUT_PULSE_ON_DCA_EVT1_SYNC);
ePWM_forceSyncPulse (EPWM3_Dina_base);

ePWM_setCounterCompareValue (EPWM3_Dina_base、ePWM_COUNTER_COMPARE_A、0);
ePWM_setCounterCompareShadowImage LoadMode (EPWM3_Dina_base、ePWM_COUNTER_COMPARE_A、ePWM_COMP_LOAD_ON_CNTR_ZERO);
ePWM_setCounterCompareValue (EPWM3_Dina_base、ePWM_COUNTER_COMPARE_B、0);
ePWM_setCounterCompareShadowImage LoadMode (EPWM3_Dina_base、ePWM_COUNTER_COMPARE_B、ePWM_COMP_LOAD_ON_CNTR_ZERO);
ePWM_DisableCounterCompareShadowImage LoadMode (EPWM3_Dina_base、ePWM_COUNTER_COMPARE_C);
ePWM_DisableCounterCompareShadowImage LoadMode (EPWM3_Dina_base、ePWM_COUNTER_COMPARE_D);
ePWM_setActionQualifierAction (EPWM3_Dina_base、ePWM_AQ_output_A、ePWM_AQ_output_high、ePWM_AQ_output_on_timebase_zero);
ePWM_setActionQualifierAction (EPWM3_Dina_base、ePWM_AQ_output_A、ePWM_AQ_output_no_change、ePWM_AQ_output_on_timebase_period);
ePWM_setActionQualifierAction (EPWM3_Dina_base、ePWM_AQ_output_A、ePWM_AQ_output_low、ePWM_AQ_output_on_timebase_up_cmPA);
ePWM_setActionQualifierAction (EPWM3_Dina_base、ePWM_AQ_output_A、ePWM_AQ_output_no_change、ePWM_AQ_output_on_timebase_down_CMPA);
ePWM_setActionQualifierAction (EPWM3_Dina_base、ePWM_AQ_output_A、ePWM_AQ_output_no_change、ePWM_AQ_output_on_timebase_up_CMPB);
ePWM_setActionQualifierAction (EPWM3_Dina_base、ePWM_AQ_output_A、ePWM_AQ_output_no_change、ePWM_AQ_output_on_timebase_down_CMPB);
ePWM_setActionQualifierT1TriggerSource (EPWM3_Dina_base、ePWM_AQ_TRIGGER_EVENT_TRIG_DCB_1);
ePWM_setActionQualifierT2TriggerSource (EPWM3_Dina_base、ePWM_AQ_TRIGGER_EVENT_TRIG_DCB_1);
ePWM_setActionQualifierAction (EPWM3_Dina_base、ePWM_AQ_output_B、ePWM_AQ_output_high、ePWM_AQ_output_on_timebase_zero);
ePWM_setActionQualifierAction (EPWM3_Dina_base、ePWM_AQ_output_B、ePWM_AQ_output_no_change、ePWM_AQ_output_on_timebase_period);
ePWM_setActionQualifierAction (EPWM3_Dina_base、ePWM_AQ_output_B、ePWM_AQ_output_no_change、ePWM_AQ_output_on_timebase_up_CMPA);
ePWM_setActionQualifierAction (EPWM3_Dina_base、ePWM_AQ_output_B、ePWM_AQ_output_no_change、ePWM_AQ_output_on_timebase_down_CMPA);
ePWM_setActionQualifierAction (EPWM3_Dina_base、ePWM_AQ_output_B、ePWM_AQ_output_low、ePWM_AQ_output_on_timebase_up_CMPB);
ePWM_setActionQualifierAction (EPWM3_Dina_base、ePWM_AQ_output_B、ePWM_AQ_output_no_change、ePWM_AQ_output_on_timebase_down_CMPB);
ePWM_setTripZoneAction (EPWM3_Dina_base、ePWM_TZ_ACT_EVENT_TZA、ePWM_TZ_ACT_LOW);
ePWM_setTripZoneAction (EPWM3_Dina_base、ePWM_TZ_ACT_EVENT_TSZ、ePWM_TZ_ACT_LOW);
ePWM_setTripZoneAction (EPWM3_Dina_base、ePWM_TZ_ACT_EVENT_DCAEVT1、ePWM_TZ_ACT_DISABLE);
ePWM_setTripZoneAction (EPWM3_Dina_base、ePWM_TZ_ACT_EVENT_DCAEVT2、ePWM_TZ_ACT_DISABLE);
ePWM_setTripZoneAction (EPWM3_Dina_base、ePWM_TZ_ACT_EVENT_DCBEVT1、ePWM_TZ_ACT_DISABLE);
ePWM_setTripZoneAction (EPWM3_Dina_base、ePWM_TZ_ACT_EVENT_DCBEVT2、ePWM_TZ_ACT_DISABLE);
ePWM_enableTripZoneSignals (EPWM3_Dina_base、ePWM_TZ_SIGNAL _DCAEVT2);
ePWM_selectDigitalCompareTripInput (EPWM3_Dina_base、ePWM_DC_TRIPIN4、ePWM_DC_TYPE_DCAH);
ePWM_selectDigitalCompareTripInput (EPWM3_Dina_base、ePWM_DC_TRIPIN7、ePWM_DC_TYPE_DCAL);
ePWM_setTripZoneDigitalCompareEventCondition (EPWM3_Dina_base、ePWM_TZ_DC_OUTPUT _A1、ePWM_TZ_EVENT_DCXL_HIGH);
ePWM_setTripZoneDigitalCompareEventCondition (EPWM3_Dina_base、ePWM_TZ_DC_OUTP_A2、ePWM_TZ_EVENT_DCXH_HIGH);
ePWM_enableDigitalCompareSyncEvent (EPWM3_Dina_base、ePWM_DC_MODULE_A);
ePWM_selectDigitalCompareTripInput (EPWM3_Dina_base、ePWM_DC_TRIPIN8、ePWM_DC_TYPE_DCBH);
ePWM_setDigitalCompareEventSyncMode (EPWM3_Dina_base、ePWM_DC_MODULE_B、ePWM_DC_EVENT_1、ePWM_DC_EVENT_INPUT_NOT 已同步);
ePWM_selectDigitalCompareCBCLatchClearEvent (EPWM3_Dina_base、ePWM_DC_MODULE_B、ePWM_DC_EVENT_1、ePWM_DC_CBC_LATCH_CLR_ON_CNTR_PERIOD);
ePWM_setDigitalCompareEventSyncMode (EPWM3_Dina_base、ePWM_DC_MODULE_B、ePWM_DC_EVENT_2、ePWM_DC_EVENT_INPUT_NOT 已同步);
ePWM_setDigitalCompareFilterInput (EPWM3_Dina_base、ePWM_DC_WINDOW_DCBEVT1);
ePWM_enableDigitalCompareBlankingWindow (EPWM3_Dina_base);
ePWM_setDigitalCompareBlankingEvent (EPWM3_Tina_base、ePWM_DC_WINDOW_START_TBCTR_ZERO);
ePWM_enableADCtrigger (EPWM3_Dina_base、ePWM_SOC_A);
ePWM_setADCTriggerSource (EPWM3_Dina_base、ePWM_SOC_A、ePWM_SOC_TBCTR_ZERO);

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="207507" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1158064/tms320f280025c-need-to-sync-pwm-reset-time-base-counter-on-trip-event ]ePWM_disablePhaseShiftLoad (EPWM3_Dina_base);
    [/报价]

    尊敬的 David:

    我相信我已经发现了您的问题! 您正在尝试使用直流比较事件同步脉冲来控制计数器、但您似乎实际上已禁用此处有关 ePWM 的功能。 请看一下您的器件 TRM 中的该图像、即时基子模块中的图17-5、

    未启用此位( ePWM 时基子模块 SysConfig 选项下的"启用相移加载"复选框)。 从图像中可以看到、通常通过 PHSEN 控制位启用对计数器值的直接控制。

    总是很乐意提供帮助、

    Jason Osborn

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

    很棒!

    谢谢 Jason。 在这个设备拥有的数千个拨号和交换机中、您只找到了正确的拨号和交换机。  

    谢谢!