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:相移公式

Guru**** 2538950 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1408789/tms320f28379d-phase-shift-formula

器件型号:TMS320F28379D

工具与软件:

大家好、团队成员:

我对用于计算 EPWM2相对于 EPWM1的相移的正确公式存在疑问、  
特别是在不同的 ePWM 计数器模式(向上、向下和向上-向下)下。

我在此论坛上收到了一个公式(LAUNCHXL-F28379D:ePWM1和 ePWM2之间的相位延迟、例如 epwm_ex3_synchronization)、用于计算 ePWM 模块的时基相移(TBPHS):

TBPHS =(TBPRD *所需的相位(以度为单位))/180度

基于此、我的相移值为300:  

300 =(2000*x)/180、这会导致 EPWM2的相移约为27度。
EPWM2相对于 EPWM1实现了153度的延迟、
我计算:180度- 27度= 153度
那么:TBPHS=(2000*153)/180=1700
我的问题是这些计算是否适用于所有计数器模式(递增、递减和递增-递减)、或者它们是否特定于一种模式、例如递增计数器模式。

此外、我注意到技术参考手册中有一种不同的相移计算公式:
TBPHS =(相角*TBPRD)/360

如果我的计数器模式设置为向上/向下、应使用哪个公式来正确计算相移?

如果能就此问题作出澄清、以确保不同计数器模式下的精确相位同步、我将不胜感激。

请参阅 C2000 ePWM 开发人员指南。 无论开发人员指南中提到的哪种公式都无法使用加减计数器来计算 TBPHS。 我注意到、对于加减计数器、TBPRD 必须乘以2。 当我使用该相移值时、我可以在波形中获得正确的相移。 我用加减计数器计算了22度。" 如果不将 multiple 乘以2、则为20.35、如果我使用 multiple 乘以40.7 、如果我使用 multiple 乘以2、则只有 ePWM 相移有效、对于加减计数器、则乘以2。 请访问以下链接:



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

    尊敬的 Josel:

    我相信你从这个线程得到的公式是一个近似,不是确切的,抱歉给你带来不便。

    您可以参考以下图表推导出公式:

    下面的公式几乎是正确的:

    TBPHS =(TBPRD *所需的相位(以度为单位))/180度

    根据 TBPRD 寄存器的值和计数模式、只需在每个周期将 TBPRD 替换为正确数量的 TBCLK 脉冲。

    对于向上计数和向下计数、该值是:TBPRD + 1

    对于向上/向下计数、它将是:TBPRD*2。

    因此、两种计数模式的相移公式是

    向上计数/向下计数:TBPHS =((TBPRD+1)*所需的相位、单位为度)/ 180度

    对于向上/向下计数: TBPHS =(TBPRD * 2 *所需相位、以度为单位)/ 180度

    对于相移、还需要注意一点。 根据 TBCLK 频率的不同、在 SYNCIN 脉冲发生和 TBCTR 中的值更新之间有1到2个周期延迟。 如果 TBCLK 等于 SYSCLK/EPWMCLK、您应该在 TBPHS 值公式后面加2、如果 TBCLK 小于该值、您应该在 TBPHS 值公式后面加1。

    谢谢!

    Luke

    如果您有其他问题、请告诉我。

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

    尊敬的 Luke:

    我尝试在 ePWM 模块中使用加减计数器实现10度的相移、TBPRD 值为100。 如果使用公式:TBPHS =(TBPRD * 2 *所需的相位、单位为度)/ 180度)、我可以得到大概为11.1的 TBPHS 值。 然而、此值不会在 ePWM 模块中生成正确的相移。 当我使用手册中提供的公式:加减计数器:TBPHS= TBPRD *所需相位以度为单位)/ 360度。 有了这些,我会得到2.77 ,用这些,我没有得到正确的相移值. 根据上面提到的图表,我考虑了 TBPRD*2作为加减计数器 TBPHS= TBPRD*2*所需相位(度)/ 360度。使用这些公式,我得到了正确的相移值。 能否确认手册中的公式对于给定参数是否正确、或者是否需要考虑其他调整来实现所需的相移?

    此致、

    Josel

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

    尊敬的 Josel:

    我们很抱歉、我打算使用公式  TBPHS =(TBPRD *所需的相位(以度为单位))/360度来实现向上/向下双向计数模式。 我没有意识到您提到的原始公式已调整为向上/向下计数模式。

    如前所述、由于 SYNCIN 脉冲和 TBCTR 值被 TBPHS 覆盖之间的延迟、您可能还需要在 TBPHS 值基础上增加1或2。 所以最终公式可以是上述两种方式之一

    如果 TBCLK =EPWMCLK:TBPHS =(TBPRD *所需相位(以度为单位))/360 + 2

    或者

    如果 TBCLK < EPWMCLK: TBPHS =(TBPRD *所需相位(以度为单位))/360 + 1

    谢谢!

    Luke