Paweł Kisielewski
Устройство ATmega fusebit doctor предназначено для восстановления заводской конфигурации Fuse-битов микроконтроллеров Atmel AVR семейства ATmega в случаях неправильной записи таковых. Самыми распространенными ошибками или проблемами являются неправильное конфигурирование источника тактовой частоты (fuse-бит CKSEL), отключение последовательного интерфейса программирования SPI (fuse-бит SPIEN) или отключение вывода Reset для возможности использовать его как линию ввода/вывода (fuse-бит RSTDISBL). Данное простое и дешевое устройство призвано за считанные секунды восстановить конфигурацию (оживить микроконтроллер).
В первом случае (неправильный выбор источника тактовой частоты) проблему можно решить, но во втором и третьем случаях оживить микроконтроллер с помощью программатора с последовательным интерфейсом невозможно. Многие не решаются собирать параллельный программатор, потому-что выгоднее купить новый микроконтроллер.
Устройство использует метод параллельного высоковольтного программирования (HVPP), и в базе данных содержаться сигнатуры многих микроконтроллеров семейства ATmega. Пользователю необходимо лишь установить микроконтроллер с неправильной конфигурацией fuse-битов в сокет и нажать кнопку Start.
Принципиальная схема устройства
Основой является микроконтроллер ATmega8, который настроен на работу от внутреннего RC осциллятора 1 МГц. Это следует учитывать при программировании микроконтроллера при установке fuse-битов, а также необходимо установить бит EESAVE.
Светодиоды – индикаторы статуса предназначены для информирования пользователя о ходе процесса восстановления. С этой же целью может использоваться персональный компьютер с терминальной программой и COM портом (RS232). На плате предусмотрен разъем для подключения линии Tx микроконтроллера к интерфейсу RS232 компьютера, при этом необходимо использовать преобразователь логических уровней интерфейса, например на микросхеме MAX232. Терминальная программа настраивается на скорость передачи данных 38400 бод, без проверки четности, 8 бит данных, 1 стоп-бит. В терминальной программе отображается вся информация о ходе процесса восстановления конфигурации.
Пример содержимого окна терминальной программы в ходе работы устройства
Свечение светодиодов означает:
- включен зеленый светодиод – конфигурация Fuse-битов восстановлена. Если установлены Lock-биты, то проверяется только соответствие текущей конфигурации битов заводским установкам, и если она совпадает, то включается зеленый светодиод;
- включен красный светодиод – ошибка при считывании сигнатуры микроконтроллера: невозможно прочитать, отсутствует микроконтроллер в сокете или сигнатура не совпадает с имеющимися в базе данных устройства;
- мигает зеленый светодиод – сигнатура верна, конфигурация Fuse-битов не верная. Lock-биты установлены, требуется операция стирания Flash-памяти;
- мигает красный светодиод – сигнатура верна, lock-биты не установлены, но по некоторым причинам Fuse-биты не могут быть записаны.
На схеме изображена перемычка (джампер) Erase – с его помощью пользователь разрешает или запрещает стирание Flash и EEPROM памяти восстанавливаемого микроконтроллера. Если джампер замкнут – операция стирания разрешена, если разомкнут то операция стирания памяти запрещена.
Для питания необходим стабилизированный источник питания 12 В, что очень важно для режима высоковольтного параллельного программирования. Для питания управляющего микроконтроллера установлен регулятор напряжения 5.0 В 7805. Номиналы резисторов R7 – R23 могут лежать в диапазоне 470 Ом – 1 кОм.
Устройство действует следующим образом. Пользователь устанавливает пациента (восстанавливаемый микроконтроллер) в слот и нажимает кнопку Start, происходит инициализация режима высоковольтного параллельного программирования. Если пациент не отвечает высоким состоянием линии RDY/BSY, наш «доктор» использует другой путь для инициализации, даже если выводы XTAL переключены на внешний резонатор. После этого проводится стирание Flash и EEPROM памяти пациента, если данная операция разрешена (см. выше джампер Erase). Затем считывается сигнатура и проверяется поддержка установленного микроконтроллера, проверяются Lock-биты и если они не установлены (не блокируют доступ) происходит восстановление конфигурации fuse-битов к заводской соответственно модели микроконтроллера. После этого выполняется проверка установленных fuse-битов и включается соответствующие светодиод. Также посылается информация по последовательному интерфейсу в терминальную программу на компьютере.
Если загорелся зеленый светодиод, Вы можете быть на 100% уверены, что конфигурация fuse-битов восстановлена корректно.
Как видно, имеется три разъема (сокета) для многих микроконтроллеров AVR, которые совместимы по выводам с: ATmega8, ATmega16, ATtiny2313. Также имеется коннектор со всеми необходимыми сигналами для возможности подключения пользовательских адаптеров для других типов микроконтроллеров. Для этого пользователю нужно лишь правильно подключить сигналы к нужным выводам микроконтроллера. Как? Для этого нужно изучить техническое описание на нужный микроконтроллер: раздел «Программирование памяти» (memory programming), подраздел «Параллельное программирование» (parallel programming). Память управляющего микроконтроллера программой занята не полностью, поэтому в дальнейшем возможно пополнение списка поддерживаемых устройств.
Печатная плата была разработана односторонняя c размерами 55 мм × 92 мм. Со стороны компонентов необходимо установить несколько перемычек, либо можете сами разработать двухстороннюю печатную плату.
Внимание! Если Вы используете готовую, разработанную автором печатную плату, при монтаже компонентов учитывайте, что при установке слота DIP40 на печатную плату необходимо удалить его выводы с 29 по 37. Эти выводы не должны иметь электрического контакта с устанавливаемым микроконтроллером. На рисунке ниже наглядно указано какие выводы нужно удалить из слота (панельки) DIP40.
Поддерживаемые на данный момент устройства семейства ATmega (версия 2.01, 76 устройств):
- 2 КБайт:
- 4 КБайт:
- 8 КБайт:
- 16 КБайт:
- 32 КБайт:
- 64 КБайт:
- 128 КБайт:
- 256 КБайт:
Если Вам необходимо устройство для восстановления конфигурации fuse-битов микроконтроллеров семейства ATtiny, ознакомьтесь с проектом: Восстановление конфигурации Fuse-битов микроконтроллеров Tiny AVR (HVSP).
Файлы проекта (формат Eagle 5.4.0), принципиальная схема и рисунок печатной платы (pdf, png), .hex-файл и .bin-файл для программирования микроконтроллера – скачать
Обновление от 3.06.2010 г.
Программное обеспечение управляющего микроконтроллера обновлено, теперь устройство поддерживает режим последовательного высоковольтного программирования (HVSP) посредством специального адаптера, который автоматически определяется устройством и переводит его в режим HVSP (об этом выводится информация в терминальную программу, если устройство подключено к компьютеру).
Обновление аппаратной части: добавлено два адаптера:
- адаптер #1 – расширение для режима HVPP, поддержка 20-выводного микроконтроллера ATtiny26, 40-выводного микроконтроллера ATmega8515 и совместимых с ними микроконтроллеров;
- адаптер для HVSP для 8-выводных и 14-выводных микроконтроллеров.
Обновление программного обеспечения (версия 2.03):
- добавлена поддержка микроконтроллеров, режим HVPP: AT90S8515, AT90S8535, AT90S1200, AT90S4433, AT90S4414, AT90S4434, AT90S2333;
- добалена поддержка микроконтроллеров, режим HVSP: ATtiny11, ATtiny12, ATtiny13, ATtiny15, ATtiny25, ATtiny45, ATtiny85, ATtiny22, AT90S2323, AT90S2343, ATtiny24, ATtiny44, ATtiny84.
- В архиве содержаться изображения совместимости разъемов, индекс «B» означает использование адаптера #1, индекс «С» - использование адаптера HVSP.
Примечание
- При подключении устройства к компьютеру для наблюдения за ходом процесса, в терминальной программе не будут отображаться названия некоторых микроконтроллеров в связи с реализацией режима HVSP и нехваткой Flah-памяти программ микроконтроллера ATmega8.
- Некоторые текстовые константы используемые при работе через интерфейс RS232 хранятся в EEPROM памяти микроконтроллера. Поэтому, если Вы не будете использовать интерфейс RS232 для подключения устройства к компьютеру, необходимо записать файл EEP.BIN в EEPROM-память микроконтроллера с помощью программатора (заметьте, это файл формата BIN, не HEX).
Файлы проекта (формат Eagle 5.4.0), принципиальные схемы и рисунки печатных плат (pdf, png) для двух адаптеров, .hex-файл, .bin-файл и файл EEP.BIN для программирования микроконтроллера версия 2.03 – скачать
diy.elektroda.eu