ATmega328_UNO Аппаратный watchdog для загрузчика Optiboot

Пользовательские блоки дополняющие набор стандартных блоков
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Ответить
lfgjikjjyj
Лейтенант
Сообщения: 402
Зарегистрирован: 27 мар 2025, 12:13
Имя: Коля
Поблагодарили: 134 раза

ATmega328_UNO Аппаратный watchdog для загрузчика Optiboot

Сообщение lfgjikjjyj »

2026-01-01_113422.png

ATmega328_watchdog_v1.1_(Code_-_Professional).ubi

Для загрузчика Optiboot это для уно, возможно и для олд бутлоадера нестил это некие варианты у нано.
Со старыми загрузчиками не работает улетит в бесконечный ребут придётся вытаскивать сторонним контролером либо обычной прошивалкой.
Аппаратный watchdog при старте самоблокируется на весь период инициализации что бы сетап не ресетил нам его бесконечно.
Как всё завершится, запускается и мониторит луп.

Полная независимость от CPU - работает даже при полном зависании процессора.
Гарантированное срабатывание - сбросит МК, даже если основная программа "умерла".
Низкое энергопотребление - потребляет минимальный ток в режиме ожидания.
Аппаратная защита - не зависит от состояния стека, регистров или памяти.
Имеет собственный тактовый генератор.
Работает даже когда системный тактовый генератор остановлен.

ATmega328_watchdog_v1.0 распологается на первой чистовой плате.

wdt_reset доп блок для обнуленя вачдога.
Полностью перезапускает таймер watchdog.
Ставится в разных частях кода перед сложными длинными участками либо внутри цыклировании участка.
Либо если 2 сек не хватает на всё то можно заранее обнулить как вариант.
Либо если код требует мгновенных реакций а не сидения в зависании то мелкими интервалами обнуления раставляется где надо.

В отличие от флпрог-эмулятора програмного, аппаратный имеет только 10 фиксированных значений времени.
Сам тактовый генератор имеет отклонения небольшие так что время будет находится около заданного.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось lfgjikjjyj 01 янв 2026, 16:26, всего редактировалось 3 раза.
dstrufanov
Сержант
Сообщения: 272
Зарегистрирован: 07 янв 2024, 12:43
Имя: Дмитрий
Благодарил (а): 25 раз
Поблагодарили: 68 раз

Re: ATmega328 Аппаратный watchdog

Сообщение dstrufanov »

lfgjikjjyj писал(а): 01 янв 2026, 08:44 Полная независимость от CPU - работает даже при полном зависании процессора.
???
lfgjikjjyj
Лейтенант
Сообщения: 402
Зарегистрирован: 27 мар 2025, 12:13
Имя: Коля
Поблагодарили: 134 раза

Re: ATmega328 Аппаратный watchdog

Сообщение lfgjikjjyj »

dstrufanov писал(а): 01 янв 2026, 09:41
lfgjikjjyj писал(а): 01 янв 2026, 08:44 Полная независимость от CPU - работает даже при полном зависании процессора.
???
если кпу спит отключен тактовый а вачдог работает то видимо он не зависит от него


кто скачал удалите пока есть нюансы от старых загрузчиков там улетают в бесконечный ребут сами загрузчики

пока на ремонте
lfgjikjjyj
Лейтенант
Сообщения: 402
Зарегистрирован: 27 мар 2025, 12:13
Имя: Коля
Поблагодарили: 134 раза

Re: ATmega328 Аппаратный watchdog

Сообщение lfgjikjjyj »

да всё верно на старье не работает низкий уровень доступа перед сетапом
а вот на новых без проблем отрабатывается имитация зависания

как обойти старый загрузчик пока не понятно там багованая прошивка заводская
загрузчик забирает 1,5сек после подачи питания далее пошла инициализация но у старья после вачдога она не идёт
lfgjikjjyj
Лейтенант
Сообщения: 402
Зарегистрирован: 27 мар 2025, 12:13
Имя: Коля
Поблагодарили: 134 раза

Re: ATmega328 Аппаратный watchdog

Сообщение lfgjikjjyj »

если полистать поиск то оказывается мою проблему ещё 10 лет назад открыли :)
https://github.com/arduino/ArduinoCore-avr/issues/150

это что же получается мировой производитель (уточню далеко не маленький) намеренно-умышленно 10 лет клепает багованые платы и его даже не колышет что в загрузчике надо поменять одну багованую строчку
или куда лучше выпускать промини с загрузчиком от уно что я и делаю при покупке промини меняя загрузчик
lfgjikjjyj
Лейтенант
Сообщения: 402
Зарегистрирован: 27 мар 2025, 12:13
Имя: Коля
Поблагодарили: 134 раза

Re: ATmega328_UNO Аппаратный watchdog для загрузчика Optiboot

Сообщение lfgjikjjyj »

Ну всё, потестил, всё работает.
Теперь со старыми загрузчиками, в общем, никак.
Там, походу, только эмуляцию от FLProg использовать, но она такая... В общем, много случаев было, когда она включена, а МК висит.
Про аппаратную не знаю, потестим, посмотрим.
lfgjikjjyj
Лейтенант
Сообщения: 402
Зарегистрирован: 27 мар 2025, 12:13
Имя: Коля
Поблагодарили: 134 раза

Re: ATmega328_UNO Аппаратный watchdog для загрузчика Optiboot

Сообщение lfgjikjjyj »

если отключить загрузчик фьюзами
и далее заливать код только через исп то можно блок использовать на 328 и 168 без проблем
что так же имеет свои плюсы и порой очень весомые то как вариант когда подаётся питание мк ждёт 1,5сек до старта кода а тебе надо что бы сразу стартовало
или защита от копирования кода забота об интелектуальной собствености
Ответить

Вернуться в «Триггеры, таймеры, счетчики, детекторы сигнала»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей