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/TMS320F28379D:ePWM 寄存器位字段未置位

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/699954/ccs-tms320f28379d-epwm-register-bit-fields-are-not-being-set

器件型号:TMS320F28379D

工具/软件:Code Composer Studio

大多数时候、当我按下 DEBUG 并观察寄存 器时、我注意到、即使我的代码可以显式地将 ePWM 周期设置为5000次计数、寄存器也不会更新、只显示0。 有时、它将是未设置或同时设置的相位。 有时、CMPA 也不会置1。

我的 InitEPwm 代码是否有问题? 我在 main 函数中调用 InitEPwm()和 InitEPwmGpio()。

void InitEPwm2 (void)
{
EALLOW;
//设置 TBCLK
EPwm2Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP; //向上计数
EPwm2Regs.TBPRD = PWM5_PERIOD; //与 PWM5的周期相同
EPwm2Regs.TBCTL.bit.PHSEN = 1; //启用相位加载
EPwm2Regs.TBPHS.bit.TBPHS = 500; //相位
EPwm2Regs.TBCTR = 0x0000; //清除计数器
EPwm2Regs.TBCTL.bit.HSPCLKDIV=1; //时钟与 SYSCLKOUT 的比率
EPwm2Regs.TBCTL.bit.CLKDIV = 0;
EPwm2Regs.TBCTL.bit.SYNCOSEL = TB_CTR_ZERO; CTR = 0时为//同步输出


//将影子寄存器加载设置为零
EPwm2Regs.CMPCTL.bit.SHDWAMODE = 0;
EPwm2Regs.CMPCTL.bit.SHDWBMODE = 0;
EPwm2Regs.CMPCTL.bit.LOADAMODE = 0;
EPwm2Regs.CMPCTL.bit.LOADBMODE = 0;

//设置比较值
EPwm2Regs.CMPA.bit.CMPA = dutyCycle; //设置比较 A 值

//设置操作
EPwm2Regs.AQCTLA.bit.ZRO = AQ_SET; //将 PWM2A 设置为零
EPwm2Regs.AQCTLA.bit.CAU = AQ_CLEAR; //在事件 A 上清除 PWM2A,向上计数

EDIS;
} 

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

    您能否共享 CCS 项目、我想在 InitPWM 之前查看设置代码

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

    e2e.ti.com/.../cpu1.c

    另外、我的 epwm2现在也在奇怪地工作。 但是、我的 epwm3仍然不起作用、因为它不会设置周期或 SOCASEL。

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

    e2e.ti.com/.../e2e_5F00_field_5F00_gets_5F00_set.zip

    Christine、

    我刚刚运行了您的代码并单步执行它。 所有寄存器都会使用您设置的值进行更新。 这可能是设置问题。 我已将 CCS 项目附加到此项目。 请运行此代码、在包含最后一个 ePWM 配置代码的函数之后放置一个断点、并在寄存器视图中检查所有值。

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