我试图在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
答案 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 写入,就会抛出错误。
所以,有时是身体原因。检查地线;)