Исправление фузов AVR

Биты и байтыУстройстваМикроконтроллеры → Исправление фузов AVR
Спасение контроллеров дело рук самих контроллеров. Эта схема для исправления не правильно зашитых фузов 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 перестает определяться (сигнатура не будет читаться ) пока не будет подпаян внешний кварц .

Исправление фузов AVR

Похожие схемы есть на греческом http://www.serasidis.gr и на немецком http://www.dl5neg.de на AVR AT90S1200, но там без обратной связи с вывода RDY/BSY ( R/B ).