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.

[参考译文] TMS320F28069:与 PWM5初始化相关的奇怪 ADC 错误读取

Guru**** 2585275 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/904944/tms320f28069-weird-adc-error-reading-related-to-pwm5-initialization

器件型号:TMS320F28069

尊敬的香榭丽舍

我向我们的客户提出这一问题。

用户正在调试代码、发现了一些奇怪的东西。

他们的代码中有如下所示的语句。

   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 读数有关? 比如内部连接?

黄维恩

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    韦恩、

    我看不到 CSFA 位与 ADC 转换之间的数字关系。 当程序中包含或删除该行时、您能看到 CSFA 位的值是多少? TRM 表示该位复位时为0、因此我不认为该指令从逻辑角度执行任何操作。

    这仅在负载较高时发生、这一事实让我认为可能存在布局敏感性。 我建议研究这种可能性。 "高负载"是否会影响器件运行条件? ADC 误差是否一致? 误差是交流还是直流?

    Tommy