Печать

Восстановление конфигурации Fuse-битов микроконтроллеров AVR - tiny (HVSP)

Опубликовано . Опубликовано в Программирование AVR

Рейтинг:   / 2
ПлохоОтлично 

    При разработке устройств на микроконтроллерах AVR часто требуется изменение конфигурации Fuse-битов (например, для изменения источника тактовой частоты, включения/выключения дополнительных функций). Все микроконтроллеры AVR имеют возможность внутрисхемного программирования (последовательный протокол). Однако при конфигурировании Fuse-битов легко допустить ошибку, что очень часто случается у новичков, и в итоге, при следующей попытке внутрисхемно запрограммировать микроконтроллер, программатор сообщает об ошибке (например, микроконтроллер не обнаружен).

     Распространенными случаями является ошибочное отключение вывода Reset микроконтроллера (Fuse-бит RSTDISBL, для возможности использовать его как линию ввода/вывода) или отключение режима ISP программирования (Fuse-бит SPIEN) – в этих случаях внутрисхемное программирование станет невозможным.

    Данное устройство – Attiny fusebit doctor – позволяет восстановить конфигурацию Fuse-битов (заводские установки, согласно техническому описанию) микроконтроллеров семейства Tiny фирмы Atmel. Поддерживает все микроконтроллеры, которые имеют интерфейс высоковольтного последовательного программирования (HVSP):

    - в 8-выводном корпусе: Attiny11, Attiny12, Attiny13, Attiny15, Attiny25, Attiny45, Attiny85, Attiny22, AT90s2323, AT90s2343;
    - в 14-выводном корпусе: Attiny24, Attiny44, Attiny84;
    - в 20-выводном корпусе, со специальным адаптером: Attiny261, Attiny461, Attiny861.

Схема устройства

    Устройство очень простое в изготовлении, не содержит дорогостоящих компонентов. Основой является микроконтроллер ATtiny2313, а также несколько резисторов и транзисторов (BC547, BC557), регулятор напряжения +5 В (7805T). Стоит заметить, что для питания устройства необходим стабилизированный источник питания с выходным напряжением +12 В (что важно для инициализации режима высоковольтного программирования).

    При программировании Fuse-битов микроконтроллера следует учитывать, что используется внутренний осциллятор 4 МГц без делителя на 8. А также можно включить опцию «fast rising power».

    Восстановление конфигурации микроконтроллера (пациента) начинается по нажатию кнопки Start. Для индикации статуса предусмотрены два светодиода, состояния которых обозначают:

    - включен зеленый светодиод – конфигурация Fuse-битов восстановлена. Если установлены Lock-биты, то проверяется только соответствие текущей конфигурации битов заводским установкам и если она совпадает, то включается зеленый светодиод;
    - включен красный светодиод – ошибка при считывании сигнатуры микроконтроллера: невозможно прочитать, отсутствует микроконтроллер в сокете или сигнатура не совпадает с имеющимися в базе данных устройства;
    - мигает зеленый светодиод – сигнатура верна, конфигурация Fuse-битов не верная. Lock-биты установлены, требуется операция стирания Flash-памяти;
    - мигает красный светодиод – сигнатура верна, lock-биты не установлены, но по некоторым причинам Fuse-биты не могут быть записаны, не проходит проверка после 10 попыток.

    Устройство для восстановления Fuse-битов действует согласно протокола высоковольтного последовательного программирования. Первоначально при запуске процесса, восстанавливаемый микроконтроллер переключается в режим высоковольтного программирования памяти, затем считывается сигнатура чипа и проверяется возможность работы устройства с ним. После этого выполняется операция стирания, если пользователь указал это. Следующий этап – считывание lock-битов и, если они не установлены, то контроллер получает новую конфигурацию Fuse-битов, соответствующую модели микроконтроллера - пациента. После этого выполняется проверка установки (верификация) Fuse-битов и, если тест проходит удачно, устройство заканчивает свою работу. В противном случае устройство повторяет цикл запись-верификация Fuse-битов 10 раз.

Подключение выводов микроконтроллеров в режиме высоковольтного последовательного программирования.


    На плате установлены две перемычки (джамперы) «chip erase» и «unknown signature»:

    - chip erase – разрешает операцию стирания всей Flash-памяти чипа. Это необходимо в том случае, если установлены lock-биты, т.е. нет возможности исправить Fuse-биты, пока не будут сняты lock-биты. Джампер включен – операция стирания разрешена.
    - unknown signature – неизвестная сигнатура чипа – явление очень редкое, но все же случается, что чип стер свою сигнатуру. Сигнатура, байты калибровки и другие данные не могут неизменно храниться в структуре чипа, они могут быть случайно повреждены (стерты) в случае нестабильного электропитания в процессе программирования. Обычно в таких случаях получаемые значения сигнатуры - FF FF FF, но чип работает нормально, Flash-память можно считать и записать. Если считанная сигнатура не совпадает ни с одной из базы данных устройства (включая значения FF FF FF и 00 00 00), то при включении этого джампера устройство запишет универсальную конфигурацию Fuse-битов. Универсальная конфигурация означает, что будет восстановлен ISP (включение бита SPIEN) и функциональность вывода Reset (отключение бита RSTDISBL) микроконтроллера, опции осциллятора затронуты не будут. При таких действиях микроконтроллер получит возможность дальнейшего восстановления, но уже при помощи обычного SPI программатора.

    Внимание! Не используйте опцию «unknown signature» с микроконтроллерами ATtiny11 или ATtiny15.

    Источник: diy.elektroda.eu

Файлы:
Дата 15.06.2010 Размер файла 129.59 KB Закачек 2333

Комментарии  

0 #1 Guest 30.09.2010 17:54
Хотелось бы узнать, возможно ли при помощи этого девайса воскресить тиньки 2313 ? и поддерживают ли они такой тип программировани я ? :eek:
Сообщить модератору
0 #2 AntonChip 30.09.2010 21:25
Доктор для tiny2313 здесь radioparty.ru/.../
Сообщить модератору
0 #3 AntonChip 28.01.2011 18:12
Цитирую vik:
подскажите пожалуста , какие fusebit выставить при прогррамировании управляющего контроллера Attny2313?

При программировани и Fuse-битов микроконтроллер а следует учитывать, что используется внутренний осциллятор 4 МГц без делителя на 8. А также можно включить опцию «fast rising power»
Сообщить модератору
0 #4 AntonChip 29.01.2011 09:49
SUT1=0
SUT0=1
CKSEL3=0
CKSEL2=0
CKSEL1=1
CKSEL0=0
SPIEN=0
Сообщить модератору
0 #5 Борис 26.05.2013 15:06
какая программа используется с данным программатором?
Сообщить модератору
0 #6 AntonChip 27.05.2013 09:14
Цитирую Борис:
какая программа используется с данным программатором?

Прибор работает автономно
Сообщить модератору
0 #7 Сан4ос 23.03.2015 23:27
Fuse Low C2 / High DF Всё работает прекрасно!
Сообщить модератору
0 #8 mic 29.01.2016 00:28
а толку без фузов? фузы скиньте для прошивки 2313 для этого доктора, иначе бесполезная весч
Сообщить модератору

Рекомендуем посмотреть