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.
如下图所示为我们Epwm3模块的配置。我们在配置EPWM模块之前会设置CpuSysRegs.PCLKCR0.bit.TBCLKSYNC = 0;,配置完成后设置CpuSysRegs.PCLKCR0.bit.TBCLKSYNC = 1; 初始配置时通过
EPwm3Regs.AQSFRC.bit.RLDCSF = 1; /* Load when counter=PRD */
EPwm3Regs.AQCSFRC.bit.CSFA = SWFOR_CLEAR;
EPwm3Regs.AQCSFRC.bit.CSFB = SWFOR_SET;来实现EPWM3A和EPWM3B输出低电平。但是实际测试时发现EPWM3A为低电平,EPWM3B始终为高电平,并且在后面的应用程序中继续操作CSFA和CSFB也无法实现输出电平变化。此时若将图中2处, EPwm3Regs.AQSFRC.bit.RLDCSF = 1; /* Load when counter=PRD * /改为 EPwm3Regs.AQSFRC.bit.RLDCSF = 3; /* Load immediately * /,则EPWM3A和EPWM3B初始电平就可以都为低电平。若保持EPwm3Regs.AQSFRC.bit.RLDCSF = 1不变,将图上1处的TBPHS或者TBCTR改为0,或者将3处的PHSEN改为0,则驱动也是正常的。麻烦专家们帮忙看一下时什么原因?看起来像是时钟相关问题导致SW forced event失效?
死区模块在 AQ 模块之后,所以它总是在之后生效。
shadow mode下的装载只有当 CTR=0 并且 TBCLK 被使能时才会发生。 因此,当您切换到immediate mode时,您跳过了装载并使其立即发生。
shadow mode下的装载只有当 CTR=0 并且 TBCLK 被使能时才会发生
您好,谢谢回复。shadow mode下的装载应该不是只有CTR=0时才可以发生吧,按照EPwm3Regs.AQSFRC.bit.RLDCSF的说明,可以配置在CTR=0或者CTR=PDR时装载。我们的初始配置时是设置在CTR=PRD时装载,配置时TBCLK被disable,EPWM3A和3B不动作可以理解。可是配置结束后,TBCLK会被使能,那么等CTR计数到CTR时,EPWM3A和EPWM3B应该要都变为低电平。可是EPWM3A始终为低电平,EPWM3B始终为高电平。通过操作CSFA和CSFB也无法实现输出电平变化,我不理解是什么原因导致的?还请帮忙再看一下。