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.

[参考译文] TMS320F28069:两个用于同步的 TMS320F28069 PWM

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/897367/tms320f28069-two-tms320f28069-pwm-for-synchronization

器件型号:TMS320F28069

现象:

两个独立的 DSP (TMS320F28069PAG)分别生成固定频率(20kHz)和固定占空比(50%)的 PWM。 使用示波器测试两个 DSP 的 PWM 波形。 将 PWM 上升沿之一设置为触发)。 此时、两个 DSP 以相同的频率和相同的占空比输出 PWM、但 PWM 之间存在相对运动。 两个 DSP 晶振的频率为20MHz、内部时钟为90MHz。 所有电路保持不变。

 两个 DSP 晶振的频率为20MHz、内部时钟为90MHz。 所有电路保持不变。

 ePWM 配置如下:

 EPwm1Regs.TBCTL.bit.PRDLD = TB_SHADOW;      

  EPwm1Regs.TBPRD = EPWM1_TIMER_TBPRD;

  EPwm1Regs.CMPA.half.CMPA = EPWM1_TIMER_TBPRD;

 EPwm1Regs.CMPA.half.CMPAHR = 0;

 EPwm1Regs.CMPB = EPWM1_TIMER_TBPRD;

 EPwm1Regs.TBPHS.ALL = 0;

 EPwm1Regs.TBCTR = 0;

 EPwm1Regs.TBPHS.Half.TBPHS = 0;

 EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN;

  EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE;

 EPwm1Regs.TBCTL.bit.PHSDIR = TB_UP;

EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_DISABLE;

 EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;

 EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1;

 EPwm1Regs.TBCTL.bit.FREE_SOFT = 3;

 EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_Zero_PRD;

 EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_Zero_PRD;

 EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;

 EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;

 EPwm1Regs.AQCTLA.bit.ZRO= AQ_SET;

 EPwm1Regs.AQCTLA.bit.PRD= AQ_CLEAR;

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

    您好!

    由于两个 DSP 的 ePWM 时钟不同步 、因此 PWM 之间存在相对运动。 您可能需要使用时基同步方案来同步2个 PWM、其中一个 DSP 的 EPWM1可用于同步另一个 DSP 中的 PWM。

    谢谢

    Vasudha

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

    Vasudha 的建议是正确的、您应该使用 PWM 的外部同步机制。   

    如果您希望消除缓慢的长期漂移同步、则可以将相同的时钟源共享给两个器件。 这应该使它们保持非常相似、只会因微小的 PLL 差异而变化。

    此致、
    Cody