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.

[参考译文] ADS7142:如何转换 i2c 读取结果的原始 ADC 值

Guru**** 2537290 points
Other Parts Discussed in Thread: ADS7142

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/873099/ads7142-how-to-translate-the-raw-adc-value-from-the-i2c-read-result

器件型号:ADS7142

你(们)好  

现在、我们可以从通道 AIN0或 AIN1:中读取原始值

值= ads7142_i2c_read (REG_ACC_CH0_MSB);
值<<= 8;
value |= ads7142_i2c_read (REG_ACC_CH0_LSB);
返回值;

如果原始值可以直接用作 ADC 结果而不对其进行任何修改?

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

    您好!

    作为调试建议、 使用已知的直流值并将测量的 ADC 值与已知的直流输入进行比较。 这将有助于确认您正在从正确的通道读取正确的数据。

    按原样使用器件的原始数据取决于您的系统以及固件的设置方式。 如果您的系统可以通过分析原始数据来支持他们所需的任务、那么您可以继续进行

    但是、如果您的系统需要使用测量数据的电压值、那么您需要使用 数据表中的等式1来找到系统的 LSB 值     (LSB = FSR/(2^12)

    然后 获取该值、并将其乘以 ADC 输出数据的十进制等效值。

    此致

    Cynthia

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

    你(们)好   

    感谢您的建议,现在我们使用高精度模式( LSB = FSR/(2^N),我们使用 N=16。  FSR 为1.8V。  我们根据 ADC 值计算输出电压。 但电压值与输入电压有误差 。

    我们如何纠正它?

    例如:我们得到的原始值为27619,  计算得出的电压值为 27619/65535 *1.8= 0.785v。而我们测量的输入值为0.805v

    谢谢  

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

    您好!

    该器件的高精度模式仍使用12位测量、然后获取 其中的16个测量值并将其平均在一起。

    这可以有效 地为 您提供使用 N=16的 LSB 大小

    另 请注意、在此模式下、数据从累加器数据寄存器而非数据缓冲器中读取

    由于需要收集16个样本、因此使用此模式还会降低新有效数据可用的频率。 在数据表的第39页   上可以找到高精度模式部分。    24页的数据表中还有关于累加器的公式、用于计算高精度数据。

    如果输入源不稳定或不干净、则连续样本的平均值可能反映出与输入的瞬时测量值不同的结果。 但您似乎确实在正确计算它。 我建议使用干净、稳定的直流电源、并在转换期间对其进行监控、以查看其是否在移动。  请记住、16位器件的 LSB 为微伏、因此输入在相同范围内的移动将影响 ADC 测量。 在16位测量中、它不必是很大的变化

    此致

    Cynthia