Часто в моей практике при программировании микроконтроллеров ATtiny13, которые часто использую, возникали ситуации, когда микроконтроллер толи из-за программ или неправильных ошибочных действий при программировании «самоблокируется» и отказывается программироваться повторно в ISP-режиме. Насколько я понял, подобная проблема волновала не только меня. И изучив статьи по ссылкам, я понял что надо попробовать собрать подобное устройство, которое бы возвращало залоченный микроконтроллер к жизни. Потому, как держать STK500 наготове и доставать его всякий раз для таких случаев не всегда удобно.
Выход из ситуации один, перепрограммировать его программатором, восстановив заводские настройки в режиме высоковольтного параллельного программирования, в так называемом H/V режиме. Данного режима нет у простых программаторов, которыми в большинстве пользуются начинающие радиолюбители осваивающие работу с микроконтроллерами AVR.
Какой выход? Купить новый программатор, где есть такой режим? - это дополнительные денежные затраты. Изготовить программатор с возможностью программирования в H/V режиме? - тоже можно, но это снова дополнительное время. Есть ещё один путь, - изготовить небольшое устройство на микроконтроллере, которое будет записывать в «заблокированный» микроконтроллер изначальные заводские настройки.
Не надо даже компьютер запускать для перепрограммирования, достаточно «заблокированный» чип воткнуть в панельку, нажать кнопку «восстановить», после чего мигнёт светодиод и через секунду всё! Микроконтроллер вернули к жизни.
Почитав статьи, на эту злободневную тему, написанную теми, кто уже сталкивался с таким явлением, я решил собрать подобное устройство и проверить его работу. Кое-что изменил в схеме, так как мне хотелось бы, кое-что упростил и вот, что у меня получилось:
Микроконтроллер U1 берёт на себя задачу по реанимации «убитого» микроконтроллера. Вставляем в панельку повреждённую микросхему, включаем питание блока питания ATX, который я счёл удобным использовать для данного модуля, поскольку там есть два напряжения: +5 в и +12 в, что требуется нам для питания данной схемы, оснастил схему ответной частью разъёма от блока питания ATX для удобства.
После подачи питания, микроконтроллер загружает в повреждённый микроконтроллер, начальные заводские установки, по сути применяя то же самое высоковольтное параллельное программирование, цикл записи осуществляется за интервал около секунды, о чём свидетельствует зажигание светодиода схемы в момент подачи напряжения на реанимируемый микроконтроллер. После того, как светодиод погас, нужно выключить питание, и вытащить реанимированную микросхему, теперь уже способную к полноценному программированию.
С 3-й ноги микросхемы U1 подаётся импульс определённой длительности, который открывает транзисторные ключи, подавая в этот период напряжение на реанимируемый микроконтроллер U2 (+12 в на 1-ю ножку - Reset и одновременно подаёт +5 в на 8-ю ногу - Vcc). А так же одновременно по другим выводам параллельно передаётся на запись из U1 в U2 информация изначальных заводских настроек. После окончания этого цикла светодиод гаснет, что говорит о том, что процесс реанимации закончен и можно выключить питание, извлечь восстановленную микросхему.
Подобное устройство я собрал и испытал, сознательно загоняя «подопытный» экземпляр - микроконтроллер ATtiny13 в «нежелательные» режимы, приводящие к последствиям, после которых он отказывался повторно программироваться ISP-программаторами (STK200, AVR ISP mkII и т.п.). Посредством данного реаниматора возвращал его к жизни.
Транзистор Q1 n-p-n структуры, из отечественных, можно применить КТ315. Q2, Q3 p-n-p, можно применить КТ361
Принципиальную схему, прошивку микроконтроллера, как выставить фьюзы при программировании (тактовая частота 4,8 МГц) для микроконтроллера ATtiny13, выполняющего роль реаниматора, (по схемному обозначению U1) прилагаю.
Скачать прошивку и принципиальную схему
Ссылки:
http://www.elektroda.pl/rtvforum/topic1085881.html
http://www.edunet.souepl.cz/~weisz/dokuwiki/doku.php?id=mikroprocesory:attiny12:resetator
http://elm-chan.org/works/avrx/report_e.html
печатная плата
http://www.getzilla.net/files/262618/reanimator.lay.html
Науменко Владимир, vladimir@radioded.ru
г. Калининград