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.

[参考译文] ADS1115:ADS1115单端模式下的波动和失调电压误差。

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1441558/ads1115-fluctuations-and-offset-errors-in-single-ended-mode-with-ads1115

器件型号:ADS1115
主题中讨论的其他器件: ADS1220ADS131M02

工具与软件:

您好!

我目前使用的是 ADS1115 ADC 和 STM32f4、 在我的项目中使用 CT 传感器测量交流负载上的电流变化。 使用单端模式时、我遇到 ADC 读数波动、但在差分模式下读数是稳定的。 下面是我的配置和问题的详细信息:

配置:
 
我需要在连续模式下运行 ADC、而不是在单次模式下运行、因此在 ALERT/READY 引脚中使用转换就绪信号、我正在读取存储在转换寄存器中的值。 根据数据表中的信息、我将 High_THRESHOLD 寄存器 MSB 设置为1 (我写入的值为0x8000)、将低阈值寄存器 MSB 设置为0 (我写入该寄存器的值为0x0000)

  1. ADS1115设置

    • OS 位: 0 (未在进行转换)
    • MUX[14:12]
      • 对于差分模式(我使用以下内容进行了检查):  
        • 001:AINP=AIN0、AINN=AIN3
        • 010:AINP=AIN1、AINN=AIN3
        • 011:AINP = AIN2、AINN = AIN3
      • 对于单端模式:
        • 100:AINP=AIN0、AINN=GND
        • 101:AINP=AIN1、AINN=GND
        • 110:AINP=AIN2、AINN=GND
        • 111:AINP=AIN3, AINN=GND
    • FSR : 用2.048V 和4.096V 校验、用于转换 ADC 值的公式为: 电压 =((ADC_value * FSR * 1000)/ 32768);
    • 数据速率 :128SPS
    • 比较器模式 :零
    • 比较器极性 :一个
    • COMP_QUE :设置为00 (无比较器)
  2. "Hardware Setup"

    • VDD :5V 连接至 ADS1115
    • 接地 :所有组件(ADS1115、STM32微控制器和分压器)之间的共同接地
    • 用于测试的输入电压 : STM32微控制器的3.3V 电压,使用分压电路(两个电阻,每个1kΩ)降压至1.651V。
    • 测试信号 :使用万用表验证输入电压为1.651V。

观察结果:

  1. 单端模式下的波动

    • 向输入(AIN0)施加1.651V 电压时、会观察到 ADC 读数的波动。 这些值不是恒定的、在不同的时间在1.601V、1.624V 和1.532V 等范围内变化。 我很难预测变化。
  2. 偏移读数

    • 使用0V 输入检查 ADC 值(测量失调电压)时、会出现负值波动、如-0.101V、-0.92V 和-0.27V、在不同的时间。 这些值是不一致的、因此很难校准失调电压误差。
  3. 差分模式下的稳定读数

    • 当 I 切换到差分模式(AINP = AIN0、AINN = AIN3)时、ADC 显示稳定且正确的读数:施加输入电压时为1.653V、通过连接0V 测量失调电压时为0V。


      问题:

      • 为什么在单端模式下观察到这些波动?
      • 什么可能导致单端模式下的失调电压误差、如何纠正这些误差?
      • 与差分模式下的稳定读数相似、是否有办法稳定单端模式下的 ADC 读数?
      • 如何在应用中添加适当校准的失调电压值?

      非常感谢您提供有关如何解决此问题的任何帮助、建议或指导!

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

    尊敬的 Athulya:

    我会查看一下、明天就给您回帖。

    此致、

    天使

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

    嗨、Angel、

    非常感谢您的及时响应。 期待明天收到您的回复。

    此致、

    Athulya

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

    尊敬的 Athulya:

    您似乎要描述的是交流应用。 ADS1115通常用于测量直流/缓慢移动的信号。

    ADS1115提供的最大输出数据速率为860SPS。 使用可用的最大数据速率、对于60Hz 信号、您在每个周期只能获得大约14个样本的波形。  

    这很可能不足以满足您的应用需求、并且无法很好地重新创建输入信号。  

    您可能需要考虑使用适用于这些类型交流应用的不同 ADC、例如 ADS131M0x 系列器件:

    ADS131M04数据表、产品信息和支持|德州仪器 TI.com

    用于转换 ADC 值的公式为  :(ADC_value * FSR * 1000)/ 32768)

    计算电压值时、将输出代码从二进制转换为十进制、再乘以与 FSR 配置对应的 LSB 大小。

    电压值= ADC_VALUE (十进制)* LSB 大小

    [报价用户 id="632064" url="~/support/data-converters-group/data-converters/f/data-converters-forum/1441558/ads1115-fluctuations-and-offset-errors-in-single-ended-mode-with-ads1115 "] COMP_QUE :设置为00(无比较器)

    "11"将会禁用比较器。 当输出不在 Lo-thresh / Hi_thresh 寄存器设置范围内时、"00"会在一次转换后将 ALERT 引脚置为有效。  

    [报价 userid="632064" url="~/support/data-converters-group/data-converters/f/data-converters-forum/1441558/ads1115-fluctuations-and-offset-errors-in-single-ended-mode-with-ads1115 "]偏移读数

    执行失调电压测量的方法是将输入连接在一起进行差分测量、并将输入短接至 GND 进行单端测量。 这是您要测量失调电压所做的操作、还是输入只是保持悬空?

    [报价 userid="632064" url="~/support/data-converters-group/data-converters/f/data-converters-forum/1441558/ads1115-fluctuations-and-offset-errors-in-single-ended-mode-with-ads1115 "]当我切换到差分模式(AINP = AIN0、AINN = AIN3)时、ADC 显示稳定且正确的读数:施加输入电压时为1.653V[/报价]

    从您的画中可以看出、分压器的输出端连接到 AIN0、但 AIN3似乎保持悬空。 您能说明一下您的不同多路复用器配置的输入引脚上的实际输入电压是多少?

    此致、

    天使

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

    您好、Angel、

    感谢您的答复。

    我正在使用 CT 传感器和电压感应模块(ZMPT101B)与 ADS1115 ADC 测量电流和电压。 我有一些说明和问题、非常感谢您的意见。

    1. 关于50Hz 交流信号的采样速率:
      根据印度标准、交流频率为50Hz。 如果使用 ADS1115时的最大数据速率为860SPS、则每周期可提供17个样本。 据我所知、这可能不足以准确计算 RMS 或其他交流参数。 您能否帮助我了解此采样率是否足够、或者解释为什么它不适合计算准确的值?

    2. 电压转换公式:
      我将使用与所选 FSR 配置相对应的正确 LSB 大小来将 ADC 值转换为电压。

    3. 比较器配置:
      我配置了 COMP_QUE 00因为我不使用窗口比较器功能(高阈值和低阈值寄存器)。 设置的一样 连续模式 、根据我对数据表的理解:

      • 或者会与 COMP_QUE = 00 COMP_POL = 1 时、当转换寄存器中的数据就绪时、ALERT/RDY 引脚变为高电平。
      • 我将高阈值寄存器的 MSB 设置为1、将低阈值寄存器的 MSB 设置为0、确保为我的应用正确配置比较器。
    4. 失调电压计算:
      对于单端配置、将未使用的引脚接地。 对于差分配置、我将输入端连接到相应的模拟引脚、并将 A3接地。 通过此设置、我现在可以获得合理的值。


    但是、我一直坚持以下问题:

    1. 电压和电流 RMS 计算:

      • 我将 CT 传感器连接到 A0、将 ZMPT101B 模块连接到 A1。
      • 在代码中、我首先计算 RMS 电流(根据 A0计算)、然后是 RMS 电压(根据 A1计算)。 起初、这无法正常工作、因为 ADC 仍处于连续模式、我会注意到切换通道时出现的问题。
      • 为了解决此问题、在读取 A1值之前、我通过设置停止了 ADC MODE 用于配置 ADC 的位(第8位) 单次模式 使其处于断电状态。 然后、我将 ADS1115重新配置为连续模式、以从 A1读取。 这种方法可行、但我不确定这是否是处理电压和电流测量的通道切换的有效方法。
    2. 使用 ADS1115进行能量监控:
      虽然我知道 ADS1115可能不是交流信号应用的理想选择、但我现在限制使用此 ADC。 您有什么建议或更有效的方法来计算使用 ADS1115进行能量监控的电压和电流?

    感谢您抽出宝贵的时间提供建议。 如果需要提供更多详细信息、请告知我。

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

    尊敬的 Athulya:

    我将在下周早些时候与您联系。

    此致、

    天使

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

    嗨、Angel、

    感谢您的答复。 我将等待您的回复。

    期待您的反馈。

    此致、
    Athulya

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

    尊敬的 Athulya:  

    最初、由于 ADC 仍处于连续模式、该方法无法正常工作、并且我在切换信道时注意到了问题。

    在多路复用器之间循环时、最好使用单次模式。  主要原因是、在连续模式下运行时、如果已经有正在进行的转换、则在转换结束之前不会进行新配置。  这将需要丢弃多路复用器变化后的下一次转换、以便转换结果对所需的多路复用器输入有效。  这与 ADS1220不同、例如、在 ADS1220中、向寄存器写入新配置时、转换会自动重新启动。 在连续转换模式下切换多路复用器通道时的问题是、更改多路复用器设置后的下一个转换读数可能仍与之前的配置相对应。  

    遗憾的是、对于能源监控、我没有很好的建议、因为此器件不适用于这些类型的应用。 您必须确定每个周期17个样本是否足以计算参数。

    我建议查看 ADS131M02、这款具有较高数据速率的 ADC 更适合这些类型的应用:

    ADS131M02数据表、产品信息和支持|德州仪器 TI.com

    此致、

    天使

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

    嗨、Angel、

    当然、我会和我的管理层讨论这一点。 感谢您的答复和建议!

    谢谢。此致
    Athulya

x 出现错误。请重试或与管理员联系。