Иногда, разрабатывая устройства на 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 Скачать

Комментарии  

0 #1 malec 19.12.2014 11:53
а есть ли прошивка для тини2313 ?
Сообщить модератору
0 #2 malec 19.12.2014 12:02
и какие фьюзы должны быть выставленные?
Сообщить модератору
0 #3 AntonChip 20.12.2014 22:39
Цитирую malec:
и какие фьюзы должны быть выставленные?
Написано в статье
Сообщить модератору
0 #4 malec 24.12.2014 07:51
ДОБРОГО ДНЯ АНТОН! ВЕРНУЛ К ЖИЗНИ 2-Е ТИНИ85
ПРОБЛЕМА С ИНДИКАЦИЕЙ, ПОДКЛЮЧИЛ ВЕРНО
ПОДСКАЖИ В ЧЕМ МОЖЕТ БЫТЬ ЗАГВОЗДКА?
А СТАТЬЯ СУПЕР!!!
Сообщить модератору
0 #5 malec 24.12.2014 16:54
разобрался!!!!! Криво почему-то встала прошивка. прошил заново и все ОК!!
Спасибо за статью ! Респект и уважуха!!!!!!!! !!!!!!!!!!!
Сообщить модератору
0 #6 ralec 06.02.2015 08:28
Хорошая статья, спасибо.
А можно исходники посмотреть?
Сообщить модератору
0 #7 Алексаныч 06.02.2015 20:26
Мега вешь!Спасибо за схему и публикацию.Сдел ал на печатке.Транзис тор КТ-315 Стаб 78L05
Сообщить модератору
0 #8 4inb 15.03.2015 16:12
А что делать если у меня mega128 требует лечения?
Сообщить модератору
0 #9 Алексаныч 30.04.2015 22:44
Там другой доктор
Сообщить модератору