Добрый день!
Очень хочется сделать устройство, а Attiny85 через сутки перестает слышать запросы по I2C от ESP. (Я пробовал заменить ESP на Atmega32u4 - не помогло. Делаю вывод, что дело в Attiny85).
Attiny85 работает - именно он будит ESP8266 через каждые 30 мин и ожидает команды по i2c. Пробуждение происходит, а связь по i2c через 30-40 часов пропадает.
Я компилировал проект в PlatformIO. Пробовал компилировать в Arduino IDE с этим ядром:
https://github.com/SpenceKonde/ATTinyCore - тоже не работает.
Код:
https://github.com/dontsovcmc/ImpCounter/tr...er/ImpCounter85Attiny85 раз в 4 раза в секунду опрашивает 2 входа, засыпая между опросами.
Раз в 1 минуту она пишет значения счетчиков в буфер 100 байт.
Раз в 30 минут Attiny измеряет напряжение питания, включает i2c Slave и подает импульс на Reset ESP
ESP отправляет команды, опрашивая Attiny85. Как прочитает заголовок + буфер, то отправляет команду на сон и сам засыпает.
Проблема:
Я не знаю, что за ядро использую, не знаю опции компиляции, фьюзы.
Я плохо понимаю, хватает ли памяти, стека моей программе.
Возможные шаги:
1. Сравнить не только ядра библиотек, но и фьюзы с работающими в интернете проектами =)
2. Расставить логирование во всех ответвлениях программы и смотреть ,вдруг они сработали
3. Попробовать другую библиотеку i2c
4. Попробовать не i2c, а SoftwareSerial
5. Показать код специалисту (анекдот про ДНК не вспоминать!)
6. Запустить код в симуляторе
7. Узнать, поможет ли debugWire и купить Atmel-ICE (+научиться с ним работать)
8. Cменить Attiny85 на более пафосные STM и т.п.
9. Изучить книжку по программированию микроконтроллеров и отрастить бороду.
Уважаемые специалисты, по какому пути пойти для устранения неисправности?
Какую диагностику мне еще под силам сделать? (как узнать, хватает ли памяти, регистры "возвращаются ли на свои места")