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.
我需要使用 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