i2cdump有效,但不是i2cget

时间:2015-02-26 19:04:10

标签: raspberry-pi i2c

我试图在Raspberry Pi上使用BMP180而不是i2c。

我检测到芯片。我可以拿一个i2cdump,但我不能读出一个字节。

知道我做错了吗?

打印出来:

$ sudo i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- 77

$ sudo i2cdump -y 1 0x77
No size specified (using byte-data access)
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: XX XX XX XX XX 00 XX 00 XX XX XX 00 XX XX 00 XX    XXXXX.X.XXX.XX.X
10: 00 XX XX 00 XX XX 00 XX 00 XX 00 XX 00 XX 00 XX    .XX.XX.X.X.X.X.X
20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
80: a5 94 48 09 2a 27 78 7b 8a 7e 1f 05 fb b0 c7 c2    ??H?*'x{?~??????
90: 82 18 63 d2 4c b8 19 73 00 28 80 00 d1 f6 09 b2    ??c?L??s.(?.????
a0: a5 94 48 09 2a 27 78 7b 8a 7e 1f 05 fb b0 c7 c2    ??H?*'x{?~??????
b0: 82 18 63 d2 4c b8 19 73 00 28 80 00 d1 f6 09 b2    ??c?L??s.(?.????
c0: 00 00 bc 33 00 00 00 00 00 00 00 10 00 00 00 03    ..?3.......?...?
d0: 55 02 06 00 00 00 00 00 00 00 00 00 00 00 00 00    U??.............
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
f0: 00 00 00 00 00 00 80 00 00 00 00 00 00 00 00 00    ......?.........

$ sudo i2cget -y 1 0x77 0xd0
Error: Read failed

2 个答案:

答案 0 :(得分:2)

首先必须设置控制寄存器。 对于BME280(我认为BME180是相同的),必须写:

$ i2cset -y 1 0x76 0xF2 0x01
$ i2cset -y 1 0x76 0xF4 0x25
$ i2cdump -y -r 0xF7-0xFE 1 0x76 c
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
f0:                      6d 72 00 86 68 00 59 bb              mr.?h.Y? 

前2个写入将过采样x1设置为所有通道。 第二个还会开始一次转换。

答案 1 :(得分:0)

我和我的 MPU-9250 完全一样。首先,我想像 F Corthay 一样,我需要先写,将传感器设置为“开”和“听”。但是,通常,在我的另一个 Raspberry 上,它无需此准备步骤即可工作。 我确实尝试过,但我也遇到了写入错误。

最后......结果是GROUND线滑落了。这很奇怪,因为 i2cdump 仍在工作,但是一旦我想使用 i2cget 读取特定寄存器或尝试使用 i2cset 写入,就会抛出错误。

所以,有时是身体原因。检查地线;)

相关问题