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.
工具与软件:
大家好、 专家:
我已经设置 CMPSS/XBAR/ePWM 寄存器以在 EPWM4A 上实现 ZCD、但 无法更改为 EPWM4B。
CH2 EPWM4B 通道3 CTRIPOUTH 或 L CH4 EPWM4A
我使用 CMPSS 信号生成 DCBEVT1。 而 DCBEVT1会生成 EPWM4 AQ T1事件、以便 在 T1向上计数时将 EPWM4A/B 设置为低电平。
以下是我的配置:
CMPSS:
XBAR_ENABLEEPWMMUX (XBAR_TRIP5、0x00);
ASysCtl_selectCMPHPMUX (ZCD_IL_CMPSS_ASYSCTRL_CMPHPMUX、ZCD_IL_CMPSS_ASYSCTRL_MUX_VALUE);
ASysCtl_selectCMPLPMux (ZCD_IL_CMPSS_ASYSCTRL_CMPLPMUX、ZCD_IL_CMPSS_ASYSCTRL_MUX_VALUE);
CMPSS_enableModule (ZCD_IL_CMPSS_BASE);
CMPSS_CONFIGDAC (ZCD_IL_CMPSS_BASE、CMPSS_DACVAL_SYSCLK | CMPSS_DACREF_VDDA | CMPSS_DACSRC_Shdw);
CMPSS_setDACValueHigh (ZCD_IL_CMPSS_BASE+(int16_t)((float32_t) 30.0*(float32_t) 2048.0/(float32_t) current_max_sense);
CMPSS_setDACValueLow (ZCD_IL_CMPSS_BASE-(int16_t)((float32_t) current_limit *(float32_t) 2048.0 /(float32_t) current_max_sense);
CMPSS_configHighComparator (ZCD_IL_CMPSS_BASE, CMPSS_INSRC_DAC );
CMPSS_configLowComparator (ZCD_IL_CMPSS_BASE、CMPSS_INSRC_DAC | CMPSS_INV_REVERTED);
CMPSS_configFilterHigh (ZCD_IL_CMPSS_BASE、2、10、7);
CMPSS_configFilterLow (ZCD_IL_CMPSS_BASE、2、10、7);
CMPSS_initFilterHigh (ZCD_IL_CMPSS_BASE);
CMPSS_configOutputsHigh (ZCD_IL_CMPSS_BASE、CMPSS_TRIPOUT_ASYNC_COMP | CMPSS_TRIP_FILTER);
CMPSS_configOutputsLow (ZCD_IL_CMPSS_BASE、CMPSS_TRIPOUT_ASYNC_COMP | CMPSS_TRIP_FILTER);
CMPSS_clearFilterLatchHigh (ZCD_IL_CMPSS_BASE);
CMPSS_clearFilterLatchLow (ZCD_IL_CMPSS_BASE);
XBAR_setEPWMMuxConfig (XBAR_TRIP5、ZCD_IL_XBAR_MUX_VAL);
XBAR_ENABLEEPWMMux (XBAR_TRIP5、ZCD_IL_XBAR_MUX);
EPWM4:
EPWM_setClockPrescaler (myEPWM4_BASE、EPWM_CLOCK_DIVIDER_1、EPWM_HSCLOCK_DIVIDER_1);
EPWM_setTimeBasePeriod (myEPWM4_BASE、400);
EPWM_setupEPWMLinks (myEPWM4_BASE、EPWM_LINK_WITH_EPWM_4、EPWM_LINK_TBPRD);
EPWM_setTimeBaseCounter (myEPWM4_BASE、0);
EPWM_setTimeBaseCounterMode (myEPWM4_BASE、EPWM_COUNTER_MODE_UP);
EPWM_enablePhaseShiftLoad (myEPWM4_BASE);
EPWM_setPhaseShift (myEPWM4_BASE、1);
EPWM_setSyncInPulseSource (myEPWM4_BASE、EPWM_SYNC_IN_PULSE_SRC_DISABLE);
EPWM_enableSyncOutPulseSource (myEPWM4_BASE、EPWM_SYNC_OUT_PULSE_ON_DCB_EVT1_SYNC);
EPWM_setCounterCompareValue (myEPWM4_BASE、EPWM_COUNTER_COMPARE_A、75);
EPWM_setCounterCompareShadowLoadMode (myEPWM4_BASE、EPWM_COUNTER_COMPARE_A、EPWM_COMP_LOAD_ON_CNTR_ZERO);
EPWM_setCounterCompareValue (myEPWM4_BASE、EPWM_COUNTER_COMPARE_B、0);
EPWM_setCounterCompareShadowLoadMode (myEPWM4_BASE、EPWM_COUNTER_COMPARE_B、EPWM_COMP_LOAD_ON_CNTR_ZERO);
EPWM_setActionQualifierT1TriggerSource (myEPWM4_BASE、EPWM_AQ_TRIGG_EVENT_TRIG_DCB_1);
EPWM_setActionQualifierAction (myEPWM4_BASE、EPWM_AQ_OUTPUT_A、EPWM_AQ_OUTPUT_LOW、EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);
EPWM_setActionQualifierAction (myEPWM4_BASE、EPWM_AQ_OUTPUT_A、EPWM_AQ_OUTPUT_HIGH、EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);
EPWM_setActionQualifierAction (myEPWM4_BASE、EPWM_AQ_OUTPUT_A、EPWM_AQ_OUTPUT_LOW、EPWM_AQ_OUTPUT_ON_T1_COUNT_UP);
EPWM_setActionQualifierAction (myEPWM4_BASE、EPWM_AQ_OUTPUT_B、EPWM_AQ_OUTPUT_LOW、EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);
EPWM_setActionQualifierAction (myEPWM4_BASE、EPWM_AQ_OUTPUT_B、EPWM_AQ_OUTPUT_HIGH、EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);
EPWM_setActionQualifierAction (myEPWM4_BASE、EPWM_AQ_OUTPUT_B、EPWM_AQ_OUTPUT_LOW、EPWM_AQ_OUTPUT_ON_T1_COUNT_UP);
EPWM_setFallingEdgeDeadBandDelayInput (myEPWM4_BASE、EPWM_DB_INPUT_EPWMB);
EPWM_setDeadBandDelayMode (myEPWM4_BASE、EPWM_DB_RED、TRUE);
EPWM_setRisingEdgeDelayCountShadowLoadMode (myEPWM4_BASE、EPWM_RED_LOAD_ON_CNTR_ZERO);
EPWM_setDeadBandDelayMode (myEPWM4_BASE、EPWM_DB_FED、TRUE);
EPWM_setFallingEdgeDelayCountShadowLoadMode (myEPWM4_BASE、EPWM_FED_LOAD_ON_CNTR_ZERO);
EPWM_selectDigitalCompareTripInput (myEPWM4_BASE、EPWM_DC_TRIPIN5、EPWM_DC_TYPE_DCBH);
EPWM_setTripZoneDigitalCompanyEventCondition (myEPWM4_BASE、EPWM_TZ_DC_OUTPUT_B1、EPWM_TZ_EVENT_DCXH_HIGH);
EPWM_enableDigitalCompareSyncEvent (myEPWM4_BASE、EPWM_DC_MODULE_B);
EPWM_enableADCTrigger (myEPWM4_BASE、EPWM_SOC_A);
EPWM_enableADCTrigger (myEPWM4_BASE、EPWM_SOC_B);
此致!
尊敬的 Zhiyu:
您能否在这里详细说明一下。 您期望对 EPWMB 执行什么操作、 但 失败了。 什么是 T1?
谢谢
Srikanth
你好、Srikanth
当我从默认的"高阻抗状态模式" 到"无模式"执行相同的操作设置 TZCTL[DCAEVT1]时、该问题已得到解决。
感谢您的帮助。
此致、
Zhiyu。
尊敬的 Zhiyu:
很高兴知道此设置解决了问题。 你有美好的假期。
谢谢
Srikanth