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**** 2516170 points


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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/925172/ads1015-the-question-about-converting-register-value

器件型号:ADS1015

大家好、

目前、客户可以通过 I2C 读取转换寄存器中的值

然后、转换寄存器的值应该参考电压、对吧

如果是电压、如何将该值转换为实际电压? (当前配置寄存器中的设置值为8483)。


假设读取的值为 F48 ((0xF48-0x800)/4096)*4.096V (+/-2.048v)= 1.864v,但该值与实际测量值不同,因此他们希望询问正确的算法。

谢谢

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

    Paul


    如果配置寄存器设置为8483、则输入范围为+/-2.048V。 我们可以从这开始。

    ADC 输出为12位、转换寄存器为16位宽。 最后四个位为零、您将使用12个最高有效位作为数据转换。 数据也被放入二进制补码符号中、以便表示负值。

    这是我计算值的方法。 如果该值大于2^11或7FF、则该值为负、我将从12位数中减去0x1000。 然后、我将乘以正满量程范围、然后将其除以2^11。

    在您的0xF48示例中、这个数字是-184
    因此转换值为-184*2.048/2^11=-0.184V

    您可以在 Excel 中执行此操作:

    将其放入 B2中:
    =if (HEX2DEC (A1)>(2^11-1)、((HEX2DEC (A1)-2^12)* 2.048/2^11)、(HEX2DEC (A1)* 2.048/2^11))

    然后将 F48放入 A1。 您应该能够通过更改 A1的内容来进行所需的所有转换。


    吴约瑟

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

    您好 Joseph  

    实际电压-0.184V 是否意味着 AIN0和 AIN1之间的差异?

    目前、我使用的两个输入分别为 AIN0和 AIN1。  

    根据配置寄存器设置为0x8483、输入将为 AINP = AIN0、AINN = AIN1。

    我猜 实际电压 -0.184V 是 AIN0和 AIN1之间的差值、对吧?

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

    您好!

    是的、没错。 当配置寄存器设置为0x8483时、这会将器件编程 为以下设置:

    启动单次转换(处于断电状态时)
    AINP = AIN0且 AINN = AIN1 (默认值)
    FSR =±2.048V (默认值)
    连续转换模式
    1600SPS (默认值)

    ADC 测量来自 AINP-AINN 的电压、因此这将是 AIN0到 AIN1的差值。

    吴约瑟