1,4K подписчиков

Как восстановить фьюзы на микроконтроллерах ATtiny13/25/45/85?

1,4K прочитали

Здравствуйте, уважаемые читатели! В данной статье я расскажу о простом способе восстановления фьюзов на микроконтроллерах AVR ATtiny13/25/45/85. На макетной плате мы соберем простой высоковольтный программатор и с помощью специального скетча, вернем фьюзы микроконтроллера к заводским установкам. Данный способ будет полезен, если в следствие изменения некоторых фьюзов (например, SPIEN или RSTDISBL), микроконтроллер оказался заблокирован для прошивки классическим способом, с помощью ISP -программатора.

В прошлой статье (Что такое фьюзы? Как работать с фьюзами на микроконтроллерах AVR) я рассказывал, как используя ISP -программатор, в роли которого у нас выступала Arduino UNO , можно менять фьюз биты на микроконтроллерах AVR. И приводил пример для микроконтроллера ATtiny13. В примере, первый пин, который связан с RESET , мы превращали в обычный порт ввода-вывода. Но после данного изменения, микроконтроллер теряет возможность прошивки при помощи ISP -программатора .

В данной статье, я возьму тот же заблокированный микроконтроллер ATtiny13, и на его примере покажу, как можно сбросить фьюзы на значение по умолчанию, тем самым вернув возможность загрузки скетчей с помощью ISP -программатора. Так же приведу пример для ATtiny85.

Схема высоковольтного программатора для восстановления фьюзов

Ниже размещена схема высоковольтного программатора для восстановления фьюзов на микроконтроллерах ATtiny13/25/45/85. С небольшими видоизменениями данная схема подойдет и для других микроконтроллеров AVR. Но об этом в следующих статьях.

В данной статье я расскажу о простом способе восстановления фьюзов на микроконтроллерах AVR ATtiny13/25/45/85.

Важным элементом схемы является биполярный транзистор, который и позволит нам с помощью управляющего сигнала с 13 пина Ардуино подать напряжение 12 В на пин PB5, т.е. как раз на пин, связанный с RESET . Здесь на схеме указан транзистор BC 547, но можно использовать любой другой транзистор, с похожими характеристиками.

В данной статье я расскажу о простом способе восстановления фьюзов на микроконтроллерах AVR ATtiny13/25/45/85.-2

Напряжение в 12 В - это именно то напряжение (если точнее в интервале от 11,5 В до 12,5 В), которое переводит микроконтроллер в режим высоковольтного программирования, в котором обращаясь к конкретным адресам памяти, где хранятся фьюз биты, мы произведем их перезапись.

В данной статье я расскажу о простом способе восстановления фьюзов на микроконтроллерах AVR ATtiny13/25/45/85.-3

И так, для создания высоковольтного программатора, нам понадобятся:

1. Биполярный транзистор . Я взял BC337-40.

2. 6 резисторов по 1кОм.

3. Провода .

4. Макетная плата .

5. И собственно Arduino UNO .

Если собрать приведенную выше схему на макетной плате, то выглядеть она будет так:

В данной статье я расскажу о простом способе восстановления фьюзов на микроконтроллерах AVR ATtiny13/25/45/85.-4

Важный момент схемы состоит в том, что необходимые для сброса фьюзов 12 вольт мы будем брать не со стороны, а получим от Arduino UNO. На плате Arduino UNO есть разъем для подключения внешнего питания. Вот сюда и подключим блок питания на 12 В.

В данной статье я расскажу о простом способе восстановления фьюзов на микроконтроллерах AVR ATtiny13/25/45/85.-5

Скетч для восстановления фьюзов на микроконтроллерах ATtiny13/25/45/85

Переходим к скетчу. Оригинал взял на Гитхабе (оригинал - https://gist.github.com/OsciX/13f58774cb0eb24b7a734c4152830a62 ) и немного видоизменил под свои нужды. Ссылка на скетч будет в конце статьи.

В данной статье я расскажу о простом способе восстановления фьюзов на микроконтроллерах AVR ATtiny13/25/45/85.-6

Загружаем скетч в Ардуино. Открываем Монитор порта . Появляется информация с выбором микроконтроллера. Нажимаем 2 – ATtiny13 .

И собственно всё, программа сбрасывает фьюзы микроконтроллера, на те, что заданы для него по умолчанию (см Калькулятор фьюзов из предыдущей статьи). Вначале выводятся те фьюзы, что были заданы у микроконтроллера, а после обновленные фьюз байты.

В данной статье я расскажу о простом способе восстановления фьюзов на микроконтроллерах AVR ATtiny13/25/45/85.-7

И мы снова можем спокойно прошивать микроконтроллер с помощью ISP-программатора.

Точно таким же способом можно восстановить фьюзы на микроконтроллере ATtiny 85 . Только установив микроконтроллер на макетную плату, снова запустив скетч и открыв Монитор порта, нужно выбрать пункт 3 – ATtiny25/45/85 и нажать Enter . Фьюз биты у данной группы микроконтроллеров одинаковые.

В данной статье я расскажу о простом способе восстановления фьюзов на микроконтроллерах AVR ATtiny13/25/45/85.-8

Для тех, кто часто сталкивается с задачей восстановления фьюзов, можно распаять данную схему на плате, либо создать универсальный восстановитель фьюзов ("доктор фьюзов" / "fuse doctor"). В этой статье, мне хотелось показать именно самый простой способ создания высоковольтного программатора на макетной плате, который можно собрать за 5 минут на макетной плате.

Скетч для восстановления фьюзов из данной статьи - https://disk.yandex.ru/d/pYi9rLxGBsC_Aw

Видео по материалам статьи:

_________________________________________________________

Спасибо, что дочитали до конца! Если статья понравилась, нажмите, пожалуйста, соответствующую кнопку. Если интересна тематика электроники и различных электронных самоделок, подписывайтесь на канал. До встречи в новых статьях!

Другие публикации по теме: