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.

[参考译文] ADS1220:AD 负载电池平衡问题

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

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1224341/ads1220-problems-ads-load-cell-balance

器件型号:ADS1220

大家好!
我有一个问题与广告1220和一个负载单元。

我有一个组装电路板、带有2个单独的广告、可以处理左侧和右侧两个测压元件。

这些广告由与 Adafruit 的 SPI 连接进行管理

我遇到的问题是、当我打开设备时、没有明显的原因、其中一个称重传感器停止进行测量。

为了再次进行测量、我必须关闭并再次打开设备。

我将把 AD 和称重传感器数据附加到 PCB 图上。

非常感谢您的帮助。

称重传感器  

技术规格

范围: 100、 150、 200、 250、 300、  350、 500 (千克)

精度: C2.

温度 影响跨度(%F.S/10℃):±0.02

综合错误(%F.S): ±0.02

温度 对零的℃(%F.S/10 μ s):±0.03.

额定输出(MV/v): 2.0±0.1.

补偿温度 范围(℃ ):-10~+40

蠕变(%F.S/30min):±0.02

使用温度 范围(℃ ):-20~+60

零平衡(%F.S):±1.0

励磁电压(V): 9~12(DC)

Ω 电阻(0 Ω): 405±10.

安全过载(%F.S):120

Ω 电阻(Δ R ): 350±3.

极限过载(%F.S):150

绝缘电阻(MΩ Ω):≥5000(100Vdc)

防护等级:IP65

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

    尊敬的 

    您能解释一下以下问题吗?

    1. 当您打开设备电源时、ADC 是没有立即工作、还是工作了一段时间后停止工作?  
    2. 当您说"停止进行测量"时、您是说没有来自 ADC 的可用/DRDY 信号、还是始终得到恒定数据(无变化)?
    3. 该现象是否总是在特定器件(U1或 U2)上发生?

    谢谢。

    此致、

    戴尔

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

    尊敬的 

    还有一个 问题、您是否对内部寄存器进行了写入、以便关闭 AIN3/REFN1和 AVSS 之间的切换、同时选择了不是默认输入通道的正确输入通道(AIN1和 AIN2)?

    此外、您能否在下面的原理图中说明以红色突出显示的以下连接?

    谢谢、此致(&R)、

    戴尔

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

    你好! 感谢您的提示回复。

    我将按顺序回答您提出的问题。

     

    1. 当您打开设备电源时、ADC 是没有立即工作、还是工作了一段时间后停止工作?  

     R: 这是相对的、有时您打开设备、只有一个称重传感器工作、有时两个传感器都工作、一个传感器会停止工作。

    当您说"停止进行测量"时、您是说没有来自 ADC 的可用/DRDY 信号、还是始终得到恒定数据(无变化)?

    R: 我对这一点不是很确定,此时我应该连接一个逻辑分析仪并等待故障发生,看看在 DRDY 发生了什么..
    当我说它停止接收数据时,我的意思是,在 Arduino IDE 的串行监视器中,电池不进行测量,而另一个电池继续进行测量。  

    3 该现象是否总是在特定器件(U1或 U2)上发生?

    R:

    重复一下前面回答中所说的内容、会发生什么情况

    开启设备后、只有1节电池间接工作、即 U1或 U2。

    您可能会打开设备、但两个电池都无法正常工作。

    这种情况下两个电池都能正常工作、而且没有原因1或两个电池都能停止工作。

    若要再次进行测量、需要重新启动设备。

    但是、即使有时重新启动并不意味着它们会起作用、但很多时候需要多次重新启动。

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

    还有一个 问题、您是否对内部寄存器进行了写入、以便关闭 AIN3/REFN1和 AVSS 之间的切换、同时选择了不是默认输入通道的正确输入通道(AIN1和 AIN2)?

    R: 我不确定我是否这样做了。
    如果您以编程方式告诉我、我不确定我是否有正确的代码可以做到这一点。
    可能是编程中加载的 ADS 库中。
    您能参考一个示例吗?  

    此外、您能否在下面的原理图中说明以红色突出显示的以下连接?

    您向我询问的红色连接是桥接连接,即这三条 ADS 轨道连接在一起。  

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

    其他要考虑的数据。
    我从 Adafruit 将数据接收到 ADS 的频率是1kHz。

    图中所示的 ADS 从 Adafruit 内部稳压器的输出端输入3.3伏电压。

    我不知道这是否重要、因为负载单元显示输出电压为9至12V 直流、并由3.3V 馈电。

    另一个问题。
    是否内部 REFN1开关被贴现、这就是 ADS 关闭并停止读取的原因。

    AIN 1是否可与 REFP0和 REFN0一起使用?

    如数据表示例图中所示的电容器的缺失可能会影响其运行。

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

    还有一个 问题、您是否对内部寄存器进行了写入、以便关闭 AIN3/REFN1和 AVSS 之间的切换、同时选择了不是默认输入通道的正确输入通道(AIN1和 AIN2)?

    我不知道这段代码是否足够了  

    void ADS1220::setPowerSwitch (uint8_t value){
    /*配置 AIN3/REFN1和 AVSS 之间低侧开关的行为。
    0 -始终打开
    1 -发送 START/SYNC 命令后自动关闭、打开时间
    出现问题。
    */
    //确保值在有效范围内。 否则设置为0x00
    如果(值> 0x01){
    值= 0x00;
    }
    value = value << 3;//移位以匹配掩码
    writeRegisterMasked (value、REG_MASK_PWR_SWITCH、CONFIG_REG2_ADDRESS);
    }

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

    尊敬的 Federico:

    为了清楚地说明这些 问题、请让我将我的问题与您的答案和您的后续问题分开、如下所示:

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

    DL:2 -当您说"停止进行测量"时、您是说没有来自 ADC 的可用/DRDY 信号、还是始终得到恒定数据(无变化)?

    R: 我对这一点不是很确定,此时我应该连接一个逻辑分析仪并等待故障发生,看看在 DRDY 发生了什么..
    当我说它停止接收数据时,我的意思是,在 Arduino IDE 的串行监视器中,电池不进行测量,而另一个电池继续进行测量。  

    DL: 很难只检查 Arduino 的串行监视器进行调试。  作为第一步、我建议使用逻辑分析仪或示波器来检查您仅使用一个 ADC 的时序。

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

    DL:3 该现象是否总是发生在特定器件(U1或 U2)上?

    R: 重复前面的回答中所说的一点,所发生的是这样的

    开启设备后、只有1节电池间接工作、即 U1或 U2。

    您可能会打开设备、但两个电池都无法正常工作。

    这种情况下两个电池都能正常工作、而且没有原因1或两个电池都能停止工作。

    若要再次进行测量、需要重新启动设备。

    但是、即使有时重新启动并不意味着它们会起作用、但很多时候需要多次重新启动。

    DL:  您的 ADC 电源是什么? 请确保您的电源电路能够为这些器件提供足够的电源。  

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

    DL:还有一个 问题、您是否写入了内部寄存器以关闭 AIN3/REFN1和 AVSS 之间的切换并选择了不是默认输入通道的正确输入通道(AIN1和 AIN2)?

    R: 我不确定我是否这样做了。
    如果您以编程方式告诉我、我不确定我是否有正确的代码可以做到这一点。
    可能是编程中加载的 ADS 库中。
    您能参考一个示例吗?  

    DL:我建议您开发自己的代码、而不是使用可能未经验证和完全测试的库、这样您将更好地了解问题的原因。 如果不正确地对内部寄存器进行编程和配置 ADC、就无法从 ADC 获取任何数据。 例如、您的输入通道对(AIN1和 AIN2) 不是默认的输入通道、因此您必须在内部配置寄存器0中选择它们。

       您可以在页面底部的链接中看到示例代码:  ADS1x20示例代码

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

    DL: 另外、您能否在下面以红色突出显示的原理图中阐明您的以下连接?

    R: 您向我询问的红色连接是桥接连接,即这三个 ADS 轨道连接在一起

    DL:您的原理图中的这些连接上似乎没有点、您可以检查它们在实际电路板上是否连接良好。  

    -------------------------------------------------------
    R:我从 Adafruit 将数据采集到 ADS 的频率是1kHz。

    图中所示的 ADS 从 Adafruit 内部稳压器的输出端输入3.3伏电压。

    我不知道这是否重要、因为负载单元显示输出电压为9至12V 直流、并由3.3V 馈电。

    另一个问题。
    是否内部 REFN1开关被贴现、这就是 ADS 关闭并停止读取的原因。

    AIN 1是否可与 REFP0和 REFN0一起使用?

    如数据表示例图中所示的电容器的缺失可能会影响其运行。

    DL:我不确定您是否使用默认的20sps 数据速率。 如果要将器件配置为更高的数据速率、则需要快速 SCLK 频率来检索数据。

        我建议您或者在外部 施加已知的直流信号或配置内部寄存器来选择内部测试信号(((AVDD+AVSS)/2或(AVDD-AVSS)/4)、而不是使用称重传感器进行测试、然后可以检查您的代码是否与直流输入信号相匹配。

       对您的问题的回答:  

       a:低侧电源开关是为桥接应用而设计和使用的。 只要您具有适当的配置(输入通道和基准选择)、它就不会影响 ADC 的操作和数据转换。

       B.该 ADC 的输入配置非常灵活、 可与 REFP0和 REFN0上的外部基准搭配使用、也可使用内部基准进行测试、从而确保 ADC 操作和时序正确。 请注意、应在配置寄存器0中选择和配置一个输入对、在您的情况下、都应选择 AIN1和 AIN2。

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

    DL:还有一个 问题、您是否写入了内部寄存器以关闭 AIN3/REFN1和 AVSS 之间的切换并选择了不是默认输入通道的正确输入通道(AIN1和 AIN2)?

    R:我不知道此代码是否足够...

    DL:我不知道 writeRegisterMask()函数是如何工作的。 再说一次、 我建议您开发自己的代码、而不使用未经验证和完全测试的库。

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

    此致、

    戴尔