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.

[参考译文] TMS320F28375D:同步非顺序 PWM

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1033551/tms320f28375d-synching-non-sequential-pwms

器件型号:TMS320F28375D

我需要使用 EPWM6、EPWM7、EPWM8和 EPWM11并同步它们。 (因为100引脚封装并不是所有 PWM 都可用。) 我该怎么做?  我想使用 EPWM4来同步所有内容  

配置 EPWM4并启用其中断。

配置 EPWM10并启用其中断。

配置 EPWM6、EPWM7、 EPWM8 和 EPWM11  

那么可以

  //EPWM4->EWPM7

  SYSCTL_setSyncInputConfig (SYSCTL_SYNC_IN_EPWM7

               SYSCTL_SYNC_IN_SRC_EPWM4SYNCOUT);

  //EPWM4->EWPM10

  SYSCTL_setSyncInputConfig (SYSCTL_SYNC_IN_EPWM10

               SYSCTL_SYNC_IN_SRC_EPWM4SYNCOUT);

为 EPWM4、EPWM7和 EPWM10设置 ISR 以确认中断(是否需要?)

我是否还需要配置 EPWM5、以便来自 EPWM4的同步信号进入 EPWM6?  我还需要做些什么才能实现这一目标吗?

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

    9月6日是美国的假期、因此请预计延迟回复。

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

    您好、Niel、

    对于 ePWM 4、您需要 通过以下函数选择 EPWM4SYNCIN 源、即 ePWM 1 SYNCOUT、EXTSYNCIN1或 EXTSYNCIN2:

        //
        // Ex. ePWM4 uses the ePWM 1 SYNCO as its SYNCIN.
        //
        SysCtl_setSyncInputConfig(SYSCTL_SYNC_IN_EPWM4, SYSCTL_SYNC_IN_SRC_EPWM1SYNCOUT);

    然后、您可以将 ePWM 4 SYNCOUT 传播为 EPWM7和 EPWM10的 SYNCIN、如您所示:

    SysCtl_setSyncInputConfig(SYSCTL_SYNC_IN_EPWM7,SYSCTL_SYNC_IN_SRC_EPWM4SYNCOUT);
    SysCtl_setSyncInputConfig(SYSCTL_SYNC_IN_EPWM10,SYSCTL_SYNC_IN_SRC_EPWM4SYNCOUT);

    您需要对 EPWM1 (如果您选择 EPWM1 SYNCOUT 作为 EPWM4 SYNCIN)、EPWM4、EPWM5和 ePWM 10进行基本配置。

    对于属于同步链的 ePWM 模块(EPWM6、EPWM7、EPWM8和 EPWM11)、您需要启用相移并提供相移值(例如 、ePWM_enablePhaseShiftLoad (EPWM6_BASE);和  ePWM_setPhaseShift (EPWM6_BASE、900);)。 在 EPWM5和 EPWM10等不设置/启用相移值的模块上、需要将 SYNCOUT 配置为与 [例如、ePWM_setSyncOutPulseMode (EPWM5_base、ePWM_SYNC_OUT_PULSE_ON_EPWMxSYNCIN)中的同步相同;] 、以允许通过 SYNC 信号传播。  

    此致、

    Marlyn

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

    Marlyn、

    这很有帮助。  我有几个悬而未决的问题

    如果 EPWM4触发了所有事件、是否需要运行 EPWM1?

    如果我只能执行 EPWM4、 那么为了使它以正确的速率运行并触发其余的 EPWM、我需要的最小配置是什么?

    因此、如果 EPWM4、EPWM7和 EPWM10都与同步  

    SysCtl_setSyncInputConfig(SYSCTL_SYNC_IN_EPWM7,SYSCTL_SYNC_IN_SRC_EPWM4SYNCOUT);
    SysCtl_setSyncInputConfig(SYSCTL_SYNC_IN_EPWM10,SYSCTL_SYNC_IN_SRC_EPWM4SYNCOUT);

    我可以 做你建议的事情,把同步输出与同步输入一样--我是否应该对所有不是由其他 PWM 触发的 ePWM 执行同样的操作?  我不应该这么做

    EPWM_setSyncOutPulseMode(EPWM5_BASE, EPWM_SYNC_OUT_PULSE_ON_EPWMxSYNCIN);
    EPWM_setSyncOutPulseMode(EPWM6_BASE, EPWM_SYNC_OUT_PULSE_ON_EPWMxSYNCIN);
    EPWM_setSyncOutPulseMode(EPWM8_BASE, EPWM_SYNC_OUT_PULSE_ON_EPWMxSYNCIN);
    EPWM_setSyncOutPulseMode(EPWM11_BASE, EPWM_SYNC_OUT_PULSE_ON_EPWMxSYNCIN);
    

    解释:因为 Epwm4会触发 EPWM7和 EPWM10 --它们不需要心理

    如上图所示、EPWM5和 EPWM6需要由 EPWM4触发。

    EPWM8需要由 EPWM7触发(但我可以忽略 EPWM9、因为它未使用、不触发任何操作)

    EPWM11需要由 EPWM10触发(但同样、我可以忽略 EPWMM12)

    我是否正确地考虑了这一点?

    此致、

    Neil

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

    您好、Neil、

    [引用 userid="248859" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1033551/tms320f28375d-synching-non-sequential-pwms/3825579 #3825579"]如果 EPWM4触发了所有操作,是否需要运行 EPWM1?

    不需要、您无需配置 EPWM1。

    [引用 userid="248859" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1033551/tms320f28375d-synching-non-sequential-pwms/3825579 #3825579"]

    如果我只能执行 EPWM4、 那么为了使它以正确的速率运行并触发其余的 EPWM、我需要的最小配置是什么?

    [/报价]

    ePWM 模块有许多子模块、对于 EPWM4、您只需配置时基子模块、即 TBPRD 和时钟分频器的设置位置。 ePWM 5和10也是如此。

    [引用 userid="248859" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1033551/tms320f28375d-synching-non-sequential-pwms/3825579 #3825579"]我可以 执行您建议的操作,并将同步输出馈送到与同步器相同的位置--我是否应该对所有不是由其他 PWM 触发的 ePWM 执行相同的操作?  我不应该这样做[/报价]

    是的、您可以按照所示的方式馈入同步信号。 对于 ePWM 模块6、9和12、您无需配置 SYNCOUT 脉冲、因为这些模块在同步方案中没有后面的模块。 对于模块4、5、7、8和10、您需要设置同步输出脉冲:

    EPWM_setSyncOutPulseMode(EPWM4_BASE, EPWM_SYNC_OUT_PULSE_ON_COUNTER_ZERO);
    
    EPWM_setSyncOutPulseMode(EPWM5_BASE, EPWM_SYNC_OUT_PULSE_ON_EPWMxSYNCIN);
    
    EPWM_setSyncOutPulseMode(EPWM7_BASE, EPWM_SYNC_OUT_PULSE_ON_EPWMxSYNCIN);
    EPWM_setSyncOutPulseMode(EPWM8_BASE, EPWM_SYNC_OUT_PULSE_ON_EPWMxSYNCIN);
    
    EPWM_setSyncOutPulseMode(EPWM10_BASE, EPWM_SYNC_OUT_PULSE_ON_EPWMxSYNCIN);

    此致、

    Marlyn