Суббота, 27.04.2024

В помощь радиолюбителю
Приветствую Вас Гость
Главная | Регистрация | Вход | RSS
Схемы на МК и микросхемах » Микроконтроллеры
Доктор фьюзов «Atmega fusebit doctor».


Доктор фьюзов - «Atmega fusebit doctor».

Каждый, кто начинает работать с микроконтроллерами AVR знает, что неправильной установкой "фьюзов", можно прийти к печальным последствиям.
Распространенными случаями является ошибочное отключение вывода Reset микроконтроллера (Fuse-бит RSTDISBL, для возможности использовать его как линию ввода/вывода) или отключение режима ISP программирования (Fuse-бит SPIEN) – в этих случаях внутрисхемное программирование станет невозможным.
Восстановить их работоспособность и вернуть к жизни может лишь параллельный программатор.

Схема такого программатора довольно наворочена, да и применение такого программатора в быту разовое – оживить ошибочно прошитый микроконтроллер. По этому не каждому, да и практически никому не охота его собирать, всегда проще и дешевле - купить новый микроконтроллер. А «мертвые» микроконтроллеры или выкидываются, или собираются в коробочку для лучших времён, авось когда нибудь появится возможность добраться до параллельного программатора.

Недавно я "набрёл" в интернете на интересное устройство, под названием «Atmega fusebit doctor», с которым и хочу познакомить наших читателей.
Автор этой разработки – поляк Pawel Kisielewski. Схема этого устройства относительно несложная и оно предназначено лишь только для одной цели – вернуть к «жизни» микроконтроллер с неправильно прошитыми фьюзами.

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

Пользоваться этим устройством очень просто – подаем на плату 12 вольт от стабилизированного БП, вставляем в панельку «мёртвый» микроконтроллер, нажимаем кнопочку «START» и через секунды получаем "новенький" рабочий микроконтроллер. Причём  «Atmega fusebit doctor» не затрагивает программу, зашитую в микроконтроллер, ему вообще "до лампочки", что там зашито, он только проверяет "фьюзы". Видите, всё очень просто и здесь даже не нужен компьютер.

Принцип работы «Atmega fusebit doctor».

При нажатии кнопки «START», «Atmega fusebit doctor» читает сигнатуру "мёртвого" микроконтроллера, если она не читается, то делается несколько попыток прочитать её различными способами. После того как сигнатура прочитана, по базе определяется тип микроконтроллера и восстанавливаются заводские установки фьюз бит.
Если сигнатура неизвестна или микроконтроллер выдает ее неверно, устройство установит фьюз биты в такое состояние, при котором станет возможным последовательное программирование.
При восстановлении фьюз бит, прошивка микроконтроллера, как и было сказано выше, остается нетронутой. Еще на плате есть перемычка «ALLOW ERASE«, при замыкании которой, устройство полностью «обнулит» микроконтроллер. Это необходимо в том случае, если микроконтроллер «залочен», т.е. установлены защитные биты которые препятствуют чтению/записи микроконтроллера.

Для индикации работы «Atmega fusebit doctor» имеет два светодиода – красного и зелёного цвета.

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

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

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

highslide.js

Конструкция «Atmega fusebit doctor»

На печатной плате установлены три панельки для микроконтроллеров-«пациентов» на 20 (Attiny2313 …), 28 (Atmega48/88/168, Atmega8 …), 40 (Atmega16, Atmega8535 …) ножек. Если Вы решили «полечить» другого «пациента», то на плате предусмотрен специальный разъем для подключения адаптеров с панельками под любой, нужный Вам, микроконтроллер.
«Atmega fusebit doctor» поддерживает более сотни типов микроконтроллеров 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

 

 

Сборка устройства.

Схема устройства довольно простая. Номиналы резисторов можно варьировать в небольших пределах. Питается устройство от внешнего стабилизированного блока питания с напряжением 12 вольт. Подключается БП к соответствующему 2-х контактному разъёму на печатной плате.

highslide.js


 059-atmega_fusebit_doctor_V2e_schematic.pdf - Схема "ATmega FuseBit Doctor"

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

Внешний вид платы

В архиве вместе с печаткой, есть и картинка для нанесения на плату со стороны деталей (монтажная картинка). Монтаж с такой "маской" превращается в простую процедуру установки радиодеталей по картинкам ("маске"). Такой рисунок на плату так-же можно нанести методом ЛУТ, после чего, его необходимо будет покрыть лаком, иначе он быстро сотрется.
059-atmega_doctor_plate_v2d_Sprint.rar - Печатка для "ATmega FuseBit Doctor" в Sprint Layout 6.
059-atmega_fusebit_doctor_V2e_PCB.zip - Печатка и маска для "ATmega FuseBit Doctor" в "PDF".
Далее устанавливаем на плате перемычки, радиодетали, ставим панельки, и в итоге получаем вот такое законченное устройство:

Теперь осталось только прошить микроконтроллер ATmega8 и устройство готово!
059-atmega_fusebit_doctor_2.09.hex - Прошивка "ATmega FuseBit Doctor".

Да, в качестве основного микроконтроллера кроме ATmega8, можно применить Atmega88, Atmega88P, Atmega168, Atmega168P, Atmega328, Atmega328P.
Установка фьюзов для микроконтроллера, показана на рисунке ниже.

 Фьюз байты: Lock Bits = 0x 3F; High Fuse = 0x D1; Low Fuse = 0x E1; Ext. Fuse = 0x 00
 

Как проверить, правильно ли Вы их выставили в программаторе? В разных программаторах они выставляются по разному. В одних так, как на картинке, в других зеркально. Чтобы узнать, как поступить, нужно в программатор поставить чистый МК с заводской установкой фьюзов, и просто считать только установку фьюзов. Дальше сравнить фьюз-бит "SPIEN". Если на Вашем программаторе у него не стоит галочка, то фьюзы выставляются так, как на картинке. Но если галочка будет стоять, то все фьюзы выставляются зеркально. То есть там, где на картинке галочек нет - их ставят и наоборот.


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

Адаптеры для микроконтроллеров.

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

 



Категория: Микроконтроллеры | Просмотров: 292734 | Добавил: spb-nik

Понравилась статья - нажми на кнопку!

 Нравится 

Всего кликов: 648

Назад

Поделись с друзьями:





Добавлять комментарии могут только зарегистрированные пользователи.

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться или войти на сайт под своим именем.


Всего комментариев: 13
* * 13) Добавил: knesterov56 Костя Нестеров (07.06.2018 19:03) [Материал]

Собрал доктора! Теперь темное для меня дело-прошить контроллер. Может кто откликнется в личку для помощи? Здесь как то не красиво разводит базар! Заранее спасибо!

* * 12) Добавил: Arthur Arthur Melkumov (03.03.2018 19:54) [Материал]

Здравствуйте. Подскажите, почему для подтягивания пина РЕСЕТ залоченого мк  к земле используется не один транзистор, а сборка из двух (пнп и нпн)?

* * 11) Добавил: eretichenko76 Stepan (26.11.2017 10:40) [Материал]

Устройство рабочее 100% собрал сначала на макетной плате попробовал восстановить тиньку 2313 все ок,за тем вытравил плату собрал,работает. Вот на днях вылечил атмегу 48 все ок. Рекомендую!

* * 10) Добавил: spb-nik Николай (22.08.2016 23:36) [Материал]

Смело ставьте и в прошивке ничего менять не нужно.
Это просто более поздняя версия МК с меньшим энергопотреблением и ещё какими-то улучшениями (даташит смотрите).

* * 9) Добавил: Tim1504 Tim1504 Tim1504 (22.08.2016 23:12) [Материал]

Здравствуйте. Можно в этом устройстве использовать в качестве основного микроконтролера  Atmega8a-PU? Прошивка для него подойдет?

* * 8) Добавил: baa Александр Богданов (30.07.2016 21:57) [Материал]

Может тема уже стара, но проблема не старая, а разводка платы не очень удачная и адаптеры не все! Сдесь http://baa527.wix.com/bogdan#!--1/c1won  все более полно!

* * 7) Добавил: Slav Slav (16.01.2016 23:59) [Материал]

Недавно собрал на   коленках ...  понадобилось использовать ногу Reset у Atiny85 ... питание сделал от USB с 12-ти вольтовым преобразователем ... все классно работает... Спасибо wub

* * 6) Добавил: fsem Фёдор Семенюк (10.11.2015 12:30) [Материал]

Вот здесь: http://programmator-ua.ucoz.ru/publ/atmega_fuse_doctor_variant_plat_pod_proshivki_v_2_11_i_v_2_12/1-1-0-9 я выложил плату, рабочую на 1000000 процентов. Плата работает с двумя прошивками, от автора 2.11 и исправленную, от Геннадия, 2.12.

* * 5) Добавил: Doublman (31.05.2015 18:25) [Материал]

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

* * 4) Добавил: spb-nik Николай (31.05.2015 15:14) [Материал]

Попробуйте так, как написано в статье;

Цитата
Еще на плате есть перемычка «ALLOW ERASE«, при замыкании которой, устройство полностью «обнулит» микроконтроллер.
Это необходимо в том случае, если микроконтроллер «залочен», т.е.
установлены защитные биты которые препятствуют чтению/записи
микроконтроллера.

* * 3) Добавил: Doublman (31.05.2015 14:46) [Материал]

Джентльмены,
повторил конструкцию, специально запорол атмегу8 (набрал фьюзы как рука дернулась), ... пролечиваю, но зеленый не моргает. Возможен ли такой набор фьюзов который не исправить? Вообще у меня при старте, с установленным пациентом, кратковременно моргает зеленый, и через долю секунды красный. Если отсутствует пациент - то после 15-30 секунд загорается красный.
Плохо что не описан процесс начальной отладки. Как убедиться что устройство рабочее? Второй МК жалко.

* * 2) Добавил: spb-nik Николай (02.12.2014 11:55) [Материал]

Цитата
 В плате есть недоработка в районе обозначенного, но не установленого 100 Ом резистора с коллектора Т3 на землю. А так - всё
работает. Рекомендую!

В печатке, которая в формате pdf, всё нормально. Печатку в "спринте" исправил. Теперь там всё ОК.

* * 1) Добавил: labuh61 (02.10.2014 17:35) [Материал]

Повторил. Всё кошерно! Лежало 4 криво прошитых меги8, теперь на руках целое состояние. Собралось всё хозяйство  за один вечер - затраты ничтожные.  В плате есть недоработка в районе обозначенного, но не установленого 100 Ом резистора с коллектора Т3 на землю. А так - всё работает. Рекомендую!