Восстановление микроконтроллеров. AtMega fusebit doctor - восстанавливаем фьюзы микроконтроллеров


Если Вы довольно продолжительное время работаете с микроконтроллерами, то у Вас наверняка были случаи неправильной прошивки фьюзов(fusebit). Предлагаемое устройство позволяет сбросить фьюзы заблокированного микроконтроллера к заводским настройкам. Конечно, для этих целей можно использовать параллельный программатор, но допустим у меня его нет, а пара заблокированных контроллеров завалялась.

Буквально сегодня утром мы с `ом на работе разблокировали две меги 8 в программаторе chipprog. Казалось на этом можно было и остановиться, но ведь не всегда под рукой оказывается дорогостоящий программатор, а собирать параллельный, для такого одиночного случая, ну совсем не хочется. Тогда я решил поискать простое устройство, способное оживить микроконтроллер в случае неправильной прошивки фьюзов.
Так я и наткнулся на устройство под названием «Atmega fusebit doctor ». Автор – поляк Pawel Kisielewski.

Фьюзы которые могут заблокировать контроллер:
- CKSEL фьюзы выбора задающего генератора (выбран внешний генератор при его отсутствии или выбрана очень маленькая частота внутреннего);
- SPIEN запрет последовательного программирования;
- RSTDISBL использование ножки сброса как дополнительной линии ввода-вывода;
– установленные LOCK биты;
– другие, мешающие последовательному программированию.

Принцип работы устройства:

Подаем на плату 12 вольт, вставляем пациента в панельку, нажимаем кнопку «START» и через доли секунды получаем рабочий микроконтроллер. Для работы устройства нет необходимости подключать его к компьютеру, то есть микросхему можно разблокировать даже в полевых условиях(при наличии 12В ).

При нажатии кнопки «START» устройство всеми силами пытается прочитать сигнатуру микроконтроллера-пациента. После успешного прочтения сигнатуры, по базе определяется тип микроконтроллера и восстанавливаются заводские, для данного микроконтроллера, установки битов. Если сигнатура неизвестна или микроконтроллер выдает ее неверно, то устройство установит биты в состояние, при котором станет возможным последовательное программирование. При восстановлении фьюз бит прошивка микроконтроллера остается нетронутой.
Для случая когда установлены защитные биты, которые препятствуют чтению/записи микроконтроллера на плате есть перемычка «ALLOW ERASE», при замыкании которой устройство полностью «обнулит» микроконтроллер.

Индикация:
Для индикации работы устройства используются два светодиода:
Зелёный – пациент успешно вылечен, фьюз биты восстановлены до заводских. Если микроконтроллер «залочен» (LockBits включены), просто проверяются фьюз биты и если они совпадают с заводскими – загорается зеленый светодиод.
Красный – проблемы с сигнатурой чипа, невозможно прочитать, нет микроконтроллера в панельке или нет такой сигнатуры в базе данных.
Зелёный мигает – сигнатура в порядке, фьюз биты с ошибкой, но исправить их невозможно, так как микроконтроллер «залочен» (LockBits включены), необходимо полное стирание микроконтроллера (нужно установить перемычку для стирания – «ALLOW ERASE»).
Красный мигает – сигнатура в порядке, микроконтроллер «не залочен», но, по какой-то причине, невозможно восстановить фьюз биты.

Если Вы хотите получить более подробную информацию о процессе «лечения» на плате есть выход UART. Отправьте этот сигнал на терминал и получите «распечатку» того, что было сделано.

Установки для терминала:
baudrate: 4800
parity: none
databits: 8
stopbits: 1
handshake: none

На плате установлены три панельки для 20ти, 28ми и 40ка-ногих «пациентов» в dip-корпусах. Если нужно «вылечить» другого «пациента», то на плате предусмотрен разъем для подключения адаптеров с панельками под любой, нужный Вам, микроконтроллер. Устройство поддерживает 106 различных типов микроконтроллеров AVR.

Список поддерживаемых контроллеров(Зелёным отмечены чипы, которые удачно вылечились «доктором»):
1kB:
AT90s1200 , Attiny11, Attiny12, Attiny13/A , Attiny15
2kB:
Attiny2313/A , Attiny24/A, Attiny26 , Attiny261/A, Attiny28, AT90s2333, Attiny22,Attiny25 , AT90s2313 , AT90s2323, AT90s2343
4kB:
Atmega48/A , Atmega48P/PA, Attiny461/A , Attiny43U, Attiny4313, Attiny44/A, Attiny48, AT90s4433, AT90s4414, AT90s4434, Attiny45
8kB:
Atmega8515 , Atmega8535 , Atmega8/A , Atmega88/A , Atmega88P/PA, AT90pwm1, AT90pwm2, AT90pwm2B, AT90pwm3, AT90pwm3B, AT90pwm81, AT90usb82, Attiny84, Attiny85 , Attiny861/A, Attiny87, Attiny88, AT90s8515 , AT90s8535
16kB:
Atmega16/A , Atmega16U2, Atmega16U4, Atmega16M1, Atmega161, Atmega162 , Atmega163, Atmega164A, Atmega164P/PA, Atmega165A/P/PA, Atmega168/A , Atmega168P/PA, Atmega169A/PA, Attiny167, AT90pwm216, AT90pwm316, AT90usb162
32kB:
Atmega32/A , Atmega32C1, Atmega323/A, Atmega32U2, Atmega32U4, Atmega32U6, Atmega32M1, Atmega324A, Atmega324P, Atmega324PA , Atmega325, Atmega3250, Atmega325A/PA, Atmega3250A/PA, Atmega328, Atmega328P , Atmega329, Atmega3290, Atmega329A/PA, Atmega3290A/PA, AT90can32
64kB:
Atmega64/A, Atmega64C1, Atmega64M1, Atmega649, Atmega6490, Atmega649A/P, Atmega6490A/P, Atmega640, Atmega644/A , Atmega644P/PA , Atmega645, Atmega645A/P, Atmega6450, Atmega6450A/P, AT90usb646, AT90usb647, AT90can64
128kB:
Atmega103, Atmega128/A , Atmega1280 , Atmega1281, Atmega1284, Atmega1284P, AT90usb1286, AT90usb1287, AT90can128
256kB:
Atmega2560 , Atmega2561
Если Вы восстановили контроллер из списка, который не отмечен зелёным, напишите об этом в комментариях и я отмечу его.

Схема устройства:


Устройство довольно простое. Номиналы резисторов можно изменять(в небольших пределах, без фанатизма )

Печатная плата устройства имеет один важный нюанс, который необходимо учесть при сборке устройства.
Ножки 40ка пиновой панельки с 29 по 37 (на фото они отмечены красным цветом) не нужно устанавливать, а отверстия под эти ножки на печатной плате лучше не сверлить.


Собираем плату, прошиваем контроллер и начинаем реанимировать, реанимировать и ещё раз...

Главным достоинством «Доктора» является его автономность. Для восстановления фьюзов нужно лишь само устройство. А с последним обновлением устройства автор добавил ещё и полный контроль над процессом разблокировки, осуществляемый через UART терминал.

Файлы:
Скачать файлы проекта v2.11: (cкачиваний: 3172)
В архиве: прошивки Atmega8, Atmega88, Atmega88P, Atmega168, Atmega168P, Atmega328, Atmega328P, описание, печатные платы устройства и адаптеров.
Скачать платы SMD-адаптера: (cкачиваний: 2062) (Tiny2313, Mega8, Mega16, Mega128)
Скачать плату SMD-адаптера от GetChip.net: (cкачиваний: 1654) (Tiny2313, Tiny13)

Чуть не забыл самое главное - фьюзы

Иногда случается что исправный, правильно подключенный микроконтроллер перестает определяться программой для прошивки. Это может происходить в следствии нескольких причин:

  1. Программирование через SPI запрещено
  2. Ножка RESET стала обычным пином порта
  3. Неправильно выбран источник тактирования

Если в первом и втором случае без параллельного программатора не обойтись, то при неправильном выбранном источнике тактирования, можно попробовать методы описанные в этом небольшом руководстве. Для этого нам потребуются:

  • Кварц ~4 МГц
  • Конденсаторы от 12 пФ до 22 пФ (2 шт)
  • Резистор 10 кОм
  • Микросхема 74HC00
  • Прямые руки:-)

Предположим, что мы не знаем какой источник тактирования у нас выбран. Существуют следующие источники тактирования:

  • Кварцевый резонатор
  • Внешняя RC цепочка
  • Внешней генератор

Есть еще внутренний RC генератор но по понятным причинам он нам не интересен. Для воскрешения контроллера нужно последовательно перебирать возможные варианты.

Кварцевый резонатор

Кварцевый резонатор подключается к ногам XTAL2 и XTAL1. Каждая нога кварца подсоединена к конденсатору который в свою очередь подключен на землю. Конденсаторы любые от 12 до 22 пф.

Если подключение кварца не помогло то пойдем дальше

Внешняя RC-цепочка

Использовать ее для тактирования я бы не стал, ибо частота будет плавать как сами знаете что в проруби. Подключается она к контроллеру вот таким образом:

ВАЖНО: Вывод XTAL2 должен болтаться в воздухе! Подключать его никуда не надо. Если и это не помогает то остается последний вариант

Внешний генератор

Этот генератор можно сделать практически из любой логики или например из таймера 555. Под рукой оказалась микросхема 74HC00. Вместо нее можно использовать нашу к155ла3. Схема предельно проста и не требует наладки:

Генератор работает на частоте около 1.3 МГц. Естественно ее можно подстроить меняя номиналы резистора и конденсатора, но вряд-ли в этом будет необходимость. Плату я для него не делал т.к. смысла не было. Ногу XTAL2 нужно оставить болтаться в воздухе. Если и после этого контроллер не завелся, то это значит что контроллер умер или программирование по SPI запрещено или отключен RESET. Помочь тут может только параллельный программатор.

Вопросы, предложения, уточнения кидаем в комментарии.

_________________________________________________________________________________________________________

Если Вы работали на встроенном тактовом генераторе и случайно прошили фьюзы (например нажали кнопку , забыв при этом снять галочку " запрограммировать фьюзы" Program Fuse Bit(s) - микроконтроллер может отключить встроенный тактовый генератор и переключиться на работу с внешним кварцем (естественно перестав при этом работать).

При попытке прошить кристалл, CodeVision выдаёт подобные ошибки:


или так:

Фьюзы - это "переключатели" внутри микроконтроллера, отвечающие за подключение встроенного тактового генератора, за подключение внешнего кварца, за подключение режима работы от внешнего генератора итд. Настроить их прямо в программе, так же как регистры, нельзя. Настраиваются фьюзы только при прошивке.

Fuse по-английски "плавкая перемычка". На старых микроконтроллерах фьюзы были одноразовые. Это была группа проводящих участков на кристалле микроконтроллера. Если проводящий участок нужно было запрограммировать, на него подавали большой ток, структура кристалла в этом месте разрушалась и переставала проводить ток. Повреждённый непроводящий участок считали за лог. нуль ; целый участок - за лог. единицу .

Сейчас фьюзы многоразовые (это просто вспомогательная ячейка памяти) , но пережиток тех времён остался в обозначении запрограммированных фьюзов:
Запрограммированный
фьюз обозначают дыркой (лог.0, непроводящий участок );
Незапрограммированный - галочкой (лог.1, проводящий участок );

Таким образом, фьюзы программируются "дырками", а не галочками.
__________________________________________________________________________________________________

Для восстановления работоспособности микроконтроллера, найдите в окошке
ProgramFuseBit(s) биты:
CKSEL0
CKSEL1
CKSEL2
CKSEL3
SUT0
SUT1
CKOPT
...и сравните с табличкой. Определите, на какой режим работы вы только что прошили свой
микроконтроллер :

Чаще всего, все вышеуказанные биты - это дырки (по умолчанию в CVAVR не стоит ни одна галочка), т. е. все эти биты запрограммированы. Что соответствует подключению внешнего кварца с частотой от трёх до 8 МГц:



1. Купите кварц на частоту от трёх до 8 МГЦ или выпаяйте из компьютерного лома (частота кварца написана на его корпусе). И два конденсатора от 12 до 36 пф.



2. Найдите на микроконтроллере выводы XTAL1 и XTAL2, воткните между ними кварц. С этих же выводов бросьте на общий провод конденсаторы (хотя можете и без них попробовать).


3. В конфигурации проекта поменяйте частоту чипа на 8000000 (или другую, на которую рассчитан Ваш кварц). Можно не менять, но тогда функция delay будет неправильно рассчитывать задержки (если вы, конечно, будете её использовать).


4. На всякий случай перепрошейте фьюзы (теперь уже CVAVR должна нормально распознавать микроконтроллер):
Tools >> Chip programmer >> Program >> Fuse Bit(s)

5. Почистите чип и ещё раз залейте прогу (естественно не забудьте откомпилировать её перед этим).
Если будут вылезать ошибки, попробуйте просто закрыть окошко с ошибкой и прошить ещё разок. Протоколы для программаторов разрабатывались ещё во времена Windows95 и для старых моделей компов. На некоторых современных, особенно многоядерных компьютерах с Windows XP (Windows Vista, Windows 7) иногда бывает только со второго-третьего раза нормально прошивается (во всяком случае у меня).

6. Когда снова получите "власть" над микроконтроллером, тут уж как хотите - можете его обратно на встроенный генератор переключить, а можете и на кварце продолжать работать, на высокой частоте.

PS. Прочитать значения фьюзов из CodeVisionAVR (и записать их перед тем, как что-либо проделывать с микроконтроллером, чтобы восстановить потом можно было) можно так: Tools >> Chip Programmer >> Read >> Fuse Bit(s)



Уверен, многие имеют микроконтроллеры с неправильно прошитыми фузами и непригодными для дальнейшего использования. Но не спешите их выбрасывать - есть интересное устройство, специально предназначенное для исправления ошибочно установленных фьюзов. Представляем « » - это устройство предназначено вернуть к жизни с неправильно прошитыми фьзами. Такими фьюзами могут быть:

- CKSEL фьюзы выбора задающего генератора (выбран внешний генератор при его отсутствии или выбрана очень маленькая частота внутреннего);

- SPIEN запрет последовательного программирования;

- RSTDISBL использование ножки сброса как дополнительной линии ввода-вывода;

Установленные LOCK биты;

Другие, мешающие последовательному программированию.

Принцип работы восстановителя прост - подаем на плату 12 вольт, вставляем в панельку «испорченный» микроконтроллер, нажимаем кнопочку «START » и в момент получаем новенький рабочий микроконтроллер. Очень просто, даже не нужен компьютер. И если внешне устройство выглядит просто, то внутри все гораздо сложнее. При нажатии кнопки «START » устройство читает сигнатуру микроконтроллера-пациента, при этом, если она не читается, делается несколько попыток прочитать различными способами. После того как сигнатура прочитана по базе определяется тип микроконтроллера и восстанавливаются заводские, для данного микроконтроллера, установки фьюз бит. Если сигнатура неизвестна или микроконтроллер выдает ее неверно устройство установит фьюз биты в такое состояние, при котором станет возможным последовательное программирование. При восстановлении фьюз бит прошивка микроконтроллера остается нетронутой. Еще на плате есть перемычка «ALLOW ERASE » , при замыкании которой устройство полностью «обнулит» микроконтроллер. Это нужно в том случае, если пациент «залочен», т.е. установлены защитные биты которые препятствуют чтению/записи микроконтроллера.

Для индикации работы устройство имеет два светодиода - красный и зеленый .

Если горит зеленый - пациент успешно вылечен, фьюз биты восстановлены до заводских. Если микроконтроллер «залочен» (LockBits включены), просто проверяются фьюз биты и если они совпадают с заводскими - загорается зеленый светодиод.

Если горит красный - проблемы с сигнатурой чипа, невозможно прочитать, нет микроконтроллера в панельке или нет такой сигнатуры в базе данных.

Если зеленый мигает - сигнатура в порядке, фьюз биты с ошибкой, но исправить их невозможно, так как микроконтроллер «залочен» (LockBits включены), необходимо полное стирание микроконтроллера (нужно установить перемычку для стирания - «ALLOW ERASE »).

Если мигает красный - сигнатура в порядке, микроконтроллер «не залочен», но, по какой-то причине, невозможно восстановить фьюз биты.

Если Вы хотите получить более подробную информацию о процессе «лечения» - на плате есть выход UART . Отправьте этот сигнал на терминал и получите «распечатку» того, что было сделано. Установки для терминала:

baudrate: 4800
parity: none
databits: 8
stopbits: 1
handshake: none

На плате установлены три панельки для контроллеров на 20 (Attiny2313 …), 28(Atmega48/88/168, Atmega8 …), 40 (Atmega16, Atmega8535 …) ножек. Если Вы решили «полечить» другого «пациента», то на плате предусмотрен специальный разъем для подключения адаптеров с панельками под любой, нужный Вам, микроконтроллер. Устройство поддерживает аж 106 типов микроконтроллеров AVR. Вот полный список:

1kB: AT90s1200, Attiny11, Attiny12, Attiny13/A, Attiny15

2kB: Attiny2313/A, Attiny24/A, Attiny26, Attiny261/A, Attiny28, AT90s2333, Attiny22,Attiny25, AT90s2313, AT90s2323, AT90s2343

4kB: Atmega48/A, Atmega48P/PA, Attiny461/A, Attiny43U, Attiny4313, Attiny44/A, Attiny48, AT90s4433, AT90s4414, AT90s4434, Attiny45

8kB: Atmega8515, Atmega8535, Atmega8/A, Atmega88/A, Atmega88P/PA, AT90pwm1, AT90pwm2, AT90pwm2B, AT90pwm3, AT90pwm3B, AT90pwm81, AT90usb82, Attiny84, Attiny85, Attiny861/A, Attiny87, Attiny88, AT90s8515, AT90s8535

16kB: Atmega16/A, Atmega16U2, Atmega16U4, Atmega16M1, Atmega161, Atmega162, Atmega163, Atmega164A, Atmega164P/PA, Atmega165A/P/PA, Atmega168/A, Atmega168P/PA, Atmega169A/PA, Attiny167, AT90pwm216, AT90pwm316, AT90usb162

32kB: Atmega32/A, Atmega32C1, Atmega323/A, Atmega32U2, Atmega32U4, Atmega32U6, Atmega32M1, Atmega324A, Atmega324P, Atmega324PA, Atmega325, Atmega3250, Atmega325A/PA, Atmega3250A/PA, Atmega328, Atmega328P, Atmega329, Atmega3290, Atmega329A/PA, Atmega3290A/PA, AT90can32

64kB: Atmega64/A, Atmega64C1, Atmega64M1, Atmega649, Atmega6490, Atmega649A/P, Atmega6490A/P, Atmega640, Atmega644/A, Atmega644P/PA, Atmega645, Atmega645A/P, Atmega6450, Atmega6450A/P, AT90usb646, AT90usb647, AT90can64

128kB: Atmega103, Atmega128/A, Atmega1280, Atmega1281, Atmega1284, Atmega1284P, AT90usb1286, AT90usb1287, AT90can128

256kB: Atmega2560, Atmega2561

Схема устройства для восстановления испорченных микроконтроллеров довольно простая.

Плата разведена хорошо, но есть один нюанс, о котором важно не забыть при сборке устройства. Ножки 40-ка пиновой панельки с 29 по 37 необходимо откусить (лучше в плате вообще не сверлить отверстия под эти ножки).

Теперь осталось только прошить микроконтроллер ATmega8 и устройство готово! Данный вариант прошивки еще есть для микроконтроллеров: Atmega88, Atmega88P, Atmega168, Atmega168P, Atmega328, Atmega328P. Прошивка для микроконтроллеров с 16kB и 32kB памяти, кроме того, выдает названия восстанавливаемых микроконтроллеров. В результате работы «Atmega fusebit doctor» мною были возращены к жизни несколько ATtiny2313, ATmega48, Atmega8535. Схему испытал: феска.

Внимание! Автор устройства не стоит на месте — постоянно усовершенствует своего «Доктора». За изменениями слежу и я, внося обновления в статью.
В статье описана самая стабильная версия Update №9. от 13.03.2011.
В конце статьи есть последняя версия и архив со всеми старыми версиями «Доктора».

Хочу спросить у читающих мой блог — много ли у Вас скопилось микроконтроллеров с неправильно прошитыми фьзами и непригодными для дальнейшего использования? Я думаю, если Вы довольно продолжительное время работаете с микроконтроллерами, то у Вас были случаи неправильной прошивки фьюзов. Свои «запорченные» микроконтроллеры я складывал в специальную коробочку с надеждой на то, что когда-то, в будущем, соберу высоковольтный параллельный программатор и верну их к жизни. Но высоковольтный программатор как-то особо не хотелось собирать. Схема довольно наворочена, да и применение такого программатора разовое – оживить ошибочно прошитый микроконтроллер. Короче, всегда проще (и дешевле) было купить новый микроконтроллер. Так и хранились бы и дальше «мертвые» микроконтроллеры если бы не случилась странная штука – при изготовлении нового устройства (скоро выложу) перестали подавать признаки жизни, сразу две тини2313 без особых на то причин. Подозрение пало на то, что при прошивке были неправильно выставлены фьюзы. Новых, в SOIC корпусе, быстро достать не получалось, а схемку закончить чесались руки. Так как, я все равно собирался, когда то делать высоковольтный программатор, решил, что пришло время это сделать. Но высоковольтный программатор я так и не сделал, а сделал устройство специально предназначенное для исправления ошибочно установленных фьюзов.

Что интересного есть в «Atmega fusebit doctor»?
Как Вы поняли – это не совсем высоковольтный программатор. Это устройство предназначено только для одной цели – вернуть к «жизни» микроконтроллер с неправильно прошитыми фьзами.

Такими фьюзами могут быть:
— CKSEL фьюзы выбора задающего генератора (выбран внешний генератор при его отсутствии или выбрана очень маленькая частота внутреннего);
— SPIEN запрет последовательного программирования;
— RSTDISBL использование ножки сброса как дополнительной линии ввода-вывода;
— установленные LOCK биты;
— другие, мешающие последовательному программированию.

ПРИНЦИП РАБОТЫ УСТРОЙСТВА

— очень прост – подаем на плату 12 вольт, вставляем в панельку «запорченный» микроконтроллер, нажимаем кнопочку «START » и через доли секунды получаем новенький рабочий микроконтроллер. Очень просто, даже не нужен компьютер (всегда возмущают псевдо навороты, в виде управления при помощи специальной программе на PC, там, где это в принципе не нужно). И если внешне устройство выглядит просто, то внутри все гораздо сложнее. При нажатии кнопки «START» устройство читает сигнатуру микроконтроллера-пациента, при этом, если она не читается, делается несколько попыток прочитать различными способами. После того как сигнатура прочитана по базе определяется тип микроконтроллера и восстанавливаются заводские, для данного микроконтроллера, установки фьюз бит. Если сигнатура неизвестна или микроконтроллер выдает ее неверно устройство установит фьюз биты в такое состояние, при котором станет возможным последовательное программирование. При восстановлении фьюз бит прошивка микроконтроллера остается нетронутой. Еще на плате есть перемычка «ALLOW ERASE «, при замыкании которой устройство полностью «обнулит» микроконтроллер. Это нужно в том случае, если пациент «залочен», т.е. установлены защитные биты которые препятствуют чтению/записи микроконтроллера.

Для индикации работы устройство имеет два светодиода – красненький и зелененький :). Минималистично? Но этого вполне хватает!
Если горит зеленый – пациент успешно вылечен, фьюз биты восстановлены до заводских. Если микроконтроллер «залочен» (LockBits включены), просто проверяются фьюз биты и если они совпадают с заводскими — загорается зеленый светодиод.
Если горит красный – проблемы с сигнатурой чипа, невозможно прочитать, нет микроконтроллера в панельке или нет такой сигнатуры в базе данных.
Если зеленый мигает — сигнатура в порядке, фьюз биты с ошибкой, но исправить их невозможно, так как микроконтроллер «залочен» (LockBits включены), необходимо полное стирание микроконтроллера (нужно установить перемычку для стирания — «ALLOW ERASE»).
Если мигает красный — сигнатура в порядке, микроконтроллер «не залочен», но, по какой-то причине, невозможно восстановить фьюз биты.

Если Вы хотите получить более подробную информацию о процессе «лечения» на плате есть выход UART . Отправьте этот сигнал на терминал и получите «распечатку» того, что было сделано.

Установки для терминала:
baudrate: 4800
parity: none
databits: 8
stopbits: 1
handshake: none

На плате установлены три панельки для «пациентов» на 20 (Attiny2313 …), 28 (Atmega48/88/168, Atmega8 …), 40 (Atmega16, Atmega8535 …) ножек. Если Вы решили «полечить» другого «пациента», то на плате предусмотрен специальный разъем для подключения адаптеров с панельками под любой, нужный Вам, микроконтроллер. Устройство поддерживает аж 106 типов микроконтроллеров AVR.
Вот полный список:
1kB:
AT90s1200 , Attiny11, Attiny12, Attiny13/A , Attiny15
2kB:
Attiny2313/A , Attiny24/A, Attiny26 , Attiny261/A, Attiny28, AT90s2333, Attiny22,Attiny25, AT90s2313 , AT90s2323, AT90s2343
4kB:
Atmega48/A , Atmega48P/PA, Attiny461/A , Attiny43U, Attiny4313, Attiny44/A, Attiny48, AT90s4433, AT90s4414, AT90s4434, Attiny45
8kB:
Atmega8515, Atmega8535, Atmega8/A, Atmega88/A , Atmega88P/PA, AT90pwm1, AT90pwm2, AT90pwm2B, AT90pwm3, AT90pwm3B, AT90pwm81, AT90usb82, Attiny84, Attiny85 , Attiny861/A, Attiny87, Attiny88, AT90s8515 , AT90s8535
16kB:
Atmega16/A , Atmega16U2, Atmega16U4, Atmega16M1, Atmega161, Atmega162 , Atmega163, Atmega164A, Atmega164P/PA, Atmega165A/P/PA, Atmega168/A, Atmega168P/PA , Atmega169A/PA, Attiny167, AT90pwm216, AT90pwm316, AT90usb162
32kB:
Atmega32/A , Atmega32C1, Atmega323/A, Atmega32U2, Atmega32U4, Atmega32U6, Atmega32M1, Atmega324A, Atmega324P, Atmega324PA , Atmega325, Atmega3250, Atmega325A/PA, Atmega3250A/PA, Atmega328, Atmega328P , Atmega329, Atmega3290, Atmega329A/PA, Atmega3290A/PA, AT90can32
64kB:
Atmega64/A, Atmega64C1, Atmega64M1, Atmega649, Atmega6490, Atmega649A/P, Atmega6490A/P, Atmega640, Atmega644/A, Atmega644P/PA , Atmega645, Atmega645A/P, Atmega6450, Atmega6450A/P, AT90usb646, AT90usb647, AT90can64
128kB:
Atmega103, Atmega128/A, Atmega1280 , Atmega1281, Atmega1284, Atmega1284P, AT90usb1286, AT90usb1287, AT90can128
256kB:
Atmega2560, Atmega2561

Зелененьким отмечены кристаллы которые проверялись и удачно полечились пользователями «доктора». Если Вы вылечили кристалл не помеченный зеленым, прошу сообщить об этом автору устройства или мне — я передам.

С лестными отзывами закончили, теперь давайте собирать устройство.

СБОРКА УСТРОЙСТВА.

Схема устройства довольно простая. Номиналы резисторов можно варьировать в небольших пределах

Данный вариант прошивки еще есть для микроконтроллеров:
Atmega88, Atmega88P, Atmega168, Atmega168P, Atmega328, Atmega328P.
Прошивка для микроконтроллеров с 16kB и 32kB памяти, кроме того, выдает названия восстанавливаемых микроконтроллеров.
Прошивки и фьюзы для других микроконтроллеров смотрите в архиве старых версий «Доктора» в конце статьи.

АДАПТЕРЫ ДЛЯ МИКРОКОНТРОЛЛЕРОВ.

Автором были разработаны два адаптера:
— для HVPP программирования 20-ти пиновых Attiny26 подобных и 40-ка пиновых Atmega8515 подобных контроллеров.
— для HVSP программирования для 8-ми пиновых и 14p-ти пиновых микроконтроллеров с высоковольтным последовательным способом программирования
- Aдаптеры для программирования 20 и 40 пиновых микроконтроллеров в DIP корпусах.
- Адаптер для программирования 8 и 14 пиновых микроконтроллеров в DIP корпусах.

Небольшой бонус от меня – адаптеры для микроконтроллеров 8-ми пиновых (ATtiny13 …) и 20-ти пиновых (ATtiny2313 …) в корпусах SOIC.


- Адаптеры для программирования 8 и 20 пиновых микроконтроллеров в SOIC корпусах

Пользоваться адаптерами для SOIC корпусов очень просто:

АРХИВ ВСЕХ ПРЕДЫДУЩИХ ВЕРСИЙ ДОКТОРА.

Это архив со всеми предыдущими версиями «Доктора». Кроме того архив содержит дополнительные материалы, такие как пинауты для различных корпусов AVR, платы-адаптеры и другое.

Архив старых версий "Доктора"

ПОСЛЕДНЯЯ, НА ДАННЫЙ МОМЕНТ, ВЕРСИЯ «ДОКТОРА».

Как я уже упоминал выше, главным достоинством «Доктора» является его автономность. Для восстановления фьюзов нужно лишь само устройство. Это очень хорошо!
Да, «Доктор» по UART выдавал информацию о процессе «лечения». Сообщения по UART, дублируя светодиоды, давали более полную картину «лечения», но многим этого было недостаточно. Хотеться более полного контроля процесса восстановления. И в новом апдейте автор дает этот полный контроль!

Теперь стало возможным:
— двухстороннее общение с «Доктором» по UART;
— работа с кристаллами у которых неверная сигнатура;
— устанавливать свои fusebits и lockbits;
— об остальном читайте в описании внутри архива…
- Последняя версия "Доктора"

ПЛАТЫ ДОКТОРА ЧИТАТЕЛЕЙ БЛОГА.
Здесь находятся устройства собранные читателями — хорошо когда есть выбор.

Печатка «Доктора» от Paul (в Сплинте)

Печатка Доктора от Paul (в Сплинте)
zloynik нашел некоторые ошибки:
1.Резистор с 23 ноги меги не соединен с панельками.
2.Резистор с 4 ноги меги не соединен с панельками.
3.Резистор с 5 ноги меги не соединен с панельками.
4.Транзистор BC547(Т2) с 13 ноги меги-нет контакта с эмиттера на «землю».
В остальном вроде все впорядке. Собрал-залочил тиньку 2313-восстановило.
Учтите при изготовлении.

Вариант «Доктора» в SMD исполнении от webconn.

Вариант "Доктора" в SMD от webconn
Хотел бы внести свой вклад в форме ещё одной платы для «доктора» в SMD-исполнении. Всего 5 перемычек и 3 SMD-»пофигистора», питание от Power Jack 5mm (но в архиве есть версия с колодкой) через 78L05 (греется, но пару минут можно работать без отключения питания, а больше обычно и не нужно) Также греется один из транзисторов, но тоже в меру (мелкота требует жертв). Тем не менее, плата юзабельна. Совместима с последней версией Доктора V2h (то есть полностью растащен UART).

Вариант «Доктора» от Machineman .

Разводка "Доктора" от Machiman


Плата в спринте, разводил под детали, которые были в наличии, так что там симбиоз SMD с выводными элементами, от перемычек уйти не удалось, как ни крутил. Транзистор T3 перевернул в нужную сторону (по началу запутался с эмиттером-коллектором). Да, с питанием не стал особо заморачиваться и вывел все на разъем molex. Ну и разумеется выход на платы расширения. Удачи!

Вариант «Доктора» от TaseG (разводка в сплинте).

Вариант "Доктора" от TaseG.



Исправление разводки от Максима Носырева.
Я начинающий, поэтому прошу строго не судить, если я ошибся.
Если сравнить разводку с оригиналом из статьи, то там есть лишняя дорожка, замыкающая 9 и 5 вольт, как я понял на питание меги придет 9 вольт. Может, конечно, я ошибаюсь, но наверно так не должно быть…

Вариант «Доктора» от Sailanser (разводка в Eagle 5.10)

Разводка от Sailanser (Eagle 5.10)