• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

i2c

ddv

New member
Всем привет! вот уже пару недель не могу победить одну проблему...
Исходные данные:
ESP-01 в качестве мастера, Arduino Pro Mini в качестве слейва.
Мастер опрашивает достаточно часто (20 раз в секунду)
Примерно после 4-6 часов передача данных затывается.
Отладка через свободные UART в консоль.
что выяснено (что происходит после затыка):
1) оба MCU работают (на записли, loop() дергается итп.).
2) мастер при опросе получает 0 данных (у меня передача строк. строка 0 длинны)
3) на строне слейва void receiveEvent(int howMany) не вызывается...
4) после харварного перезапуска одного из MCU - передача возобновляется.

Итого:
Как можно переинициализировать передачу данных?
Какие есть способы для отладки?

Осцилографа нету :(
Возможно слейв занал линию?
Натыкался на статьи для PIC-ов. Там как-то хитро выключали "аппаратный" I2c и программно "выгребали" данные

Вот мой код:
для AVR https://github.com/ddv/hydroponics/blob/master/src/avr_hydro/avr_hydro.cpp
для ESP https://github.com/ddv/hydroponics/blob/master/src/esp8266_hydro/esp8266_hydro.cpp
 
Сверху Снизу