Всем привет! Наверное у каждого, кто занимается или занимался прошивкой микроконтроллеров были случаи, когда вы неправильно зашивали фьюз-биты и тем самым приводили микроконтроллер в «залоченное» состояние. В этой статье я расскажу о том, как сделать AVR doctor. AVR doctor – это устройство, которое позволяет вернуть к жизни микроконтроллер с неправильно прошитыми фьюзами. Идея собрать его появилась у меня после того, как испортил 3 микроконтроллера ATtiny2313. Выбросить их было жалко, поэтому и решил их «вылечить».
Схема доктора фузов
Вот принципиальная схема данного устройства:
Итак, приступим к сборке.
1) Печатная плата
Так как дорожки на плате не очень узкие, можно изготовить плату по технологии ЛУТ. Я так и сделал, но принтер у меня печатает не очень хорошо, поэтому получилось не совсем удачно. На фото процесс изготовления платы.
8. Стабилизатор напряжения 7805 в корпусе ТО-220 – 1 шт.
Вот собственно и все детали. Можно приступать к сборке АВР доктора.
Первым делом, нужно залудить контактные площадки на плате. Я обычно покрываю слоем припоя всю плату, так надежнее. Следует внимательно осмотреть плату на обрыв дорожек и другие дефекты. После того, как залудили плату, её нужно обмыть от флюса. Для этого можно воспользоваться водой с мылом или моющим средством. Если флюс не отмывается или вы использовали канифоль, следует промыть плату ацетоном или спиртом. Если нет не того, не другого, можете промыть плату перекисью водорода или на крайний случай растворителем. (при использовании растворителя, плата в дальнейшем будет иметь не очень приятный запах).
Когда все элементы впаяны, нужно еще раз промыть плату. После того как она высохнет, возьмите увеличительное стекло и внимательно осмотрите плату. Я иногда нахожу на плате сопли и непропаянные места. Если вы устраните все найденные дефекты до первого включения платы, вы можете избежать неприятностей. Вот так выглядит готовая плата:
Прошивка микроконтроллера
Следующим этапом будет прошивка микроконтроллера. Для этого вам нужно иметь:
Микроконтроллер ATmega 8
Программатор для AVR микроконтроллеров.
Чтобы прошить микроконтроллер нужно иметь программатор и компьютер с соответствующим программатору ПО. Я использую AVR Studio 4. Прошивку оставлю в архиве вместе с печатной платой и принципиальной схемой.
Если микроконтроллер успешно прошит, можно приступать к разблокировке микроконтроллеров. Для этого вставьте прошитую атмегу в панельку возле светодиодов. А «залоченный» мк вставьте в соответствующую ему пустую панельку. Далее нужно подключить питание к плате через терминальный блок, который вы припаяли. Напряжение следует подавать 6-12 вольт, иначе плата не запуститься. Когда питание подключили загорится красный светодиод (если конечно вы все правильно собрали).
Если светодиод горит, то нажимайте на кнопку. Должен загореться зеленый светодиод, а красный погаснет. Если все так и произошло, то поздравляю – плата собрана правильно и вы разблокировали микроконтроллер.
Теперь несколько слов о джампере, который стоит на плате. Если вы поставите на него перемычку, то при разблокировке МК также очиститься его память, то есть удалиться прошивка. Если же перемычки не будет — прошивка сохраниться.
Если при нажатии на кнопку не произошли действия описанные выше, то что-то пошло не так как нужно. Причина может быть в том, что вы ошиблись при сборке платы или прошивке атмеги. Также причина может быть в том, что микроконтроллер, который вы хотите восстановить, неисправен. Дополнительная информация — на форуме. Всем удачи!
Описание нового Блютус протокола беспроводной связи — Bluetooth Mesh.
Схема, плата и фото готового самодельного усилителя 100W на транзисторах Дарлингтона.
Усилитель мощности звука с двойной термостабилизацией — теория работы схемы и практическое тестирование.
Источник
Fuse доктор атмел своими руками
Внимание ! Автор устройства не стоит на месте – постоянно усовершенствует своего «Доктора». За изменениями слежу и я, внося обновления в статью. В статье описана самая стабильная версия Update №9. от 13.03.2011. В конце статьи есть последняя версия и архив со всеми старыми версиями «Доктора».
Хочу спросить у читающих мой блог – много ли у Вас скопилось микроконтроллеров с неправильно прошитыми фьзами и непригодными для дальнейшего использования? Я думаю, если Вы довольно продолжительное время работаете с микроконтроллерами, то у Вас были случаи неправильной прошивки фьюзов. Свои «запорченные» микроконтроллеры я складывал в специальную коробочку с надеждой на то, что когда-то, в будущем, соберу высоковольтный параллельный программатор и верну их к жизни. Но высоковольтный программатор как-то особо не хотелось собирать. Схема довольно наворочена, да и применение такого программатора разовое – оживить ошибочно прошитый микроконтроллер. Короче, всегда проще (и дешевле) было купить новый микроконтроллер. Так и хранились бы и дальше «мертвые» микроконтроллеры если бы не случилась странная штука – при изготовлении нового устройства (скоро выложу) перестали подавать признаки жизни, сразу две тини2313 без особых на то причин. Подозрение пало на то, что при прошивке были неправильно выставлены фьюзы. Новых, в SOIC корпусе, быстро достать не получалось, а схемку закончить чесались руки. Так как, я все равно собирался, когда то делать высоковольтный программатор, решил, что пришло время это сделать. Но высоковольтный программатор я так и не сделал, а сделал устройство специально предназначенное для исправления ошибочно установленных фьюзов.
Некоторое время назад, по ссылке geovas , я поглядел на устройство под названием «Atmega fusebit doctor». Автор – поляк Pawel Kisielewski. Так как схема этого устройства относительно несложная решил вместо высоковольтного программатора собрать «доктора». И не ошибся – устройство оказалось замечательным! Немогу не поделиться своими впечатлениями о «Atmega fusebit doctor», так как в этом проекте есть много вещей, которые я ценю.
Что интересного есть в «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
Зелененьким отмечены кристаллы которые проверялись и удачно полечились пользователями «доктора». Если Вы вылечили кристалл не помеченный зеленым, прошу сообщить об этом автору устройства или мне – я передам.
С лестными отзывами закончили, теперь давайте собирать устройство.
СБОРКА УСТРОЙСТВА.
Схема устройства довольно простая. Номиналы резисторов можно варьировать в небольших пределах
059-atmega_fusebit_doctor_V2e_schematic.pdf — Схема «ATmega FuseBit Doctor» Плата устройства разведена хорошо, но есть один нюанс, о котором важно не забыть при сборке устройства. Ножки 40-ка пиновой панельки с 29 по 37 необходимо откусить (лучше в плате вообще не сверлить отверстия под эти ножки).
Еще есть картинка для нанесения на плату со стороны деталей (монтажная картинка). Я впервые попробовал нанести такую картинку. Получилось очень удобно – монтаж превращается в простую процедуру установку деталек по картинкам. Наноситься рисунок методом ЛУТ. Вскройте рисунок лаком, иначе он быстро сотрется.
059-atmega_fusebit_doctor_V2e_PCB — Печатная плата и монтажный рисунок «FuseBit Doctor» «Набиваем» плату радиодеталями, ставим несколько перемычек, получаем вот такое устройство:
ВНИМАНИЕ! Если у Вас собрана предыдущая версия платы «Доктора» (V2d – плата апдейдов по №6 включительно), для новой версии (апдейты №№7-9) переделывать ее нет необходимости, изменения минимальны. Для апгрейда версии платы V2d до версии V2e необходимо, всего лишь, припаять в нужном месте резистор на 100 Ом. Ниже показано куда его впаивать.
Hryam сделал рисунок платы версии V2d в Спринте. Вышло даже лучше чем у автора (размеры площадок, например). 059-atmega_doctor_plate_Sprint v2d — Рисунок печатной платы «ATmega FuseBit Doctor» в Спринте
ПЛАТА ДЛЯ SMD КОМПОНЕНТОВ.
Появилась версия платы для SMD компонентов (товарисщь Shuffle постарался) . В этой плате нет панелек под «пациентов» есть только разъем для подключения адаптеров. Все «пациенты» включаются через адаптеры. Добавлен преобразователь UART to USB TF232RL, а значит Доктор будет выдавать информацию о ходе лечения по USB (можно не ставить). В остальном все как в оригинале. 059-shuffle_avrdoc_usb.zip — Архив документов по SMD Доктору от Shuffle
ПРОШИВАЕМ МИКРОКОНТРОЛЛЕР.
Теперь осталось только прошить микроконтроллер ATmega8 и устройство готово! 059-atmega_fusebit_doctor_2.09.hex — Прошивка «ATmega FuseBit Doctor» для ATmega8 059-FuseBits-M8 v2.09 — FuseBits для ATmega8 «ATmega FuseBit Doctor» Фьюз байты: Lock Bits = 0x 3F; High Fuse = 0x D1; Low Fuse = 0x E1; Ext. Fuse = 0x 00
Данный вариант прошивки еще есть для микроконтроллеров: 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 корпусах.
Небольшой бонус от меня – адаптеры для микроконтроллеров 8-ми пиновых (ATtiny13 …) и 20-ти пиновых (ATtiny2313 …) в корпусах SOIC.
059-adapter_soic20-soic8 — Адаптеры для программирования 8 и 20 пиновых микроконтроллеров в SOIC корпусах
Пользоваться адаптерами для SOIC корпусов очень просто:
АРХИВ ВСЕХ ПРЕДЫДУЩИХ ВЕРСИЙ ДОКТОРА.
Это архив со всеми предыдущими версиями «Доктора». Кроме того архив содержит дополнительные материалы, такие как пинауты для различных корпусов AVR, платы-адаптеры и другое.
atmega-hvpp-fusebit-doctor_archive.zip — Архив старых версий «Доктора»
ПОСЛЕДНЯЯ, НА ДАННЫЙ МОМЕНТ, ВЕРСИЯ «ДОКТОРА».
Как я уже упоминал выше, главным достоинством «Доктора» является его автономность. Для восстановления фьюзов нужно лишь само устройство. Это очень хорошо! Да, «Доктор» по UART выдавал информацию о процессе «лечения». Сообщения по UART, дублируя светодиоды, давали более полную картину «лечения», но многим этого было недостаточно. Хотеться более полного контроля процесса восстановления. И в новом апдейте автор дает этот полный контроль!
Теперь стало возможным: – двухстороннее общение с «Доктором» по UART; – работа с кристаллами у которых неверная сигнатура; – устанавливать свои fusebits и lockbits; – об остальном читайте в описании внутри архива… atmega-hvpp-fusebit-doctor_update.zip — Последняя версия «Доктора»
ПЛАТЫ ДОКТОРА ЧИТАТЕЛЕЙ БЛОГА. Здесь находятся устройства собранные читателями – хорошо когда есть выбор.
Печатка Доктора от Paul (в Сплинте)
ATmega Fusebit Doctor PCB.zip — Печатка Доктора от Paul (в Сплинте) zloynik нашел некоторые ошибки: 1.Резистор с 23 ноги меги не соединен с панельками. 2.Резистор с 4 ноги меги не соединен с панельками. 3.Резистор с 5 ноги меги не соединен с панельками. 4.Транзистор BC547(Т2) с 13 ноги меги-нет контакта с эмиттера на «землю». В остальном вроде все впорядке. Собрал-залочил тиньку 2313-восстановило. Учтите при изготовлении.
Вариант «Доктора» в SMD исполнении от webconn.
Doctor SMD by WebConn (V2h).zip — Вариант «Доктора» в SMD от webconn Хотел бы внести свой вклад в форме ещё одной платы для «доктора» в SMD-исполнении. Всего 5 перемычек и 3 SMD-»пофигистора», питание от Power Jack 5mm (но в архиве есть версия с колодкой) через 78L05 (греется, но пару минут можно работать без отключения питания, а больше обычно и не нужно ) Также греется один из транзисторов, но тоже в меру (мелкота требует жертв). Тем не менее, плата юзабельна. Совместима с последней версией Доктора V2h (то есть полностью растащен UART).
ЗАКЛЮЧЕНИЕ.
В результате работы «Atmega fusebit doctor» мною были возращены к жизни несколько ATtiny2313, ATmega48, Atmega8535. «Atmega fusebit doctor» зарекомендовал себя с наилучшей стороны. И даже появились планы на нестандартное его использование. Давно руки чешутся заюзать ножку сброса ATtiny13 как еще один порт ввода/вывода, но всегда останавливало то, что микроконтроллер теряется для последующего использования. С «доктором» можно смело использовать ножку по своему усмотрению и при необходимости восстанавливать ее «заводское» назначение.
Файлы статьи: 059-atmega_fusebit_doctor_V2e_schematic.pdf — Схема «ATmega FuseBit Doctor» 059-atmega_fusebit_doctor_V2e_PCB — Печатная плата и монтажный рисунок «FuseBit Doctor» 059-atmega_doctor_plate_Sprint v2d — Рисунок печатной платы «ATmega FuseBit Doctor» в Спринте 059-shuffle_avrdoc_usb.zip — Архив документов по SMD Доктору от Shuffle 059-atmega_fusebit_doctor_2.09.hex — Прошивка «ATmega FuseBit Doctor» для ATmega8 059-FuseBits-M8 v2.09 — FuseBits для ATmega8 «ATmega FuseBit Doctor» 059-adapter_dip20-dip40 — Aдаптеры для программирования 20 и 40 пиновых микроконтроллеров в DIP корпусах. 059-adapter_dip8-dip14 — Адаптер для программирования 8 и 14 пиновых микроконтроллеров в DIP корпусах. 059-adapter_soic20-soic8 — Адаптеры для программирования 8 и 20 пиновых микроконтроллеров в SOIC корпусах atmega-hvpp-fusebit-doctor_archive.zip — Архив старых версий «Доктора» atmega-hvpp-fusebit-doctor_update.zip — Последняя версия «Доктора»