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: TMS320F280025C

Part Number: TMS320F280025C

4路PWM发波,以PWM1为基准其余三路都是以PWM1为同步信号 采用向上向下计数模式,后三路移项值一直给的是(PRD-2)目的是在变频时保持同一相位,现在的问题是PWM的频率发生变化时波形会出现杂乱,好像是重新做了同步发波的处理,请问这是什么原因,怎么解决

  • 您好

    感谢您对TI产品的关注!为更加有效地解决您的问题,我们建议您将问题发布在E2E英文技术论坛上(https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum),将由资深的英文论坛工程师为您提供帮助。

  • 看一下PWM PRD同步更新的时机设置,PHS一般在SyncIn时同步,可能这2者之间存在时间差。

    建议放代码上来看看

  • 您好

    感谢您对TI产品的关注!为更加有效地解决您的问题,我们建议您将问题发布在E2E英文技术论坛上(https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum),将由资深的英文论坛工程师为您提供帮助。相关资深的工程师可以给您提供相关代码参考。

  • Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    void mcu_epwm1_init() {
    EPWM_setClockPrescaler(EPWM1_BASE, EPWM_CLOCK_DIVIDER_1, EPWM_HSCLOCK_DIVIDER_1);
    EPWM_setTimeBasePeriod(EPWM1_BASE, 1000);
    EPWM_setTimeBaseCounter(EPWM1_BASE, 0);
    EPWM_setTimeBaseCounterMode(EPWM1_BASE, EPWM_COUNTER_MODE_UP_DOWN);
    EPWM_setPeriodLoadMode(EPWM1_BASE, EPWM_PERIOD_SHADOW_LOAD);
    EPWM_selectPeriodLoadEvent(EPWM1_BASE, EPWM_SHADOW_LOAD_MODE_COUNTER_SYNC);
    ///Phase
    EPWM_disablePhaseShiftLoad(EPWM1_BASE);
    // EPWM_enablePhaseShiftLoad(EPWM1_BASE);
    // EPWM_setPhaseShift(EPWM1_BASE, 0);
    ///Synchronize
    EPWM_setSyncInPulseSource(EPWM1_BASE, EPWM_SYNC_IN_PULSE_SRC_DISABLE);
    EPWM_enableSyncOutPulseSource(EPWM1_BASE, EPWM_SYNC_OUT_PULSE_ON_ALL);
    /* EPWM1 A */
    /// GPIO
    //GPIO_setPinConfig(EPWM1_EPWMA_PIN_CONFIG);
    GPIO_setPadConfig(EPWM1_EPWMA_GPIO, GPIO_PIN_TYPE_STD);
    GPIO_setQualificationMode(EPWM1_EPWMA_GPIO, GPIO_QUAL_SYNC);
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    你好,感谢回复,目前我试了一下,如果不做同步处理或者不移相的话,变频不会出现问题,或者移相的值不变的话也不会出现,应该是变频后强制同步波形导致的,但是具体解决办法还没找到。麻烦帮忙看一下代码,谢谢

  • Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    void mcu_epwm1_init() {
    EPWM_setClockPrescaler(EPWM1_BASE, EPWM_CLOCK_DIVIDER_1, EPWM_HSCLOCK_DIVIDER_1);
    EPWM_setTimeBasePeriod(EPWM1_BASE, 1000);
    EPWM_setTimeBaseCounter(EPWM1_BASE, 0);
    EPWM_setTimeBaseCounterMode(EPWM1_BASE, EPWM_COUNTER_MODE_UP_DOWN);
    EPWM_setPeriodLoadMode(EPWM1_BASE, EPWM_PERIOD_SHADOW_LOAD);
    EPWM_selectPeriodLoadEvent(EPWM1_BASE, EPWM_SHADOW_LOAD_MODE_COUNTER_SYNC);
    ///Phase
    EPWM_disablePhaseShiftLoad(EPWM1_BASE);
    // EPWM_enablePhaseShiftLoad(EPWM1_BASE);
    // EPWM_setPhaseShift(EPWM1_BASE, 0);
    ///Synchronize
    EPWM_setSyncInPulseSource(EPWM1_BASE, EPWM_SYNC_IN_PULSE_SRC_DISABLE);
    EPWM_enableSyncOutPulseSource(EPWM1_BASE, EPWM_SYNC_OUT_PULSE_ON_ALL);
    /* EPWM1 A */
    /// GPIO
    //GPIO_setPinConfig(EPWM1_EPWMA_PIN_CONFIG);
    GPIO_setPadConfig(EPWM1_EPWMA_GPIO, GPIO_PIN_TYPE_STD);
    GPIO_setQualificationMode(EPWM1_EPWMA_GPIO, GPIO_QUAL_SYNC);
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    你好,感谢回复,目前我试了一下,如果不做同步处理或者不移相的话,变频不会出现问题,或者移相的值不变的话也不会出现,应该是变频后强制同步波形导致的,但是具体解决办法还没找到。麻烦帮忙看一下代码,谢谢

  • 您好

    感谢您对TI产品的关注!为更加有效地解决您的问题,我们建议您将问题发布在E2E英文技术论坛上(https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum),将由资深的英文论坛工程师为您提供帮助。相关资深的工程师可以给您提供相关代码参考。