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.
工具与软件:
您好!
我想使用死区和补充来生成50kHz PWM、以进行逆变器控制。
但我得到12.5kHz 的以下配置。 您能帮忙吗?
EPWM_TIME_BASE_PERIOD => 250
EPWM_setClockPrescaler (EPWM1_BASE、EPWM_CLOCK_DIVIDER_4、EPWM_HSCLOCK_DIVIDER_4);
EPWM_setTimeBasePeriod (EPWM1_BASE、EPWM_TIME_BASE_PERIOD);
EPWM_setTimeBaseCounter (EPWM1_BASE、0);
EPWM_setTimeBaseCounterMode (EPWM1_BASE、EPWM_COUNTER_MODE_UP_DOWN);
EPWM_disablePhaseShiftLoad (EPWM1_BASE);
EPWM_setPhaseShift (EPWM1_BASE、0);
EPWM_setCounterCompareValue (EPWM1_BASE、EPWM_COUNTER_COMPARE_A、EPWM_COMPA_VAL);
EPWM_setCounterCompareShadowLoadMode (EPWM1_BASE、EPWM_COUNTER_COMPARE_A、EPWM_COMP_LOAD_ON_CNTR_ZERO);
//EPWM_setCounterCompareValue (EPWM1_BASE、EPWM_COUNTER_COMPARE_B、EPWM_COMPA_VAL);
EPWM_setCounterCompareShadowLoadMode (EPWM1_BASE、EPWM_COUNTER_COMPARE_B、EPWM_COMP_LOAD_ON_CNTR_ZERO);
EPWM_setActionQualifierAction (EPWM1_BASE、EPWM_AQ_OUTPUT_A、EPWM_AQ_OUTPUT_LOW、EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);
EPWM_setActionQualifierAction (EPWM1_BASE、EPWM_AQ_OUTPUT_A、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);
EPWM_setActionQualifierAction (EPWM1_BASE、EPWM_AQ_OUTPUT_A、EPWM_AQ_OUTPUT_HIGH、EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);
EPWM_setActionQualifierAction (EPWM1_BASE、EPWM_AQ_OUTPUT_A、EPWM_AQ_OUTPUT_LOW、EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);
EPWM_setActionQualifierAction (EPWM1_BASE、EPWM_AQ_OUTPUT_A、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);
EPWM_setActionQualifierAction (EPWM1_BASE、EPWM_AQ_OUTPUT_A、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);
EPWM_setActionQualifierAction (EPWM1_BASE、EPWM_AQ_OUTPUT_B、EPWM_AQ_OUTPUT_LOW、EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);
EPWM_setActionQualifierAction (EPWM1_BASE、EPWM_AQ_OUTPUT_B、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);
EPWM_setActionQualifierAction (EPWM1_BASE、EPWM_AQ_OUTPUT_B、EPWM_AQ_OUTPUT_LOW、EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);
EPWM_setActionQualifierAction (EPWM1_BASE、EPWM_AQ_OUTPUT_B、EPWM_AQ_OUTPUT_HIGH、EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);
EPWM_setActionQualifierAction (EPWM1_BASE、EPWM_AQ_OUTPUT_B、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);
EPWM_setActionQualifierAction (EPWM1_BASE、EPWM_AQ_OUTPUT_B、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);
EPWM_setDeadBandDelayPolarity (EPWM1_BASE、EPWM_DB_FED、EPWM_DB_POLARY_ACTIVE_LOW);
EPWM_setDeadBandDelayMode (EPWM1_BASE、EPWM_DB_RED、TRUE);
EPWM_setRisingEdgeDelayCount (EPWM1_BASE、EPWM_RISING_EDGE_DEADband);
EPWM_setDeadBandDelayMode (EPWM1_BASE、EPWM_DB_FED、TRUE);
EPWM_setFallingEdgeDelayCount (EPWM1_BASE、EPWM_FALLING_EDGE_DEADBAND);
/// EPWM2 Ayarlari.
EPWM_setClockPrescaler (EPWM2_BASE、EPWM_CLOCK_DIVIDER_4、EPWM_HSCLOCK_DIVIDER_4);
EPWM_setTimeBasePeriod (EPWM2_BASE、EPWM_TIME_BASE_PERIOD);
EPWM_setTimeBaseCounter (EPWM2_BASE、0);
EPWM_setTimeBaseCounterMode (EPWM2_BASE、EPWM_COUNTER_MODE_UP_DOWN);
EPWM_disablePhaseShiftLoad (EPWM2_BASE);
EPWM_setPhaseShift (EPWM2_BASE、0);
EPWM_setCounterCompareValue (EPWM2_BASE、EPWM_COUNTER_COMPARE_A、EPWM_COMPA_VAL);
EPWM_setCounterCompareShadowLoadMode (EPWM2_BASE、EPWM_COUNTER_COMPARE_A、EPWM_COMP_LOAD_ON_CNTR_ZERO);
//EPWM_setCounterCompareValue (EPWM2_BASE、EPWM_COUNTER_COMPARE_B、EPWM_COMPA_VAL);
EPWM_setCounterCompareShadowLoadMode (EPWM2_BASE、EPWM_COUNTER_COMPARE_B、EPWM_COMP_LOAD_ON_CNTR_ZERO);
EPWM_setActionQualifierAction (EPWM2_BASE、EPWM_AQ_OUTPUT_A、EPWM_AQ_OUTPUT_LOW、EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);
EPWM_setActionQualifierAction (EPWM2_BASE、EPWM_AQ_OUTPUT_A、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);
EPWM_setActionQualifierAction (EPWM2_BASE、EPWM_AQ_OUTPUT_A、EPWM_AQ_OUTPUT_HIGH、EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);
EPWM_setActionQualifierAction (EPWM2_BASE、EPWM_AQ_OUTPUT_A、EPWM_AQ_OUTPUT_LOW、EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);
EPWM_setActionQualifierAction (EPWM2_BASE、EPWM_AQ_OUTPUT_A、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);
EPWM_setActionQualifierAction (EPWM2_BASE、EPWM_AQ_OUTPUT_A、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);
EPWM_setActionQualifierAction (EPWM2_BASE、EPWM_AQ_OUTPUT_B、EPWM_AQ_OUTPUT_LOW、EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);
EPWM_setActionQualifierAction (EPWM2_BASE、EPWM_AQ_OUTPUT_B、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);
EPWM_setActionQualifierAction (EPWM2_BASE、EPWM_AQ_OUTPUT_B、EPWM_AQ_OUTPUT_LOW、EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);
EPWM_setActionQualifierAction (EPWM2_BASE、EPWM_AQ_OUTPUT_B、EPWM_AQ_OUTPUT_HIGH、EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);
EPWM_setActionQualifierAction (EPWM2_BASE、EPWM_AQ_OUTPUT_B、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);
EPWM_setActionQualifierAction (EPWM2_BASE、EPWM_AQ_OUTPUT_B、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);
EPWM_setDeadBandDelayPolarity (EPWM2_BASE、EPWM_DB_FED、EPWM_DB_POLARY_ACTIVE_LOW);
ePWM_setDeadBandDelayMode (EPWM2_BASE、EPWM_DB_RED、TRUE);
ePWM_setRisingEdgeDelayCount (EPWM2_BASE、EPWM_RISING_EDGE_DEADband);
EPWM_setDeadBandDelayMode (EPWM2_BASE、EPWM_DB_FED、TRUE);
EPWM_setFallingEdgeDelayCount (EPWM2_BASE、EPWM_FALLING_EDGE_DEADBAND);
嗨、Blackmatter、
听起来 ePWM 时钟比应有的频率低4倍。 尝试将时钟分频器更改为 x4以获得所需的频率。
谢谢!
Luke