I2C на ESP32 или Arduino: какое максимальное количество ведомых устройств, использующих датчик BMP388 - PullRequest
0 голосов
/ 04 октября 2019

BMP388: каково максимальное количество подчиненных адресов в режиме I2C

В режиме I2C с одним мастером, сколько BMP388 в качестве подчиненного может быть подключено к Arduino UNO? Из таблицы данных я понимаю, что в режиме I2C возможно только 2 адреса (0x76 или 0x77), которые обозначены битом 7 в адресе устройства и настроены через порт SDO (контакт 5) на массу или плюс. В режиме SPI, как я надеюсь понять из таблицы данных, это до 128 адресов BMP388.

Мои вопросы: -Я хорошо понимаю, что в режиме I2C максимальное количество ведомых устройств равно двум? -Конечно, я могу подключить множество BMP388 последовательно к Arduino, но как я могу адресовать их в режиме I2C. Или я должен использовать режим SPI? Есть ли какая-либо документация, кроме таблицы, которая проясняет это? -Есть ли пример кода Arduino для ситуации с I2C?

1 Ответ

0 голосов
/ 07 октября 2019

Вы правильно поняли адресацию i2c. Для BMP388 может быть только 2 адреса, управляемых выводом SDO в режиме i2c.

Если вы хотите использовать более 2 модулей BMP388 с одним микроконтроллером, используйте SPI. Для управления выводом Slave Select можно использовать столько же модулей BMP388, сколько имеется выводов GPIO на микроконтроллере.

Это пример из библиотеки Adafruit BMPxxx .

Вот здесь Постоянная ссылка на строку , где вы можете передать Slave Select (CS) каждого устройства каждому уникальному объекту.

Позже в коде вы можете использовать каждый объект библиотеки Adafruit BMPxxx для получениячтения.

...