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.

[参考译文] TMS320F28379D:影子寄存器 CMPA 和 TBPRD 不n´t 工作

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/902298/tms320f28379d-shadow-registers-cmpa-and-tbprd-don-t-work

器件型号:TMS320F28379D

您好!

我的 ePWM 模块中的影子寄存器´ve 问题。 我´ve 配置了它们、CMPA 寄存器、TBPRD 寄存器和 AQCTLA 寄存器被加载到 TBCTL=ZRO 上。 我每隔一段时间编写一次。

我在调试n´t 中观察到了寄存器、并注意到影子寄存器被使用了 μ C。 这些值直接写入活动寄存器。

这就是我配置影子寄存器的方式:

   EPwm2Regs.CMPCTL.bit.SHDWAMODE = CC_SHADODE;   //每0加载一次寄存器
   EPwm2Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
   EPwm2Regs.TBCTL.bit.PRDLD = 0;
   EPwm2Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;
   EPwm2Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;
   EPwm2Regs.AQCTL.bit.SHDWAQAMODE = 1;
   EPwm2Regs.AQCTL.bit.LDAQAMODE = 0;
   EPwm2Regs.AQCTL.bit.LDAQASYS = 0;

通常、影子寄存器应该被使用并载入 TBCTR=ZRO 上的活动寄存器中、对吧?

我希望您能帮我解决我的问题。

此致、

Jens

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

    正在使用影子。 您不会看到内部阴影副本。 当您写入寄存器时、调试窗口将显示您上次写入的值。 内部影子副本将在您选择的事件时更新。

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

    您好!

    我很确定不使用影子寄存器。 在调试模式下、CMPA 寄存器在我写入它时立即更新。 SHDWAFULL 位也不置位。

    此致、

    Jens

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

    您在调试窗口中看到的面向外的寄存器是影子寄存器。

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

    n´t、在对影子寄存器执行写操作后、是否应将 SHDWAFULL 位置位? 在我的应用程序中、SHDWAFULL 一直为0、但是如果使用影子寄存器、则写入后它应该为1、并且在加载事件发生后重新返回到0。 对吧?

    此致、

    Jens

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

    是的、正确的、将 EPWM 模块的仿真模式设置为在调试器停止器件时冻结、然后在写入寄存器后放置 ESTOP0以查看阴影的状态。

x 出现错误。请重试或与管理员联系。