尊敬的香榭丽舍
我向我们的客户提出这一问题。
用户正在调试代码、发现了一些奇怪的东西。
他们的代码中有如下所示的语句。
EPwm5Regs.TBPRD = wTzRefPeriod;
EPwm5Regs.CMPA.half.CMPA = 0;
EPwm5Regs.TBPHS.ALL = 0;
EPwm5Regs.TBCTR = 0;
EPwm5Regs.TBCTL.bit.PRDLD = TB_SHADOW;
EPwm5Regs.TBCTL.bit.CLKDIV = EPWM5_CLKDIV;
EPwm5Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;
EPwm5Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_DISABLE;
EPwm5Regs.TBCTL.bit.PHSEN = TB_DISABLE;
EPwm5Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP;
EPwm5Regs.AQCTLA.bit.ZRO = AQ_SET;
EPwm5Regs.AQCTLA.bit.CAU = AQ_CLEAR;
EPwm5Regs.AQCSFRC.bit.CSFA = 0;
EPwm5Regs.DBCTL.bit.OUT_MODE = DB_DISABLE
请注意
如果"EPwm5Regs.AQCSFRC.bit.CSFA = 0;"、则它们发现 ADC B0至 B3的读取会产生较大误差。 但是、如果他们注释了此行"EPwm5Regs.AQCSFRC.bit.CSFA = 0;"、则 ADC B0到 B3的读数会正确。
请注意、即使它们通过禁用其时钟"SysCtrlRegs.PCLKCR1.bit.EPWM5ENCLK = 0"来禁用 PWM5、问题仍然存在。
另请注意、这仅在负载非常高时发生。 也就是说、在轻负载情况下、他们没有观察到这个问题。
我们认为这与噪声有关、但我们无法解释为什么这种噪声与此行"EPwm5Regs.AQCSFRC.bit.CSFA = 0;"相关
问题:
您对我们调试此问题有什么意见或建议吗?
此 PWM 设置是否与 ADC 读数有关? 比如内部连接?
黄维恩