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: The value of the comparison register cannot be updated properly in FLASH mode

Part Number: TMS320F28377D

Hi team,

Here's an issue from the customer may need your help:

When using CPU2's CLA, the EPMW comparator value can be updated normally in emulator mode and output waveforms normally. The comparison value of EPWM does not update properly after a power-down restart. EPMW is handled by CLA access. The code is as follows:

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;

Where EPWM_REGS_STRUCT *pEpwmRegs; // register address

The pointer is initialized by the table below:

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

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

However, the simulation mode, FLASH mode after power-on reboot, is normal when the compare register is operated without a pointer, using the following code directly:

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

Issue: The customer would like to know if the CLA not support this pointer mode, or is there any limitation? Why emulation mode is ok?

Could you help check this case? Thanks.

Best Regards,

Cherry