Была у меня тема в старом форуме. Тогда проблему удалось частитчно решить. Что не решилось, вновь попробую спросить.
Проблемы стабильности подлючения I2C на относительно длинном проводе. ESP32, Датчик VL53L0X на прводе ок 150см 24AWG с экраном. Хотя экран добавляет емкости к линии, без него хуже. Подтягивающие резисторы стоят. Вобщем работает, но через несколько часов работы связь пропадает, и перезагрузка ESP32 не помогает. Помогает только физическое переподоключение разъема провода.
Вставил в 60см от ESP I2C репитер PCA9515A. Толком ничего не изменилось. Только переподключать провод надо теперь именно между репитером и ESP.
Пробовал уменьшить емкость линии, подлючил с помощью телефонного провода (30 AWG?), не работает вообще.
Встречал упоминания, что у некоторых I2C работает на нескольких метрах. Так что 60см много, но должно быть реально.
Что еще можно предпринять?
Взять измерительное оборудование, отладчик, прочитать учебник, и диагностировать проблему, вместо того, чтобы наугад тыкать разные провода, может быть?
Попробовать припаять…
а вот это решение не устроит отца русской демократии… и спрошу …а подключаете как, сколько пар используете?
Спасибо, надо попробовать, если более простых решений не будет. Я правильно понял даташит, кроме подтягивающих резисторов к этой микрухе ничего не нужно?
В смысле, сколько пар? Четыре провода Vcc, Gnd, Scl, Sda. Экран к земле.
гальванически развязанный буфер I2C я где-то на старом форуме приводил.
ага ну вот, Двунаправленный изолятор I2C ISO1540
на али есть в виде микрух и в виде модулей
Вы SDA-SCL по одной витой паре пускаете?
Да. По одной.
ну так и не должно как-бы работать, одна вход, другая выход…каждый сигнал в своей паре, второй провод на землю, по ёмкости это пикушек 100 не более получится, подтягивать на стороне ESP 1.5 - 2 ком, сигнал сброса можно подтянуть на девайсе (10 ком) как-то так
То есть три пары надо вести с учетом питания?
по стандарту каждый сигнал требует своей земли, сброс можно кинуть в паре с VCC всё одно к питанию тянем, а вот если после этого не заработает…хотя не может такого быть …
выходит да
Сорри, а какой сигнал сброса? На датчике нет такого пина.
фото датчика в студию, обязан быть…
Там еще только gpio1 и xshut. Я их не подключал.
xshut это как раз и есть резет, должен быть подтянут к питанию через 10ком, gpio1 можно оставить открытым, но при инициализации снаружи надо резетить миллисекунд на 50 наверное, точно не вспомню надо открыть даташит…
ЗЫ можно наверно трёхножку на сей пин поставить, раньше на 51 и 52 контроллере так цепь резета делалась тогда один провод может быть не нужен
Я так понимаю, на модуле уже есть встроенная подтяжка. И управлять этим пином мне никчему.
вы библиотекой какой пользуетесь или как?
ESPHome прошит на ESP32.
для работы с датчиком