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.

[参考译文] ADS1015:不准确,不断增加信号

Guru**** 2527810 points
Other Parts Discussed in Thread: ADS1015

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/664007/ads1015-inaccuracy-with-a-constantly-ramping-signal

部件号:ADS1015

ADS1015 (使用ADS1015 EVM)
ATSAMG55处理器

在TI的帮助下,我成功解决了与此ADC通信的许多问题。  这项工作已使其达到预期目的,即定期读取集成商发出的不断增加的信号。

斜坡速率相当低,在大约15秒内从0V移动到250V。  斜面非常呈线性。  它在每个转换点增加。

我已经构建了一些测试代码,通过TWI发送以下内容:

0xCF00的配置寄存器写入:

1100 1111 0000 0000
1:开始单次转换
100:选择通道:100:AINP = AIN0,AINN = GND
111:FSR =±0.256 V
1:  单影像模式
000:128秒(不适用)
0:传统比较器(不适用)
0:比较器极性(不适用)
0:比较器闩锁(不适用)
00:比较器队列(不适用)

我假定,如果我将1写入位15,加上配置寄存器的所有其他设置位,设备将读取配置寄存器设置,应用它们,然后进行转换。  数据表并未明确说明这种情况,但这似乎是一种合理的假设。  即使情况并非如此,我的测试代码的每个周期都发送相同的配置寄存器字节,因此我不认为这是一个因素。

我已经过了强力的尝试,在转换命令和读取命令之间设置了500毫秒的延迟。

奇怪的是,我已经研究了几周的原始问题是,尽管输入引脚上应用了直流电压值,但一些转换寄存器读数实际上低于以前的寄存器读数。

我已确认这不是事实,将数据记录到Keithley 2000 DMM中。

我认为通过构建我的测试代码(它消除了大量的应用程序支持,只发送"基本" I2C命令),我将获得良好的数据。

这一个尤其令人沮丧!

下面是转换寄存器的转储和每个转换寄存器的浮点结果。箭头指向其值令人费解地下降的记录。

当然我的I2C命令有一些不好的地方...或计时...或两者都有。  但我似乎不知道是什么。


[06][c0] 0.1.35万
[05][b0] 0.1.1375万 <=
[0A][f0] 0.2.1875万
[10][d0] 0.3.3625万
[0E][f0] 0.2.9875万  <=
[1A][20] 0.5.225万
[16][90] 0.4.5125万  <=
[1F][90] 0.6.3125万
[20][d0] 0.6.5625万
[23][10] 0.7.0125万
[2B][b0] 0.8.7375万
[28][20] 0.8.025万  <=
[33][30] 0.10.2375万
[31][30] 0.9.8375万  <=
[37][90] 0.11.1125万
[3c][20] 0.12.025万
[3b][10] 0.11.8125万  <=
[45][e0] 0.13.975万
[42][30] 0.13.2375万
[4B][50] 0.15.0625万
[4C][a0] 0.15.325万
[4e][90] 0.15.7125万
[57][90] 0.17.5125万
[53][e0] 0.16.775万  <=
[5e][80] 0.18.9万
[5D][80] 0.18.7万  <=
[62][40] 0.19.65万
[68][f0] 0.20.9875万
[66][50] 0.20.4625万
[71][70] 0.22.6875万
[6e][f0] 0.22.1875万  <=
[75][f0] 0.23.5875万
[7A][30] 0.24.4375万   
[79][60] 0.24.275万   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我再看一次原始数据(直流电压)以确定...但如果我的配置或方法中有问题,这将有助于了解。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好,k1mgy,

    ADS1015EVM可能有也可能没有输入滤波器,具体取决于电路板版本。 如果您正在使用的EVM没有输入RC滤波器,则这将是早期版本的电路板,并且可能会遇到一些混叠。 如果您正在使用的EVM具有输入滤波器(J1接头直接连接(无滤波器)或通过滤波器连接到ADS1015),这一点应该非常明显。

    如果EVM没有任何RC滤波,我建议在您的斜坡发生器和ADS1015之间添加RC低通滤波器。 您必须确保低通滤波器符合您的斜坡速率。

    另一个注意事项是使用逻辑分析器查看数据,以验证从ADS1015传输的数据是否与您的微系统显示的数据相同。 I2C信号可能会有一些噪音或延迟。

    我看到的另一件事是一些微外围设备将有一个缓冲区,例如FIFO或LIFO。 如果您的数据被缓冲,则需要确保以正确的顺序读取。 这里,逻辑分析器可以再次显示数据是否匹配。

    此致,
    Bob B
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    除了示意图,我没有给董事会特别的关注。 我的主板有R10-R17和C7-10。 这些电阻器与每个ADC输入线路串联,并且电阻盖横跨线路对。 在这里添加过滤器非常简单。 感谢您的想法。 太糟糕了,但原理图上没有这一点。 也许有一个版本的EVM文档涵盖了我的主板,但我找不到它。

    混叠是否是数据中显示偏差的原因? 在某些情况下,会显示几毫伏。 斜坡价格是“邪恶的”,很慢:)

    我正在使用ScanaQuad协议分析器工具捕获I2C信号。 做得不错。 幸运的是,这条路非常简单。 I2C数据和时钟直接连接到微控制器(Atmel G55J19)上的引脚。 对于任何缓冲,偏斜结果都符合这一理论,但我的测量缓慢爬行。 相距500ms。

    我不会再检查信号,而是构建一个简单的R-C坡道生成器,并将其馈入并查看我获得的信息。 我确信我的信号很好,但无论如何可能会把它搞砸...特别是在另一个漫长的一天之后。

    谢谢,我会在这里报告我的发现。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    嗯,我会为此而吊死的。 :)

    我建造了一个非常粗糙的坡道发电机,包括一个1.865万锂离子电池,10M串联,500uf到GND。 它的速率与ADC要采样的仪器一致。

    我看到了无抖动的完美样品。 因此,我之前的测试(在DMM中采样)没有捕捉到抖动。

    回到我的系统,我现在怀疑一个或两个+-15V导轨为我的前置放大器(为ADC供电)供电。

    虚假警报,但你提出了很好的改进建议。

    再次感谢。