Восстановление конфигурации Fuse-битов ATtiny13, ATtiny25/45/85 (HVSP)


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

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

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

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

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

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

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

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

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

Принципиальная схема устройства для восстановления Fuse-битов

Для минимизации числа компонентов индикатор подключен к микроконтроллеру непосредственно. Не используются транзисторы и токоограничительные резисторы. В таком методе задействованы 12 линий ввода/вывода микроконтроллера (4 разряда + 7 сегментов + десятичная точка).

Семисегментный Индикатор MR-3461SRB

Для режима высоковольтного последовательного программирования нужно 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-битов. По окончанию программирования считывание значений повторяется, и пользователь может удостовериться в верности установок.

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

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

Устройство было собрано на монтажной плате, вид конструкции показан на рисунках ниже.

Устройство восстановления Fuse-битов

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

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

Устройство для восстановления Fuse-битов в работе


Автор сообщает о возможности дальнейшего усовершенствования устройства и расширения списка поддерживаемых микроконтроллеров.

Загрузки

Исходный код программы микроконтроллера (avr-gcc, Си) – скачать
hex-файл для прошивки памяти программ микроконтроллера – скачать
hex-файл для прошивки EEPROM микроконтроллера – скачать

На английском языке: HVSP fuse resetter for ATtiny13, ATtiny25/45/85

Перевод: Vadim по заказу РадиоЛоцман