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.

[参考译文] TMS320F28069M:不带 CMP 寄存器的 C2000 ePWM

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/996023/tms320f28069m-c2000-epwm-without-cmp-registers

器件型号:TMS320F28069M
主题中讨论的其他器件:C2000WARE

我尝试使用以下代码通过 F28069M Launchpad 生成 PWM 信号。 我想在不使用比较寄存器的情况下生成50%的占空比。 但是、下面的代码无法按预期工作。 我缺少什么?

 

InitEPwmTimer()

InitEPwm3Gpio()

EALLOW;

SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC=0

EDIS;

EPwm3Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN;//向上计数

EPwm3Regs.TBPRD = 100;// ePWM 周期

EPwm3Regs.TBPHS.ALL = 0x00000000;

// EPwm3Regs.AQCTLA.bit.PRD = AQ_TOGGLE;//打开 PRD

// TBCLK = SYSCLKOUT

EPwm3Regs.TBCTL.bit.HSPCLKDIV=1

EPwm3Regs.TBCTL.bit.CLKDIV = 0;

EALLOW;

SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC=1

EDIS;

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

    Andrew、

    我强烈建议从 C2000Ware 中的一个示例开始。 尽管它将使用 CMPx 寄存器、但它也会为您执行所有小任务、例如设置 GPIO 配置、PLL 和系统时钟。

    完成此操作后、您应该能够使用 AQ_TOGGLE 设置、正如您在上面所做的那样、以达到50%的占空比。 请注意、您的周期将比预期的长、因为您仅在每个周期切换 PWM 信号一次。

    对于上述调试、确保模块时钟被启用、TBCTR 正在计数、确保 AQCTLA 位被正确写入(现在代码看起来被注释掉)

    此外、请确保您观察到正确的 PWM、GPIO 和 LaunchPad 引脚、这些引脚很容易出错、并且会引起很多混淆。

    此致、
    Cody