Чтение BME680 из i2c 2 на Armbian - PullRequest
2 голосов
/ 03 июля 2019

Я пытаюсь использовать датчик BME680 на BananaPI + Armbian 5.65 вместе с TSL 2651 на том же i2c, но не повезло. (для справки, та же самая конфигурация также не работает на RPi)

Датчик, когда он подключен один, работает, но подключен вместе с TSL, его нет, в то же время TSL работает просто отлично, если подключен за BME.

Подключено :: плата -> 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 вместе с этим .c https://github.com/twartzek/bme680-raspberry, который изначально был для RPI, но BananaPi M1 точно такой же с точки зрения i2c / pinouts и т. Д. Я думаю, он должен работать. Этот же код, когда 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 голосов
/ 07 июля 2019

Итак, я попытался изменить адрес с 0x77 на 0x76, и он работает как положено.Не знаю почему, но похоже, что есть проблема с SECONDARY, которая с точки зрения системы выглядит нормально, но датчик невидим.Когда датчик физически подключен для использования 0x76 (SDO - GND) и код изменяется соответствующим образом, он работает.

...