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.

[参考译文] ADS1256:读取值异常

Guru**** 2394305 points
Other Parts Discussed in Thread: ADS1256, OPA2277, ADS1261

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/929852/ads1256-unexpected-readout-values

器件型号:ADS1256
主题中讨论的其他器件: OPA2277ADS1261

我通过多路复用器读取值时仅选择一个通道、以消除这种误差源。 我在 AIN0和 AIN1上的差分通道中读取。 读数来自10千欧 NTC。 25度时的预期电压为1.66伏、这是可以的。 我将以温度的形式给出读数。 温度显示为0.01度精度。 这对应于输入端的860uV 变化。 这远低于系统的本底噪声。 我将采样率设置为30ksps。 数据将在数小时内记录。 我会在随机时间获得意外的读数。 读数误差大约为36mV。 器件的基准电压稳定、为2.5伏。 ADC 的输入被过滤、带宽大约为几百 Hz。 PGA 设置为2。 当器件开始读数时、基准被校准一次。 我将列出发生温度读数故障的值。  

19.06 19.058. 19.06 18.681. 18.31. 18.31. 18.308.
19.446 19.446 19.446 19.059. 18.681. 17.946 17.946
19.059. 19.06 19.059. 18.681. 18.309. 18.31. 18.31.

这是大约3小时内记录的7个错误。 该值为良好读取、错误读取、然后返回良好读取。 这些毛刺脉冲很有趣、因为误差发生在相似的输入值上、而 ADC 毛刺脉冲数次地变为相同的输出值。  

读数如下所示:

我不会绘制每个值、因为它包含大量数据。 在 PID 温度控制环路中使用 ADC 时、干扰会导致严重问题。

是否存在可能导致此问题的特定问题。 在我看来、这似乎是芯片数字部分的一个问题。 SPI 总线看起来很干净。  

SCLK 和数据输出。

SCLK 和 Cs

 `μ A

SCLK 和数据。

如果您想了解解决此问题的方法、请随时联系我们。

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

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

    尊敬的 Antonie:

    您有一些问题:

    • 仅供参考、您尝试发布的图片未包含在您的上一个帖子中。 您能否重新发布此图像?
    • 对于温度测量、是否有任何特定需求需要如此快速(30kSPS)的采样? 如果您以30kSPS 的速率连续采样3小时、则会获得324M 数据点。 降低数据速率会将更多样本平均在一起、从而有可能消除部分或全部干扰并提供更低的噪声。
    • 您使用的是启用还是禁用缓冲器的 ADS1256? 如果 ADC 的输入未缓冲、则10kohm NTC 可能会导致错误。
    • 您是否有用于 ADC 和 VREF 的稳定、低噪声电源?
    • 您是否使用与 ADS1256相同的 VREF 偏置 NTC、例如比例式测量?
    • 您是将 NTC 作为高侧还是低侧(连接到 GND)测量?

    请告诉我。

    布莱恩

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

    这是绘制的读数。

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

    您好 Brian、

    • 仅供参考、您尝试发布的图片未包含在您的上一个帖子中。 您能否重新发布此图像?

      我已经完成了。

    • 对于温度测量、是否有任何特定需求需要如此快速(30kSPS)的采样? 如果您以30kSPS 的速率连续采样3小时、则会获得324M 数据点。 降低数据速率会将更多样本平均在一起、从而有可能消除部分或全部干扰并提供更低的噪声。

      采样率比温度环路所需的快得多。 当一切都完成后、我将把它降低到1000 SPS。 我需要在其他通道上测量一些更快的信号。  

    • 您使用 的是启用 还是禁用缓冲器的 ADS1256? 如果 ADC 的输入未缓冲、则10kohm NTC 可能会导致错误。

      缓冲区当前被禁用。 我将尝试启用此功能。

    • 您是否有用于 ADC 和 VREF 的稳定、低噪声电源?

      5v0由 TPS70950DBVR 提供。 输入端有一个50ohm 电阻器、然后是一个10uF 旁路电容器。 稳压器的输出正常。 该稳压器为另一个小型 DAC 供电、DAC 和 ADC 采用星形连接、并在输入端具有铁氧体、后跟10uF 大容量电容器和 ADC 输入引脚附近较小的100nF 电容器。 使用 LT6657AHMS8-2.5生成 VREF、其良好值为1.5ppm。 使用 opa2277对基准进行滤波和缓冲。 运算放大器的输出为140uF、输出稳定、2v5看起来干净。

    • 您是否使用 与 ADS1256相同的 VREF 偏置 NTC 、例如比例式测量?

      使用精密电流源对 NTC 进行偏置。 精度和温度精度与基准电压的顺序相似。 我在更大的温度范围内使用 NTC。 在30ksps 时、如果我忽略毛刺脉冲、我会在读数上获得超过6位的数字。 我可以使用滤波来消除干扰、 但是、应用的性质和温度 PID 对毛刺脉冲的响应方式意味着在很长一段时间内无法对输出进行检测 SNF 我不想修补问题、然后在长期实验中出现问题。

    • 您是将 NTC 作为高侧还是低侧(连接到 GND)测量?

    NTC 以接地为基准。 在 NTC 上、测量点附近有一个1uF 电容器。 然后、我测量通道 AIN0上的高电压尺寸和 AIN1上的开尔文接地连接。 有一个小型差分滤波器。 与100nF 滤波电容器串联的33欧姆电阻。 我能够在无干扰的情况下测量10k 0.1% 25ppm 电阻器。 测量结果足以测量精密电阻器中的温度变化。 我认为电阻器上没有毛刺的事实是一个红色的错误、因为输出值从读取变化不大、也不会波动。  

    感谢您的快速响应。

    Antonie

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

    Antoine、您好!

    您是否在尖峰期间查看了通信线路、以查看是否存在任何问题? 很难从图中分辨出干扰、但我相信您已经解释过干扰只是一个代码、这样之前和之后的代码都是预期的。 噪声是否有任何方式耦合到通信线路中? 或者、ADC 和 MCU 之间是否存在通信错误、例如在错误的时间读取数据、从而导致干扰?

    此外、您能否澄清一下、精密电阻器没有产生任何干扰、但热敏电阻确实产生了干扰? 我认为这是你在最后一段中所说的话,但我想加以确认。 如果是、测试期间热敏电阻暴露在哪个温度范围内? 您使用什么电流对其进行偏置? 如果热敏电阻只是处于或接近标称温度、我不会期望它的电阻变化很大。 实际上、在这三个小时内、输出电压摆幅仅为2mV。

    对于未来的项目、使用具有电压输出的 ADC 来偏置热敏电阻可能更有意义(假设您可以使用恒定电压源而不是恒定电流)。 ADS1256的下一代版本是 ADS1261、它具有此功能(VREF 输出)。 这样、VREF 电压的任何变化都可以在测量和基准中均等地看到、这样可以抵消(比例式)。

    布莱恩

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

    你(们)好,Bryan

    这是周末的读数。 干扰发生在多个 ADC 值处。 图表中不清楚、但发生这种情况的值始终处于相同的水平。 输出将干扰到输入之前曾干扰过的数字。 例如、从18.681跳到19.059、然后立即返回到18.681。 然后、它从18.31到18.681进行毛刺脉冲、然后立即返回到18.31。 这种趋势是一致的、可以预测何时会发生这些误差。  以下是有关干扰的典型数字:

    16.896、16.896、16.896、17.24、 16.896、  16.896、16.896

    16.896、16.895、 17.24、16.896、16.896

    17.239 17.239 17.239 17.239 17.239 17.239 17.239 17.239 17.239 17.239 17.239 17.239 17.239 16.896 16.896 17.896 17.241 16.896 17.24 16.898 17.24 17.588 17.24 17.239 17.239 17.239 17.239 17.239 17.239 17.239 17.238 17.238 17.238 17.238 17.238 17.238 17.238 17.238 17.238 17.238

    多个读取值可能会出现毛刺脉冲、并且可以像最后一行中那样向上或向下移动。 它移动到、向上或向下的数字是另一个数字、您将在该数字周围发现毛刺脉冲。 对于最后一行、在干扰发生之前进行了250次读取、结果都很好、平均值为17.232、标准差为0.00418、 我会延长运行时间、但室温会发生变化、因此我不想用真实趋势影响标准。

    它们位于中间的仪表组附近。  

    为了更清楚地说明、这里是一组最终的读取值、这些值发生在图形中的读取开始处

    17.591 17.592 17.591 17.591 17.591 17.591 17.591 17.591 17.591 17.591 17.591 17.591 17.591 17.591 17.591 17.591 17.59 17.59 17.946 17.589 17.589 17.589 17.589 17.589 17.589 17.589 17.589 17. 17.589 17.24 17.59 17.59 17.591 17.592 17.594 17.593 17.594 17.595 17.597

    17.24是前一行中发生毛刺脉冲的数字。

    电流源噪声与基准电压相关、噪声读数不会成为问题、我对此进行了相当仔细的研究。  

    例如、在+- 18度时、信噪比非常高、我可以提供几个额外的数字、而不会出现任何问题。 此端口上的 NTC 将在70至180度范围内使用、当 NTC 在较低采样率下降低了2个阶幅时、我可以在120度处保持读数的相同精度。 偏置电流为166uA。  

    我将以 DN 形式读取这些值、并查看是否可以在出现问题的实际数字中找到趋势。 由于错误是可预测的、我可以在错误发生时获取数字读数、但我不认为它会告诉我任何信息、尽管如此、我将尝试设置此测量以检查问题是否可能在 SPI 总线上发生。

    我现在可以肯定的是、这不是模拟噪声问题、使用一个 bang bang、我可以将烤箱保持在100 +/- 0.01摄氏度、这非常好、PID 不能处理干扰。 我将研究如何执行从 DN 到温度的传递函数、以确保这不是问题的根源。  

    精密电阻器将无限期读取相同的值、但这只是因为它不在发生毛刺脉冲的字中。

    谢谢。

    Antonie

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

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

    抱歉、它会一直很难粘贴图像

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

    尊敬的 Antonie:

    原始 ADC 代码是否也表现出这种行为? 还是仅计算出的值?

    布莱恩

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

    您好、Bryan、

    我现在要研究的是、我不是为这个项目执行代码、而是只执行硬件。  我怀疑这可能是问题的根源。 我将尽快以原始 DN 形式读取这些值。

    此致、

    Antonie

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

    您好、Bryan、

    我更仔细地研究了这个问题、输出的底部16位将返回全0或全1、仅围绕特定的 ADC 代码字。

    但是、我确实认为这与 ISR 响应 DRDY 信号所需的时间有关。 我相信这个问题会很快得到解决。  

    感谢你能抽出时间。

    此致、

    Antonie

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

    尊敬的 Antonie:

    听起来不错、我很高兴您缩小了问题的根源。 如果您需要更多帮助、请告诉我。 如果还有其他挑战、请随时开始新的主题。

    布莱恩

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

    我有一个类似的问题、我想知道您是否已经解决了信号上的尖峰?  

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

    您好 Bart、

    是的、所有问题均已解决。 在 USB 和一些 UART 事务处理期间、我们没有足够快地为这种单调的服务提供服务。  序列发生器上的稳定时间也会受到源阻抗的影响。 内部缓冲器对此有所帮助。

    此致、

    Antonie

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

    尊敬的 Antonie:

    感谢您的回复! 但我不确定我是否理解您的回答正确。

    您说:"服务速度不够快"、这意味着在单调低时读取24位数据的速度不够快?  
    因为我找不到数据读取的第一个时钟脉冲与 ddy 变为低电平之间的最长时间?

    再次感谢。

    BART

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

    数据速率由 DRATE 寄存器设置。 它不是 ddy HIGH 之间的时钟电平计时、它是在下一个转换周期开始更新之前为 ddy 命令提供服务所需的相当大的延迟。 这导致了可预测的毛刺脉冲。 未使用模拟缓冲器时会产生额外的噪声、但这大约为几十微伏。

    问题在数据中很明显。 前8位将是正确的、接下来的16或8将是全0或全1。

    但愿这对您有所帮助。