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.

[参考译文] 编译器:相移 PWM1A e PWM1B

Guru**** 2611705 points
Other Parts Discussed in Thread: CONTROLSUITE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/692477/compiler-phase-shift-pwm1a-e-pwm1b

Thread 中讨论的其他器件:controlSUITE

工具/软件:TI C/C++编译器

您好!

我想知道 pwm2A 和 pwm2b 的编辑阶段。
实际上、我希望 PWM2A 和 PWM2B 不同相

谢谢  

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

    我不确定我是否完全理解您的问题。
    您是否在尝试保持 PWM 1和2模块之间的相移?
    如果是、请参考器件用户指南中的 PWM 同步机制、并将 TBPHS 寄存器配置为所需的相位值。 如果您只是在寻找 PWM1A 和 PWM1B 之间的相移、那么您需要相应地使用 CMPx 来考虑所需的相移。

    Bharathi。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好,我已经从示例 PWM 中获取了以下脚本:ti\controlSUITE\development_kits\Piccolo controlSTICK。
    对于 pwm2b 相对于 pwm2A 的相移、我还需要添加哪些其他寄存器?

    谢谢。

    EPwm2Regs.TBPRD = 500
    EPwm2Regs.TBPHS.All=0;
    EPwm2Regs.TBCTR = 0;
    EPwm2Regs.TBCTL.bit.PRDLD = TB_Immediate;
    EPwm2Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN;
    EPwm2Regs.TBCTL.bit.PHSEN = TB_DISABLE;
    EPwm2Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_DISABLE;
    EPwm2Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;
    EPwm2Regs.TBCTL.bit.CLKDIV = TB_DIV1;

    EPwm2Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;
    EPwm2Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
    EPwm2Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;// CTR 上的负载=零
    EPwm2Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;// CTR 上的负载=零


    EPwm2Regs.AQCTLA.bit.CAU = AQ_SET;
    EPwm2Regs.AQCTLA.bit.CAD = AQ_CLEAR;

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

    您好!

    如果您必须在同一模块的2个 PWM 输出之间保持相移、只需使用 CMPx 寄存器中用于生成 PWM 输出的适当值即可实现这一目的。  
    如果您必须在多个模块之间保持相移(例如:PWM1和 PWM2)、那么您可以使用同步方法、同时将 TBPHS 寄存器设置为所需的相移。


    Bharathi。