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

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

Логин *
Пароль *
Запомнить меня
 
Суббота, 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 - это то, что я лично пробовал перепрограммировать
В дальнейшем я планирую дополнить программатор некоторыми функциями, расширить номенклатуру "реанимируемых" контроллеров. В планах добавить функцию считывания байта сигнатуры и, в зависимости от типа контроллера, прошивать его своими "даташитовскими" значениями. А, вообще, приведённых сведений более чем достаточно, чтобы пользователь мог сам модернизировать программатор - хоть в схемной, хоть в программной части.

Источник

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

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


Защитный код
Обновить

Комментарии   

aleks0306
0 #3 aleks0306 25.09.2013 08:34
getchip.net/.../... Сам собирал работает
Цитировать
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
Цитировать
 

Топ

Управление…

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

ТЕЛЕФОННАЯ…

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

500 схем для…

1. 500 схем для радиолюбителей. Приемники2. 500 схем для радиолюбителей. Усилители…

Цифровой…

Цифровой вольтамперметр предназначенный для установки в блок питания для отображения…

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

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

Импульсный…

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

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

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

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

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

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

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

Простой…

Автоматические измерители КСВ приобрели заслуженную популярность благодаря тому, что не…

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

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

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

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