Если Вы довольно продолжительное время работаете с микроконтроллерами, то у Вас наверняка были случаи неправильной прошивки фьюзов(fusebit). Предлагаемое устройство позволяет сбросить фьюзы заблокированного микроконтроллера к заводским настройкам. Конечно, для этих целей можно использовать параллельный программатор, но допустим у меня его нет, а пара заблокированных контроллеров завалялась.
Буквально сегодня утром мы с Gin_Tonik`ом на работе разблокировали две меги 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:
В архиве: прошивки Atmega8, Atmega88, Atmega88P, Atmega168, Atmega168P, Atmega328, Atmega328P, описание, печатные платы устройства и адаптеров.
Скачать платы SMD-адаптера: (Tiny2313, Mega8, Mega16, Mega128)
Скачать плату SMD-адаптера от GetChip.net: (Tiny2313, Tiny13)
Чуть не забыл самое главное - фьюзы