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.

[参考译文] TMS320F280039C:CrM Boost EPWM 设置

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1453676/tms320f280039c-crm-boost-epwm-setup

器件型号:TMS320F280039C

工具与软件:

大家好、 专家:

我已经设置 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);

此致!

x 出现错误。请重试或与管理员联系。