Спасение контроллеров дело рук самих контроллеров. Эта схема для исправления не правильно зашитых фузов ATTINY2313 (хотя наверное можно перепрограммировать и другие AVR, у них команды схожи) использует режим параллельного программирования. МК восстанавливает заводские установки, а главное бит SPIEN, включается внутренний генератор, и снова можно использовать последовательный программатор, я использую USB на atmega8. Скорость его надо уменьшить, т.е. замкнуть вывод 14 ( PB0 ) через резистор 300 ом на корпус. Повышенная скорость видимо предназначена для программирования МК вставляемых в панельки находящиеся на плате программатора. У меня ATTINY2313 стоял на макетной плате соединенной проводами( примерно 20см ) с программатором , и при повышенной скорости были ошибки чтения и FLASH и сигнатуры и фузов. Стертая FLASH читалась — частично FFFF , частично 0000 , частично вообще какие — то случайные значения . Было и такое что после первого программирования МК вообще переставал определяться. Как только программатор перевел в режим LOW все ошибки исчезли, конечно при этом увеличилось время записи и чтения. Программа использовалась — СhipBlasterAVR ver 1.12.
Нижеприведенная схема исправляет фузы . Частота кварца особого значения не имеет, может быть и 1мгц и 10 мгц , или внутренний генератор с делением частоты или без . Если нужно исправить только один AVR то он припаивается сверху D1 , отгибаются только некоторые выводы и тонкими проводками соединяются с резисторами . Если несколько AVR то сверху припаивается панелька для 20 выводного корпуса ( хотя панельки не очень надежны ) . Сначала возможно придется подобрать количество диодов для получения напряжения 12в на коллекторе источника тока КТ361 ( 11,5……12,5 ), ток коллектора примерно 10ма ( можно подбирать резистор подключенный к базе ) . При использовании вместо D2 другой МК надо сравнить даташиты ( фузы других AVR совсем другие и бит SPIEN может находиться в другом разряде , тогда придется некоторые строчки прошивки изменить ), хотя и в справочных данных на ATTINY2313 есть ошибки , не правильно указаны номера входов PAGE и BS2 . Приведена также программа ( может кому пригодится ) , временые задержки организованы на программных циклах.
Сначало при подаче одновременно двух напряжений питания ( от одного блока питания ) идет стирание чипа , потом запись старших фузов далее младших , светодиод должен три раза мигнуть ( tи = 1мс при кварце 8 мгц , т. е. три раза приходит сигнал ответа RDY/BSY ) . Питание должно включаться одновременно ( нужен БП который выдает и + 5V и + 15V ) , далее МК делает набольшую задержку потом устанавливается 0 на выв. R , потом + 12в ……. и т.д.
Если после восстановления фузов будет перепрограммирован генератор с внутреннего на внешний кварц (с помощью СhipBlasterAVR ) то avr перестает определяться (сигнатура не будет читаться ) пока не будет подпаян внешний кварц .
Похожие схемы есть на греческом http://www.serasidis.gr и на немецком http://www.dl5neg.de на AVR AT90S1200, но там без обратной связи с вывода RDY/BSY ( R/B ).
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот |
---|---|---|---|---|---|---|
D1, D2 | МК AVR 8-бит | ATtiny2313 | 2 | Одна из них нуждается в исправлении фузов | ||
Биполярный транзистор | КТ315А | 1 | ||||
Биполярный транзистор | КТ361А | 1 | ||||
Стабилитрон | Д814Г | 1 | ||||
Диод | КД522Б | 2 | ||||
Резистор | 330 Ом | 1 | ||||
Резистор | 1 кОм | 3 | ||||
Резистор | 10 кОм | 1 | ||||
Резистор | 22 кОм | 1 | ||||
Резистор | 150 кОм | 1 | ||||
Кварцевый резонатор | 1 МГц или 10 МГц | 1 | ||||
Светодиод | 1 | |||||