与MCP9880进行i2C通信的奇怪读数

时间:2015-08-31 07:45:36

标签: i2c

这将是我第一次提问。首先,我只是一名程序员,我对电子产品知之甚少。

我试图通过i2c与MCP9880温度传感器进行通信,但我在'真实'之间得到了奇怪的读数,输出看起来像这样(十进制):

0 29
255 255
128 0
0 29
255 255
255 255

这里'真实'讲座将是128 0,但通常我会得到0xff或0x1D,你可以看到。这会发生在读取任何寄存器此外,其他i2c设备正在按预期工作,但我们尝试的许多MCP9808保持相同的行为。这是我用来读取温度寄存器的代码(在bascom中,我被迫使用它:()

I2cstart                         'StartI2C.
I2cwbyte Wr_sensor1              'MCP9808 addr.
I2cwbyte &H05                    'Temperature register

I2cstart                         'StartsI2C.
I2cwbyte Rd_sensor1              'MCP9808 addr
I2crbyte Temp_1621 , Ack         'Read first byte
I2crbyte Temp_1621_dec , Nack    'Read second byte
I2cstop

地址被检查并且正确,我认为代码应该是正确的。我一直说这是一个电子问题,但一直说他们检查过,一切都很好。

提前致谢。

PS:这是数据表http://ww1.microchip.com/downloads/en/DeviceDoc/25095A.pdf

的链接

1 个答案:

答案 0 :(得分:0)

好的,我找到了答案。进行进一步的测试,设备就像是一直重置自己一样。我怀疑微小的电压下降,所以我研究了这个话题,插上了一个电容器,就是这样!

我希望这可以帮助某人:)