• Система автоматизации с открытым исходным кодом на базе 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
 
Сверху Снизу