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.

[参考译文] TMS320F28027:不同的 ADC 结果取决于采样率

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1005965/tms320f28027-different-adc-result-depending-on-sample-rate

器件型号:TMS320F28027

您好!

我有一个电源转换器、它根据特定条件以两种不同的开关频率运行。 为了控制它、我读取了一些采样率随开关频率变化的模拟传感器。

我使用 SOC 1-6来获取这些值、而根据器件勘误表、SOC0用作虚拟读取。 我遇到的问题是、根据采样率、我观察到来自同一传感器的不同读数。 例如、在较低的采样率下、我在较高的频率下读取900和910。

我已经检查了电源和电压基准、在所有情况下、它们都是稳定的相同值。 我还尝试不同的采样窗口、但读数差异仍然存在。

是否有人会提示可能发生什么情况?

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

    Renan、您好!

    您正在使用哪些 ADC 通道? 这在器件上的 A 和 B ADC 通道之间是否一致?

    此致、

    Marlyn

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

    我将使用通道 A1、A2、A4和 A6以及两个 CPU 计时器来控制采样。
    第一个计时器设置为25Hz、第二个计时器设置为50kHz。 ADCINT 设置为转换结束。

    在第一种模式下、所有4个通道都由第一个计时器触发:

    AdcRegs.ADCSOC0CTL.all = (0xD<<6) + 63 + (0x1<<11); // Dummy reading. Discarded
    AdcRegs.ADCSOC1CTL.all = (0x4<<6) + 63 + (0x1<<11); // Sensor 1 - Timer 0
    AdcRegs.ADCSOC2CTL.all = (0x6<<6) + 63 + (0x1<<11); // Sensor 2 - Timer 0
    AdcRegs.ADCSOC3CTL.all = (0x1<<6) + 63 + (0x1<<11); // Sensor 3 - Timer 0
    AdcRegs.ADCSOC4CTL.all = (0x2<<6) + 63 + (0x1<<11); // Sensor 4 - Timer 0

    在第二种模式下、一个通道由第二个计时器触发、其余通道由第一个计时器触发:

    AdcRegs.ADCSOC0CTL.all = (0xD<<6) + 63 + (0x2<<11); // Dummy reading. Discarded
    AdcRegs.ADCSOC1CTL.all = (0x6<<6) + 63 + (0x2<<11); // Sensor 1 - Timer 1
    AdcRegs.ADCSOC2CTL.all = (0xD<<6) + 63 + (0x2<<11); // Dummy reading. Discarded
    AdcRegs.ADCSOC3CTL.all = (0x4<<6) + 63 + (0x2<<11); // Sensor 2 - Timer 1
    AdcRegs.ADCSOC4CTL.all = (0x1<<6) + 63 + (0x1<<11); // Sensor 3 - Timer 1
    AdcRegs.ADCSOC5CTL.all = (0x2<<6) + 63 + (0x1<<11); // Sensor 4 - Timer 1

    显然、问题与通道本身无关。 如果我更改 SOC 配置中通道的顺序、问题会转移到其他通道。
    我注意到、通常虚拟采样后读取的第一个传感器会受到影响、而其他传感器不会受到影响、但有时、根据参数、其他传感器也会受到影响。
    如果我在采样频率变化时更改采样窗口、我可以减小或增大两个结果之间的差值、但绝不能使它们相等。

    我已经尝试移除这个虚拟采样、或者让它与第一个真实传感器的通道采样、但结果相同。

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

    Renan、您好!

    出于调试目的、如果您将两个计时器都配置为25Hz 或50kHz、您会得到匹配结果吗?

    此外、您是否使用重叠模式或非重叠模式?  

    此致、

    Marlyn