Войти Регистрация

Войдите в свой аккаунт

Логин *
Пароль *
Запомнить меня
 
Суббота, 01 января 2011 18:31

Параллельной программатор для AVR

Оцените материал
(1 Голосовать)
Параллельной программатор для AVR - 5.0 out of 5 based on 1 vote

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

Идея разработки этого устройства родилась после ошибочной записи значений фьюзов в ATmega8, после которой вывод сброса стал обычным вводом/выводом порта, синхронизация предусматривала внешний источник, да ещё и запрещалось программирование по SPI - короче говоря "полный набор". Поиск схем параллельного программатора по интернету и в печати не дал практически ничего, что удовлетворяло бы заданным условиям простоты и повторяемости. После изучения соответствующих даташитов решено было разработать устройство на одном микроконтроллере, которое восстанавливало бы значения фьюзов, необходимые для работы на обычном последовательном программаторе. Вообще-то, честно говоря, параллельный программатор больше ни для чего и не нужен в любительском конструировании - все функции программирования успешно выполняют широко распространённые последовательные "5 проводков", "STK-200", "AVR910", "usbasp" иже с ними.
Итак, задача поставлена - ищем решение. Начинаем, конечно, с выбора контроллера. Для параллельного программирования необходимо иметь как минимум 19 выводов ( см. таблицу).

1

Восьмивыводные кристаллы сразу отпадают. Можно, открывая ключи +5В и +12В от одного вывода, использовать 18 линий- в этом случае появляется возможность использовать 20-ти выводные корпуса, ATtiny2313, например. В своей же конструкции я использовал ATmega8515, исходя исключительно из удобства расположения портов (на одной стороне) и линий питания - всё для упрощения разводки печатной платы. Можно применить и 28-ми выводные контроллеры, но я изначально планировал последующее подключение LCD-индикатора и 4-х кнопочной клавиатуры. А, в принципе, собрать устройство можно на любом имеющемся кристалле с необходимым количеством выводов - длина кода - 330 байт.
Кроме того, для коммутирования напряжений питания 5 В и программирования 12 В необходимы соответствующие ключи. Изобретать велосипед я не стал, и использовал широко известное схемное решение в виде транзисторного ключа.
Как и в любой диалоговой системе необходимы устройства ввода и вывода - добавляем, соответственно, кнопку и светодиод.
В результате родилась схема, представленная на рисунке:

восстановление микроконтроллера

Схема, как вы видите, проста до безобразия и особых разъяснений не требует. Единственное, что вызовет определенные конструктивные затруднения - это подключение программируемых контроллеров к программатору. Можно это сделать, например, коммутацией проводниками на макетной плате, а можно (и гораздо удобнее) собрать универсальную плату расширения для основных типов контроллеров (или для тех, с которыми постоянно работаешь), подключаемую к программатору шлейфом.
Питать устройство необходимо от стабилизированного источника 12 В. На микросхеме IC1 собран стабилизатор напряжения питания 5 В. Кнопка SA1 "PROG"- даёт команду на перезапись фьюзов, светодиод зелёного свечения VD1 "DONE" - сигнализирует об успешном перепрограммировании. На транзисторах VT1 - VT4 собраны ключи для коммутации напряжений питания и программирования. Сразу оговорюсь, что схему можно совершенствовать сколько душе угодно. Допустим, установить стабилизатор на 12 В - в этом случае можно питать устройство от нестабилизированного источника 16-22 В. Возможно заменить транзисторные ключи на микросхему коммутатора тока и пр.
Конструкция программатора может быть любой - в зависимости от Ваших возможностей и умения. Я сам программатор сделал на печатной плате, а программируемые микроконтроллеры подключал через макетку. В дальнейшем планирую сделать универсальную плату расширения и подключать к программатору 20-ти жильным шлейфом. Детали любые малогабаритные, номиналы указаны на схеме.
Пару слов о программной части. Программа написана на языке С в оболочке WinAVR. Порядок действий в ней полностью соответствует даташиту ATmega8 (раздел о параллельном программировании).
Работать с программатором очень просто. Контроллер, в котором необходимо переписать фьюзы, вставляется в соответствующую панельку. Включается питание и нажимается кнопка "PROG". Загоревшийся светодиод "DONE" сигнализирует об успешной перезаписи. Питание выключается и, после изъятия из панельки, контроллер используется обычным способом.
В своей конструкции я подключал к программатору, кроме панели для ATmega8 ещё панель для ATmega16, поскольку алгоритм программирования для него почти такой же и прошиваемые значения фьюзов позволяют работать с последовательным программатором. В результате устройство даже в такой представленной "игрушечной" версии успешно "реанимирует" кроме ATmega8 ещё и ATmega8535, ATmega16, ATmega32 - это то, что я лично пробовал перепрограммировать
В дальнейшем я планирую дополнить программатор некоторыми функциями, расширить номенклатуру "реанимируемых" контроллеров. В планах добавить функцию считывания байта сигнатуры и, в зависимости от типа контроллера, прошивать его своими "даташитовскими" значениями. А, вообще, приведённых сведений более чем достаточно, чтобы пользователь мог сам модернизировать программатор - хоть в схемной, хоть в программной части.

Источник

Прочитано 23706 раз

Добавить комментарий


Комментарии   

aleks0306
0 #3 aleks0306 25.09.2013 08:34
http://www.getchip.net/posts/059-ispravlyaem-avr-fyuzy-pri-pomoshhi-atmega-fusebit-doctor/ Сам собирал работает
Цитировать
RA_DU_GA
0 #2 RA_DU_GA 18.08.2013 03:26
А зачем??
Заюзайте ту же мегу 8 - это дешевле))
К тому же, если захотите дальше "вкусности" ввиде индикатора, клавиатуры и т.п....
Цитировать
N_kolay
0 #1 N_kolay 29.03.2011 09:10
хочу тоже самое но на attiny2313 но также для атмега8
Цитировать
 

Топ

ТЕЛЕФОННАЯ…

Приставка-спикерфон предназначена для громкоговорящей телефонной связи. Занятие линии АТС…

Управление…

Автор разработал программу и устройство для управления различными электро и…

Импульсный…

Импульсный преобразователь сетевого напряжения Применение импульсного преобразователя…

Вольтамперметр на…

Pахотел повторить, но буржуй просил за прошитый МК 14 евро, было принято решения догнать…

Программатор PicKit2

PICkit 2 это простой USB программатор для микроконтроллеров PIC, микросхем памяти и…

Импульсный блок…

Импульсный блок питания 180Вт Мощность блока питания — около 180 Вт, выходное напряжение…

Эмулятор ключей…

Назначение. Устройство предназначено для считывания, хранения и эмуляции ключей домофонов…

Ремонт импульсного…

Вскрытие корпуса БП:Начинаем проверку, особо обращая внимание на поврежденные, изменившие…

ЛЕГЕНДАРНАЯ «СДУ С…

В 1984 году журнал РАДИО опубликовал схему СДУ, в которой использовался принцип цифрового…

ИНДИКАТОР УРОВНЯ…

Принципиальная схема индикатора показана на рисунке. Эта схема использовалась для…

Голосовой монитор…

Голосовой монитор (далее – монитор) предназначен для контроля телефонной линии или…

ТАЙМЕР, УПРАВЛЯЮЩИЙ…

В теме представлено таймерное устройство, управляющее освещением багажника ВАЗ-2114, но…