在Armbian上从i2c 2读取BME680

时间:2019-07-03 20:09:11

标签: python c i2c armbian

我正在尝试在BananaPI + Armbian 5.65上使用BME680传感器,并在同一i2c上使用TSL 2651,但是没有运气。 (仅供参考,同样的配置也无法在RPi上运行)

单独连接时,传感器可以工作,但与TSL连接时则不能,同时在BME后面连接时,TSL可以正常工作。

已连接::板-> BME680-> TSL2561

我可以到达TSL,所以BME是清醒的并且可以到达,因为TSL必须通过BME。

i2cdetect可以看到他们两个,所以从系统角度看对我来说没问题

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

我正在将Bosh Driver与此最初用于RPI的.c https://github.com/twartzek/bme680-raspberry一起使用,但由于BananaPi M1在i2c /引脚排列等方面完全相同。我认为它应该可以工作。 单独连接BME时,相同的代码也可以工作。

但是连接在一起的接口只会返回

**** BME680 start measurements  ****
user_i2c_write: No such device or address

我怀疑只是意味着它无法在i2c-2(0x77)上看到设备,但系统可以看到。

我已经编辑了bme680_main.c,因此它使用的是BME680_I2C_ADDR_SECONDARY和g_i2cFid = open(“ / dev / i2c-2”,O_RDWR);

不太确定如何从这里继续进行;) 任何帮助/提示将不胜感激。

谢谢

1 个答案:

答案 0 :(得分:0)

因此,我尝试将地址从0x77更改为0x76,它可以按预期工作。不知道为什么,但是SECONDARY似乎有一个问题,从系统角度看还可以,但是传感器不可见。物理连接传感器以使用0x76(从SDO到GND)并相应地更改代码后,它就可以工作。