Это устройство предназначено только для одной цели – вернуть к «жизни» микроконтроллер с неправильно прошитыми фьзами.
Показываю как создать Доктор Атмега на микроконтроллере Atmega88. Будем лечить также Atmega88, которую заблочил.
На основе информации, взятой с “@getchip.net@/posts/059-ispravlyaem-avr-fyuzy-pri-pomoshhi-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:
Те резисторы, которые без наминала – это 1 кОм.
Под другим углом:
Верхняя атмега88 прошита под Доктор Атмега, а нижняя – наш пациент – то же атмега88 только заблокированная.
Файлы для прошивки:
Скачать все файлы для “Доктор Атмега” (hex файлы, схемы и др):
Скачать все файлы для Доктор Атмега можно – здесь в формате zip.
Скачать все файлы для Доктор Атмега можно – здесь в формате tar.gz.
Теперь стало возможным:
— двухстороннее общение с «Доктором» по UART;
— работа с кристаллами у которых неверная сигнатура;
— устанавливать свои fusebits и lockbits;
— об остальном читайте в описании внутри архива…
Для прошивки Atmega88 использовал следующий файл hex:
Прописывал прошивку через бесплатную программу PonyProg2000 (скачать её можно – здесь), фьюзы брал из файла Read.txt
FUSEBITS: internal 1MHz clock, EESAVE enabled:
M8 L:0xE1 H:0xD1
M88,M168 L:0x62 H:0xD7 E:0xF9
M328 L:0x62 H:0xD1 E:0xFF
То есть вот такие:
ПРОГРАММАТОР:
Программатор использовал самый простой – 5 проводков:
—————————————
Схема LPT Atmel AVR простой программатор: ATmega8, ATmega48, ATmega88, ATmega168 и некоторые другие в DIP28.
Программатор 5 проводков для других Atmeg в этой статье – https://gameforstreet.ru/avr-prostye-i-prostejshie-programmatory/
——————————————
ПОЛЕЗНАЯ ИНФОРМАЦИЯ:
АДАПТЕРЫ ДЛЯ МИКРОКОНТРОЛЛЕРОВ.
Были разработаны два адаптера:
— для HVPP программирования 20-ти пиновых Attiny26 подобных и 40-ка пиновых Atmega8515 подобных контроллеров.
— для HVSP программирования для 8-ми пиновых и 14p-ти пиновых микроконтроллеров с высоковольтным последовательным способом программирования
059-adapter-1HVPP_dip20-dip40.zip
059-adapter-HVSP-dip8-dip14.zip
Небольшой бонус – адаптеры для микроконтроллеров 8-ми пиновых (ATtiny13 …) и 20-ти пиновых (ATtiny2313 …) в корпусах SOIC.
Пользоваться адаптерами для SOIC корпусов очень просто:
Адаптер для ATtiny26 от Fahivec
Adapter_Tiny26_SMD.zip
В архиве фотка и файлы .sch/.brd из Eagle 5.7.0
Адаптер для ATmega48A/PA/88A/PA/168A/PA/328/P TQFP32 от S@per
TQFP32-for-fuse-bit-doctor.zip
Для подключения пациента атмеги88 помогла вот такая картинка, также адаптер выше:
И конечно же сама схема:
@Про@@грам@ма дл@@я @lay@файлов – здесь.
Плата устройства находится здесь (нижняя и верхняя сторона) для справки:
Разукрасил свою схему: