Part Number: F28M36P63C2
My write sequence to ePWM registers of C28 below:
SYSCLK = 150MHz
ConfigOutput();
EnablePWMclock();
EALLOW;
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1;
EDIS;
TBCTL.CLKDIV = 7;
TBCTL.HSPCLKDIV = 6;
TBPRD = 0xBEBB;
CMPA.half.CMPA = 0x5F5E;
CMPB = 0x5F5E;
CMPCTL.bit.SHDWAMODE = TB_IMMEDIATE;
TBPHS.all = 0;
TBCTR= 0;
TBCTL.CTRMODE = TB_FREEZE;
TBCTLPHSEN = TB_DISABLE;
TBCTL.PRDLD = TB_IMMEDIATE;
TBCTL.SYNCOSEL = TB_SYNC_DISABLE;
AQCTLA.PRD = AQ_NO_ACTION;
AQCTLA.ZRO = AQ_SET;
AQCTLA.CBU = AQ_CLEAR;
AQCTLA.CBD = AQ_CLEAR;
AQCTLA.CAU = AQ_NO_ACTION;
AQCTLA.CAD = AQ_NO_ACTION;
AQSFRC = 0;
AQCSFRC = 0;
ETSEL.INTSEL = ET_CTRU_CMPB;
ETPS.INTPRD = ET_1ST;
ETSEL.bit.INTEN = 0;
ETCLR.bit.INT = 1;
ETPS.bit.INTPSSEL = 0; // use ETPS legacy first-event prescaler
ETPS.bit.INTCNT = 0;
ETCNTINIT.bit.INTINIT = 0;
ETCNTINITCTL.bit.INTINITEN = 1;
ETCNTINITCTL.bit.INTINITFRC = 1;
ETCNTINITCTL.bit.INTINITEN = 0;
DBCTL.POLSEL = DB_ACTV_HI;
DBCTL.OUT_MODE = DB_DISABLE;
TBCTR = TBPRD;
TBCTL.CTRMODE = TB_COUNT_UP;
GPIO doesn't toggle.
If I remove just TBCTL.PRDLD = TB_IMMEDIATE; everything works from first launch
What is the possible reason for such behavior after startup? Didn't find nothing in errata