Иногда, разрабатывая устройства на 8 и 14-выводных микроконтроллерах AVR, требуется использовать вывод Reset как линию вода/вывода. Сделать это возможно, установив соответствующую конфигурацию Fuse-битов. Но после этих действий доступ к микроконтроллеру для внутрисхемного программирования теряется, т.к. мы отключаем линию Reset.

Мы рассмотрим устройство, которое позволит сбросить конфигурацию Fuse-битов микроконтроллеров Atmel ATtiny13, ATtiny25/45/85 к заводским установкам и, таким образом, даст возможность программировать микроконтроллер внутрисхемно (последовательный интерфейс).

Устройство при восстановлении конфигурации целевого микроконтроллера работает по интерфейсу высоковольтного последовательного программирования (HVSP). Следует отметить, что устройство не подходит для микроконтроллеров с 20 и более выводами, для них, в таких случаях, используется интерфейс высоковольтного параллельного программирования (HVPP).

Конструкция очень проста в изготовлении, не содержит дорогостоящих компонентов. Основой является микроконтроллер ATtiny2313. Кроме того, потребуется светодиодный семисегментный 4-разрядный индикатор, на котором будут отображаться значения установленных Fuse-битов.

Основные характеристики устройства:

- чтение сигнатуры целевого микроконтроллера, значений Fuse-битов - старший/младший байт;
- сброс установок Fuse-битов на целевом устройстве к заводским;
- поддержка работы с микроконтроллерами - ATtiny13, ATtiny25/45/85;
- возможность работы с микроконтроллерами ATtiny24/44/84 (потребуется изготовить переходник);
- автономное устройство, отображение значения Fuse-битов на семисегментном индикаторе.

Для сборки нам потребуется:

- микроконтроллер Atmel AVR ATtiny2313;
- 4-разрядный семисегментный индикатор с общим анодом;
- два резистора номиналом 4.7 кОм;
- NPN транзистор BC547 или эквивалентный;
- интегральный регулятор напряжения 78L05;
- небольшая макетная плата;
- источник напряжения +12 В.

Принципиальная схема

Fuse-бит доктор с LED индикатором

Для минимизации числа компонентов индикатор подключен к микроконтроллеру непосредственно. Не используются транзисторы и токоограничительные резисторы. В таком методе задействованы 12 линий ввода/вывода микроконтроллера (4 разряда + 7 сегментов + десятичная точка). для Attiny2313 необходимо выставить такие фьюз-биты: lfuse: 0xE4, hfuse: 0xDF, efuse: 0xFF, частота тактирования контроллера 8 МГц.

Для режима высоковольтного последовательного программирования нужно 6 сигнальных линий от микроконтроллера ATtiny2313. Нам потребуется подать +5 В для питания целевого микроконтроллера, +12 В на вывод Reset целевого микроконтроллера, сигнал SCI (serial clock input), сигнал SII (serial instruction input), сигнал SDI (serial data input) и SDO (serial data out)/ Для этого мы используем оставшиеся свободные линии ввода/вывода ATtiny2313. Некоторые линии ввода/вывода будем использовать одновременно в интерфейсе HVSP и для управления индикатором.

Кнопка используется для подтверждения восстановления конфигурации и для переключения между отображаемыми считанными значениями Fuse-битов, и, также подключена порту микроконтроллера, который используется для управления индикатором.

После подачи питания считывается сигнатура целевого микроконтроллера по интерфейсу HVSP, по которой определяется имя целевого микроконтроллера. Затем считываются Fuse-биты (младший, старший и расширенный).

Значения Fuse-битов могут быть прочитаны пользователем путем нажатия кнопки, значения отображаются в шестнадцатеричном формате.

Нажатие и удержание кнопки около 1 секунды переводит устройство в режим программирования заводских установок Fuse-битов. По окончанию программирования считывание значений повторяется, и пользователь может удостовериться в верности установок. Так же легко можно восстановить работоспособность смартфона программой SP Flash Tool на примере UMI XII.

Для питания необходим внешний источник напряжения +12 В. Установленный регулятор напряжения +5 В используется для питания целевого и управляющего микроконтроллера. Автором, для питания схемы, была применена батарея типа A23 с напряжением 12 В.

Транзистор BC547 используется для подачи напряжения программирования +12 В на вход Reset целевого микроконтроллера.

Использование

- установите целевой микроконтроллер в слот;
- подайте питание +12 В на схему;
- на дисплее отобразится имя целевого микроконтроллера после идентификации по сигнатурным байтам;
- нажимайте кнопку для смены контента дисплея (имя контроллера, старший байт, младший байт, расширенный байт);
- нажмите и удерживайте кнопку около 1 секунды для сброса Fuse-битов к заводским настройкам.

 Источник: simpleavr


Архив для статьи "Fuse-бит доктор с LED индикатором"
Описание: Файлы прошивки микроконтроллера и EEPROM
Размер файла: 2.55 KB Количество загрузок: 1 574 Скачать