• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Подключение i2c к ESP8266

ask1

Member
Обнаружил, что в разных проектах бывает разное подключение, хотя SDA и SCL на ESP8266 довольно отчетливо прописаны в многочисленных пинаутах, доступных в интернете.
Например, на NodeMCU v3 предлагается подключать к RX и TX (которые GPIO3 и GPIO1) сегментный экран на TM1637.
А на плате Wemod D1 Mini SDA и SCL соответствтуют пинам D1 и D2, которые выводят GPIO4 и GPIO5.
Поэтому возник вопрос: а это действительно важно, к каким выводам подключать подобные устройства (сегментный экран, датчик давления и т.п.), которые требуют двух проводов для передачи данных?
Или можно выбрать просто удобный вариант, чтобы, допустим, контакты были с одной стороны?
 

ask1

Member
Обе платы так устроены, что 5 вольт и 3.3 вольта находятся с противоположных сторон, а значит, в некоторых вариантах исполнения, будет удобно сделать БП с одной стороны, а датчики подключить с другой.
 

FatMan

New member
У ESP8266 нет аппаратной реализации I2C, потому для подключения шины I2C можно использовать почти любую пару выводов GPIO, кроме GPIO16 и, пожалуй, тех, конфигурация которых влияет на запуск. GPIO4/GPIO5 - вполне подходящая пара выводов, не "обременённая" особыми функциями. Если эти выводы не используются как-то особо, о почему бы их не использовать для I2C?

У меня был случай, когда на подключенное по I2C периферийное устройство подали 12 вольт вместо штатных 5, в результате GPIO4 залип в вечное то ли LOW, то ли HIGH. Я просто в программе указал какой-то другой порт для SDA - и проблема решена.
 

BlueBeard

Member
в dataset на ESP-12 прописано что для I2C рекомендуются выводы IO2 (SDA) / IO14 (CLK)
eee.jpg

по личному опыту на выше названных ногах меньше "подвисаний" шины
 

ask1

Member
ESP-12 не подходит. Неожиданный GPIO14 не получается использовать в ESP-01, а в Wemos D1 Mini и NodeMCU v3 бывает удобно подключать контакты с одной стороны платы.
 
Сверху Снизу