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.

[参考译文] ADS114S08:当重复测量完成(数据未稳定?)时、发生错误的电压测量(随机)

Guru**** 2390735 points
Other Parts Discussed in Thread: ADS114S08

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1112225/ads114s08-wrong-voltage-measurement-occurs-random-when-repetitive-measurement-is-done-data-not-settled

器件型号:ADS114S08

您好!

我使用 ADS114S08执行电压测量。 3电压连接到 AIN0、AIN1、AIN2、GND 连接到 AINCOM。 3个电压是固定的且稳定的、每5秒采集3个通道。 时间到一个通道上发生不良测量且 ADC 返回的值等于5V 或0V 时的时间。

ADC 的连接方式如下:

使用以下序列:

----------------------------------------

ADC 复位(复位命令)

等待2ms

输出数据速率设置为60sps (数据速率寄存器)

选择低延迟滤波器(数据速率寄存器)

启动环路

        选择 ADC 通道 AIN1和 AINCOM (INPMUX 寄存器)

        开始转换(开始转换命令)

        等待100ms

        读取数据寄存器(读取数据寄存器命令)

        停止转换(停止转换命令)

        选择 ADC 通道 AIN2和 AINCOM (INPMUX 寄存器)

        开始转换(开始转换命令)

        等待100ms

        读取数据寄存器(读取数据寄存器命令)

        停止转换(停止转换命令)

        选择 ADC 通道 AIN3和 AINCOM (INPMUX 寄存器)

        开始转换(开始转换命令)

        等待100ms

        读取数据寄存器(读取数据寄存器命令)

        停止转换(停止转换命令)

        等待5s

环路结束

------------------------------------

我已经尝试了应用手册"计算 Δ-Σ ADC 的转换延迟和系统周期时间"中所示的一些线索、但没有成功。

你有什么建议吗?

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

    尊敬的 Thomas:

    欢迎来到 E2E 论坛!  

    • 这是否是您可能使用试验电路板的原型设计情况?  
    • 您是否有任何输入滤波器?  
    • 施加的电压是多少?  
    • 您是否在所有输入通道上都看到这种随机结果、或者在一个特定输入上是否经常重复这种结果?
    • 您能否共享所有输入配置寄存器设置?
    • 您使用的 SCLK 速度是多少?

    由于您只是使用计时器来确定转换何时完成、因此完全有可能其中一条命令未正确通信。  您是否有可以共享的示波器或逻辑分析仪通信画面?  我将验证是否正确发送了 RDATA 命令  

    您可以使用连续转换模式简化通信、并且只在序列开始时发送开始信号、在结束时发送停止 信号。每次更改多路复用器设置时、转换将自动重新开始。  您还可以尝试将 RDATA 命令两次作为调试步骤来回发送。

    此致、

    Bob B

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

    尊敬的 Bob:

    感谢您的支持。 在下面查找您的问题的答案:

    事实上、我们的系统更复杂、我们使用5个 ADS114S08、2个用于温度测量(差分、4线)、使用 ADC 的内部电流源、3个用于电压测量单端。 我们注意到了所有 ADC 和测量类型上的问题。 因此、为了隔离问题、我们返回到一个简化的试验电路板(我上一篇文章的原理图)来重现问题。 对于操作板和试验电路板、行为是相同的。

    - ADC 输入端没有输入滤波器。

    - V1=1.66V、V2=0V、V3=2.47V。

    随机结果主要发生在 V2上,返回的值为5V 而不是预期的0V。

    -数据速率= 00010110和 REF=00111010,所有其他寄存器都是默认值。

    - SPI 连接的 SCLK 设置为10MHz,我尝试将速度降低至10kHz,而不会对问题产生任何影响。

    我没有示波器或逻辑分析仪快照、但我可以在必要时生成它们。 我已经使用连续转换模式、并且我只在程序开始时尝试启动转换、这对问题没有影响。

    此致

    Thomas

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

    尊敬的 Thomas:

    您能否以十六进制值共享作为 ADC 原始数据输出返回的数据?  您正在进行单端测量、但输出代码是二进制补码。  换句话说、无论输入是单端输入、ADC 始终以差分方式进行测量。  读取0V 电平时、可能会返回0xFFFF、该值不是满量程的、而是十进制代码中的-1值。

    查看每个输入电压的原始输出代码(无计算值)将帮助我确定是否存在特定的异常。

    此致、

    Bob B

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

    Bob、您好!

    在下方可找到 ADC 返回的原始数据

    V1=1.65V -> 0x54BC

    V2=0V -> 0x0000 (正常时)和0xFFFF (正常时、5V)

    V3=2.47V -> 0x7E8D

    我在 V2=2.2V 而不是0V 的情况下进行了一些测试、结果随机较少、但问题仍然存在。

    感谢你的帮助。

    Thomas

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

    尊敬的 Thomas:

    在这里可以看到一系列逻辑分析仪数据、尤其是在您认为出现故障的时间点。  正如我在上一篇文章中提到的、0xFFFF 不是5V、因为输出采用二进制补码。  0xFFFF 是一个低于0的代码、它不是满量程。  

    实际上、您仅使用满量程范围(FSR)的1/2、这是 FSR 的正极部分(0至2.5V)。  正极部分为0至0x7FFF (32767十进制)。  负满量程为0x8000 (-32768)、0xFFFF 为-1。  因此、您需要正确转换这些值。  当您看到0xFFFF 时、这是接地下方的一个代码或76uV。  这可能是由 ADC 中的负偏移、接地反弹或系统噪声引起的。

    因此 、我确实需要更多的数据来完全了解您的系统中可能发生的情况、而不是只在0V 输入时看到0xFFFF。

    此致、

    Bob B

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

    尊敬的 Bob:

    您说得对、部分随机结果是由于我的翻译错误造成的。 我没有考虑 满量程范围(FSR)的1/2。 我已经修改了我的代码并将 V2设置为2.2V 而不是0V。 现在、随机结果在3个 ADC 输入上平均分布。 一旦我获得逻辑分析仪、我将为您提供 SPI 通信的屏幕截图。 如果问题来自 SPI 通信、您认为使用 CRC 字节是否有帮助?

    此致

    Thomas

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

    尊敬的 Thomas:

    您的流程相对简单、应该没有沟通问题。  尽管如此,可能存在与边际条件有关的问题。  例如、10MHz SCLK 是 ADS114S08允许的最大频率。  此外、您应该根据第7.6节中给出的有关时序特性的信息来验证 SCLK 没有占空比问题。  还要注意 CS 变为低电平与 SCLK 的第一个上升沿以及 SCLK 的最后一个下降沿到 CS 上升沿之间所需的最短时间。

    CRC 可以是读取数据时的一个有用工具、但您需要处理代码中数据的 CRC 值、并与传输的 CRC 进行比较以验证结果是否有效。

    我还会验证代码中使用的计时器的计时是否正确处理计时器中断、并且不会被另一个具有更高优先级的中断所取代。

    总体而言、一旦发现所发生事件的真实性质、问题就可以解决。

    此致、

    Bob B

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

    尊敬的 Bob:

    请查找随附的 SPI 通信范围截屏。 我已将 CLK 降低至1MHz。 随附的屏幕截图显示了 DEV_ID 寄存器的读取。

    根据 ADC 数据表第7.7章的图1、测量了以下时序:

    - TD (CSSC)= 10.76µs μ F

    - TD (SCCS)= 45.1µs μ F

    - TH (DI)= 500ns

    tsu (DI)= 500ns

    Overview

    如果您需要进一步的示波器屏幕截图、请告诉我。

    此致

    Thomas

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

    尊敬的 Thomas:

    计时似乎正确。  在示波器截图中、您发出的是 RREG 命令、该命令实际上是一个两字节命令。  第3个字节是返回的数据、但传输了另一个第4个字节。

    您的第一个字节为0x20、该字节正在通信以发出从寄存器0开始的寄存器读取。  第二个字节是指要读回的寄存器的数量、发送的是0x00、这意味着读取一个寄存器。  发送的第3个字节为 NULL、但 ADC 返回0x0C、该字节的 ID 位为 ADS114S08设置。

    不清楚为什么传输额外的第4个字节。

    读取数据时、您是使用 RDATA 命令还是直接通过发送 SCLK 读取转换数据?  是否在通信之间切换 CS?

    同样、查看逻辑分析仪的通信非常有用、因为这将显示您的完整通信序列。  此外、当预期值为随机值时、查看返回的原始代码(十六进制)值也会很有帮助。  有时随机值可以显示为来自预期数据的位移、其中 SCLK 干扰会意外地移动数据输出。

    此致、

    Bob B

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

    Bob、您好!

    我正在使用 RDATA 命令、并在通信之间切换 CS。

    我在 SPI 通信方面没有发现任何东西。 我返回到仅监控一个通道的基本设置。 当我向该通道施加固定电压(1.5V)时、测量结果始终良好、我使用以下寄存器值在2小时内进行了测试:

    REF 寄存器= 0x1A

    -INPMUX 寄存器=0x0C

    -datarate 寄存器= 0x04

    当我施加1V 至2V 的三角电压并持续10s 时、ADC 会提供1V-2V 范围以外的值、在10分钟内至少为31次。 与上述寄存器配置相同。

    我还尝试执行与评估板的电压测量脚本相同的序列、但结果仍然不佳。

    我卡住了、可能我错过了一些显而易见的东西。

    此致、Thomas。

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

    尊敬的 Thomas:

    您能否验证 PGA 寄存器的增益设置?  您仍在使用试验电路板设置吗?  您是否可以将整个数据集作为文件发送给我?  这将有助于我确定数据中是否存在位移。

    此致、

    Bob B