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.

TMS320F28377D: CPU2.CLA使用指针进行EPWM操作时,仿真模式下,可正常更新比较寄存器的值,FLASH模式下不能正常

Part Number: TMS320F28377D

使用CPU2的CLA时,在仿真器模式下,可以正常更新EPMW比较器的值,能正常输出波形;

下电后重启后,EPWM的比较值无法正常更新,EPMW是由CLA中来访问处理的;

代码如下:

pAxis->pEpwmRegs->pEpmw1Regs->CMPA.bit.CMPA = pAxis->pClaVoltLoop->CMPR1;
pAxis->pEpwmRegs->pEpmw2Regs->CMPA.bit.CMPA = pAxis->pClaVoltLoop->CMPR2;
pAxis->pEpwmRegs->pEpmw3Regs->CMPA.bit.CMPA = pAxis->pClaVoltLoop->CMPR3;

其中 EPWM_REGS_STRUCT    *pEpwmRegs;//寄存器地址

该指针由下面的表格进行初始化

const EPWM_REGS_STRUCT epwmRegAddrTable[4] =
{
{&EPwm1Regs, &EPwm2Regs, &EPwm3Regs},
{&EPwm4Regs, &EPwm5Regs, &EPwm6Regs},
{&EPwm7Regs, &EPwm8Regs, &EPwm9Regs},
{&EPwm10Regs, &EPwm11Regs, &EPwm12Regs}
};

//-----------------------------------------------

但是不用指针方式对比较寄存器进行操作是,即直接使用如下代码,仿真模式、上电重启后的FLASH模式都是正常的;

EPwm1Regs.CMPA.bit.CMPA = pAxis->pClaVoltLoop->CMPR1;
EPwm2Regs.CMPA.bit.CMPA = pAxis->pClaVoltLoop->CMPR2;
EPwm3Regs.CMPA.bit.CMPA = pAxis->pClaVoltLoop->CMPR3;

问题:CLA对这样的指针方式不支持吗,还有什么限制,为何仿真模式是ok的

  • 您好我们已收到您的问题并升级到英文论坛,如有答复将尽快回复您。谢谢!

  • 您好,如果 CLA 在连接调试器的情况下成功进行访问,那么在上电复位后应该也会正常工作。 您能提供以下内容吗:

    1. 以下值分别是多少:

         pAxis->pEpwmRegs

         pAxis->pEpwmRegs->pEpmw1Regs

    2.地址:

        epwmRegAddrTable

    通过以上信息我们能够确定 epwmRegAddrTable 或 pAxis->pEpwmRegs 的初始化是否存在任何问题、这可能会在 POR 之后造成一些问题。

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