TI E2E™ 设计支持论坛将于 5 月 30 日至 6 月 1 日进行维护。如果您在此期间需要技术支持,请联系 TI 的客户支持中心寻求帮助。

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.

[参考译文] CCS/LAUNCHXL-F28377S:同步问题

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/569352/ccs-launchxl-f28377s-sync-problem

器件型号:LAUNCHXL-F28377S

工具/软件:Code Composer Studio

晚上好。  

我们在前面提到的 launchpad 上向您发送邮件、因为我们遇到了问题。

问题是、我们需要对8 PWM (pwm7A、B pwm8A、B pwm9A、B pwm10A、B)进行编程、并决定同步 PWM 将为 pwm7。  

pwm8、pwm9和 pwm10必须与 pwm7同相、问题是 pwm10不会与7同步。 我们附加了该代码。  

谢谢

代码:

void Setup_ePWM1 (void)

EPwm7Regs.TBCTL.bit.CLKDIV = 0;// CLKDIV = 1
EPwm7Regs.TBCTL.bit.HSPCLKDIV = 0;// HSPCLKDIV = 2
EPwm7Regs.TBCTL.bit.CTRMODE = 2;//向上-向下计数模式

EPwm7Regs.AQCTLA.bit.CAU = 1;//在 CMPA 上设置 ePWM1A
EPwm7Regs.AQCTLA.bit.CAD = 2;

EPwm7Regs.AQCTLB.bit.CBU =1;//在 CMPA 上设置 ePWM1A
EPwm7Regs.AQCTLB.bit.CBD = 2;

//在 CMPA 递减时清除 ePWM1A
EPwm7Regs.TBPRD =不正确;//  
EPwm7Regs.CMPA.bit.CMPA = 0.5*tope;//首先是50%占空比
EPwm7Regs.CMPB.bit.CMPB = 0.5*tope;
EPwm7Regs.TBCTL.bit.SYNCOSEL = 1;

EPwm8Regs.TBCTL.bit.CLKDIV = 0;// CLKDIV = 1
EPwm8Regs.TBCTL.bit.HSPCLKDIV = 0;// HSPCLKDIV = 2
EPwm8Regs.TBCTL.bit.CTRMODE = 2;//向上-向下计数模式

EPwm8Regs.AQCTLA.bit.CAU = 1;//在 CMPA 上设置 ePWM1A
EPwm8Regs.AQCTLA.bit.CAD = 2;

EPwm8Regs.AQCTLB.bit.CBU =1;//在 CMPA 上设置 ePWM1A
EPwm8Regs.AQCTLB.bit.CBD = 2;
//在 CMPA 递减时清除 ePWM1A
EPwm8Regs.TBPRD =不正确;//  
EPwm8Regs.CMPA.bit.CMPA = 0.5*tope;//首先是50%占空比
EPwm8Regs.CMPB.bit.CMPB = 0.5*tope;
EPwm8Regs.TBCTL.bit.PHSEN = 1;
EPwm8Regs.TBPHS.bit.TBPHS = 0;
// EPwm8Regs.TBCTL.bit.SYNCOSEL = 0;//为 ePWM3启用相移

EPwm9Regs.TBCTL.bit.CLKDIV = 0;// CLKDIV = 1
EPwm9Regs.TBCTL.bit.HSPCLKDIV = 0;// HSPCLKDIV = 2
EPwm9Regs.TBCTL.bit.CTRMODE = 2;//向上-向下计数模式

EPwm9Regs.AQCTLA.bit.CAU = 1;//在 CMPA 上设置 ePWM1A
EPwm9Regs.AQCTLA.bit.CAD = 2;

EPwm9Regs.AQCTLB.bit.CBU =1;//在 CMPA 上设置 ePWM1A
EPwm9Regs.AQCTLB.bit.CBD = 2;
//在 CMPA 递减时清除 ePWM1A
EPwm9Regs.TBPRD =不正确;//  
EPwm9Regs.CMPA.bit.CMPA = 0.5*tope;//首先是50%占空比
EPwm9Regs.CMPB.bit.CMPB = 0.5*tope;
EPwm9Regs.TBCTL.bit.PHSEN = 1;
EPwm9Regs.TBPHS.bit.TBPHS = 0;
//EPwm9Regs.TBCTL.bit.SYNCOSEL = 0;//为 ePWM3启用相移
EPwm7Regs.TBCTL.bit.SYNCOSEL = 1;
SyncSockRegs.SYNCSELECT.BIT.EPWM10SYNCIN=2;

EPwm10Regs.TBCTL.bit.CLKDIV = 0;// CLKDIV = 1
EPwm10Regs.TBCTL.bit.HSPCLKDIV = 0;// HSPCLKDIV = 2
EPwm10Regs.TBCTL.bit.CTRMODE = 2;//向上-向下计数模式

EPwm10Regs.AQCTLA.bit.CAU = 1;//在 CMPA 上设置 ePWM1A
EPwm10Regs.AQCTLA.bit.CAD = 2;

EPwm10Regs.AQCTLB.bit.CBU =1;//在 CMPA 上设置 ePWM1A
EPwm10Regs.AQCTLB.bit.CBD = 2;
//在 CMPA 递减时清除 ePWM1A
EPwm10Regs.TBPRD =不正确;//  
EPwm10Regs.CMPA.bit.CMPA = 0.5*tope;//首先是50%占空比
EPwm10Regs.CMPB.bit.CMPB = 0.5*tope;
EPwm10Regs.TBSTS.bit.SYNCI=1;
EPwm10Regs.TBCTL.bit.SYNCOSEL = 0;
EPwm10Regs.TBCTL.bit.PHSEN = 1;
EPwm10Regs.TBPHS.bit.TBPHS = 0;

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

    您好!

    感谢您发帖并提供代码。 我们能否尝试两件事情开始:

    (1)执行此代码后、您能否在 Code Composer Studio 的"Expressions"窗口中验证 SYNCSELECT.BIT.EPWM10SYNCIN 字段是否正在获取您分配的值?

    (2)如果(1)读回正确的值、如果您有可以使用的 GPIO、我们可以将 EPWM7SYNCO 运行到 GPIO、以便能够将引脚上的信号可视化。

    (3)您的代码中未显示该指令、但我只是想验证您在运行该代码之前是否正在执行 EALLOW 指令?


    谢谢、
    Kris