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.

[参考译文] TMS320F28379D:PWM 同步

Guru**** 2696755 points

Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1599540/tms320f28379d-synchronisation-of-pwm

部件号: TMS320F28379D
主题: C2000WARE 中讨论的其他器件

主席先生/女士、

我使用以下示例将相移转换为 pwm1、pwm2、pwm3、pwm4

C:\ti\c2000\C2000Ware_6_00_01_00\driverlib\f2837xd\examples\cpu1\epwm\ePWM_ex3_synchronization

但是、当我更改相移 pwm2、pwm3、pwm4、pwm1 的序列时、我无法获得相移。 有没有办法做到这一点?

谢谢。此致、

Prashant Gugle

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

    您好 Prashant

    您能提供有关该问题的更多详细信息吗? 您对更改相序做了哪些更改? 请确保通过 PWM 模块提供同步输入。

    谢谢你  

    Amir Hussain

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

    尊敬的 Amir:

    感谢您的答复。

    为了更改相位序列、我要执行以下操作:

      
     
      SysCtl_disablePeripheral (SYSCTL_PERIPH_CLK_TBCLKSYNC);

      //
      //初始化 PWM2 而不将相移作为主器件
      //
      initEPWM (myEPWM2_base);   

      //
      //使用 150 TBCLK 的相移初始化 PWM3
      //
      initEPWM (myEPWM3_base);     
      ePWM_selectPeriodLoadEvent (myEPWM3_base、ePWM_shadow_load_mode_sync);
      EPWM_setPhaseShift (myEPWM3_base、150);   
      EPWM_setTimeBaseCounter (myEPWM3_BASE、150);

      //
      //通过 600 TBCLK 的相移初始化 PWM3
      //
      initEPWM (myEPWM4_BASE);   
      ePWM_selectPeriodLoadEvent (myEPWM4_BASE、ePWM_shadow_load_mode_sync);
      EPWM_setPhaseShift (myEPWM4_BASE、300);  
      EPWM_setTimeBaseCounter (myEPWM4_BASE、300);

      //
      //使用 450 TBCLK 的相移初始化 PWM4
      //
      initEPWM (myEPWM1_BASE);   
      ePWM_selectPeriodLoadEvent (myEPWM1_BASE、ePWM_shadow_load_mode_sync);
      EPWM_setPhaseShift (myEPWM1_base、450);
      EPWM_setTimeBaseCounter (myEPWM1_BASE、450);

      //
      //在 CTR = 0 时生成 ePWM2 SYNCO
      //
      ePWM_setSyncOutPulseMode (EPWM2_BASE、ePWM_SYNC_OUT_PULSE_ON_COUNTER_ZERO);

      //
      // ePWM3 使用 ePWM2 SYNCO 作为其 SYNCIN。
      // ePWM3 SYNCO 由其 SYNCIN 生成、即 ePWM2 SYNCO
      //
      EPWM_setSyncOutPulseMode (myEPWM3_BASE、EPWM_SYNC_OUT_PULSE_ON_EPWMxSYNCIN);
     

      EPWM_setSyncOutPulseMode (myEPWM4_BASE、EPWM_SYNC_OUT_PULSE_ON_EPWMxSYNCIN);
      
     
      //
      // ePWM4 使用 ePWM 2 SYNCO 作为其 SYNCIN。
      //
      //SysCtl_setSyncInputConfig (SysCtl_SYNC_IN_EPWM4、SysCtl_SYNC_IN_SRC_EPWM1SYNCOUT);
      //
      //启用所有相移。
      //
      EPWM_enablePhaseShiftLoad (myEPWM1_BASE);
      EPWM_enablePhaseShiftLoad (myEPWM3_base);
      EPWM_enablePhaseShiftLoad (myEPWM4_BASE);

      //
      //启用到 PWM 的 SYNC 和时钟
      //
      SysCtl_enablePeripheral (SYSCTL_PERIPH_CLK_TBCLKSYNC);

    谢谢。此致、

    Prashant Gugle

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

    亲爱的埃米尔、

    有任何关于此问题的答复吗?

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

    尊敬的先生/女士:

    没有 用于选择同步输入源的 EPWM_setSyncInPulseSource。 那么如何同步 PWM 呢?

    谢谢。此致、

    Prashant Gugle

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

    您好 Prashant

    如果从 ePWM 模块输入 syncin 脉冲源、它必须位于链中。 这意味着您可以仅从 EPWM1 向 EPWM2 提供同步脉冲、依此类推。 有关更多详细信息、请参阅手册第 1913 页。

    谢谢你  

    Amir Hussain

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

    亲爱的埃米尔、

    这是否意味着我们不能改变顺序。 我们需要 PWM1、PWM2、PWM3、PWM4 作为一个线路周期的第一个序列。 下一个线路周期 PWM2、PWM3、PWM4、PWM1。  在下一个石灰周期  PWM3、PWM4、PWM1、PWM2 中。 在下一个周期 PWM4、PWM1、PWM2、PWM3 中。 此序列将继续。

    谢谢。此致、

    Prashant Gugle

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

    亲爱的埃米尔、

    在 TMS320F28P65x 中、任何 PWM SYNCOUT 都可以 SYNCIN 到任何 PWM。 那么上述旋转 PWM 序列是可行的吗?

    谢谢。此致、

    Prashant Gugle

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

    您好 Prashant

    是的、对于 F28P65x、您可以将 ePWM 模块与任何 ePWM 同步。 它不必 遵循任何顺序。

    谢谢你  

    Amir Hussain