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.

[参考译文] ADS112C04:了解内部温度传感器的结果

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1430621/ads112c04-understanding-the-result-of-internal-temperature-sensor

器件型号:ADS112C04

工具与软件:

我们得到了一个定制板、其中两个 ADS112C04连接到同一 I2C 总线(地址0x40和0x45)。 现在、我们并不是真正了解其中任何一个结果、因此我们认为应该退一步尝试先读取内部温度传感器。

目前、我们正在 Linux shell 中执行所有操作:

adr=0x45

# reset
i2cset -y 0 $adr 0x06 c

# Reg [0] will be ignored anyway
#i2cset -y 0 $adr 0x40 0x00 b

# Reg [1] - Continuous conversion mode and temperature sensor
i2cset -y 0 $adr 0x44 0x09 b

# Reg [2] - Data counter and integrity check with inverted data output
i2cset -y 0 $adr 0x48 0x50 b

# Reg [3] - no IDAC
#i2cset -y 0 $adr 0x4c 0x00 b

# print out all configuration registers
i2cdump -y -r 0x20-0x2F 0 $adr

# start
i2cset -y 0 $adr 0x08 c

# poll results
watch -n1 i2cget -y 0 $adr 0x10 i 6

i2cdump 会输出这些值、因此我们确保寄存器的写入正确。 为了进一步测试此情况、我们启用/禁用数据计数器、并且 RDATA 中的字节数随之改变。

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
20: 00 00 00 00 09 09 09 09 50 50 50 50 00 00 00 00    ....????PPPP....

读取 RDATA 的结果为

0xfd 0x0c 0x97 0x02 0xf3 0x68

[0]是数据计数器、[3]是反向值。 它一直向上计数、这正是我们所期望的。

[1]/[2]是温度传感器值、[4]/[5]是反向值。

我们在理解的问题是、0x0c97为(根据表13)一个100.7摄氏度。 我们可以触摸 IC、它肯定没有那么热。

所以,我们显然在做一些错误的事情,但我们不知道什么。 有人能给我们一个线索,我们的错误可能是什么?

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

    Daniel、您好!

    温度数据表示为14位有效结果、与16位转换结果左对齐。 当读取这两个数据字节、前14位(MSB)用于指示温度测量结果。 数据输出的 LSB 不指示温度。 只有14个 MSB 是相关的。 一个14位 LSB 等于0.03125°C

    数据表的"8.3.10温度传感器"部分指定了该值。

    Unknown 说:
    我们理解的问题是、0x0c97 (根据表13)的值是100.7摄氏度。 我们可以触摸 IC、它绝对不是那么热。

    这意味着对于0x0C97的结果(二进制0000 1100 1001 0111)、只有前14位用于温度转换(二进制 0000 1100 1001 01)。

    这转换为十进制代码为"805"(而不是使用所有16位时的"3223")。

    805 * 0.03125°C = 25.156°C

    此致、

    天使

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

    哦,那是一个愚蠢的错误。 非常感谢您指出这一点。

    此致、

    Daniel