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);
