ГлавнаяПрограммыПоискКонтактыФорум

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

Поводом для создания данного устройства послужило появление новых чипов AVR поддерживающих отладку по протоколу debugWIRE. Так как он не является протоколом программирования, то после смены исходного кода во время отладки и, естесственно, забыв отключить фуз DWEN - AVRStudio не может заново "подключиться" к отлаживаему кристаллу. Это значит, что фуз DWEN не может быть "сброшен" и, следовательно, отлаживаемый чип больше не может быть запрограммирован через SPI.
После "убийства" двух tiny2313 была написана программа для mega16, которая позволяла, подключившись к меге через житаг, в AVRStudio перепрограммировать фузы тини в параллельном режиме.
Правда это было несколько неудобно и была написана программа для PC, в которой была возможность программирования всех бит фузов для tiny2313.
Дальнейшим развитием стало введение возможности программирования, проверки и чтения Flash памяти, а также введена поддержка других МК.
Поддержка программирования EEPROM не вводилась в виду ненадобности. Вообще программа для МК должна быть написана таким образом, чтоб она сама устанавливала начальные значения EEPROM.

Самым очевидным недостатком данного устройства является то, что для сборки программатора AVR необходимо запрограммировать mega16. Однако такой подход имеет право на существование, т.к. даже Atmel предлагает для своего программатора AVRISP схему на своем же микроконтроллере.
Mega16, используемая в данном устройстве, может быть запрограммирована при помощи программатора AVReal и схемы FBPRG ("6 проводков на LPT"). Или через интерфейс JTAG с помощью AVR miniICE
К сожалению COM порт компьютера не позволил реализовать "супербыстрое" программирование. Однако на глаз все равно оно проходит быстрее чем последовательное.
DIP корпуса использованы исключительно потому, что автором при отладке используются именно они. Желающие могут сами переделать всю эту конструкцию под SMD.

Особенности:

Поддерживаемые микроконтроллеры:
ATtiny 2313, ATmega32, ATmega16, ATmega8515, ATmega8535, ATmega8, ATmega48, ATmega88, ATmega168

Схема:

Схема проста и не имеет каких то особенностей.

Mega16 должна быть запрограммирована файлом code.hex из прилагаемого архива.
Фузы mega16 должны быть запрограммированы следующим образом:
CKSEL = 1110
SUT = 00
В архиве также имеется схема в форматах PDF и PCAD2002, разведенная печатная плата для головного модуля устройства и адаптеров для различных видов МК.

Пример реализации:

Центральный модуль.

Плата адаптеров.

Работа с устройством

Перед началом работы необходимо вставить программируемый микроконтроллер в соответствующую панельку. Соединить центральный модуль устройства с платой адаптеров 20-ти проводным кабелем. Подать питание и запустить управляющую программу ParaPROG.exe

После старта управляющая программа имеет следующий вид:

Доступна только одна кнопка "Read Chip". При нажатии на эту кнопку программа ParaPROG осуществляет поиск программируемого микроконтроллера и пытается прочесть фузы и лок биты.

Если поиск устройства был неудачным программа выводит сообщение о неудачной попытке и остается в прежнем состоянии.

При удачном поиске осуществляется автоопределение подключенного микроконтроллера, считываются фузы, лок биты и вся эта информация выводится в основном окне программы. Становятся доступны все остальные кнопки.

Значения фузов и лок битов выводятся в формате принятом Atmel. Т.е. 1 = бит не запрограммирован (соответсвует установленному флажку) и 0 = бит запрограммирован (соответсвует снятому флажку)

Кнопки выполняют следующие функции:
Read Chip
Нажатие на эту кнопку осуществляет синхронизацию управляющей программы и центрального модуля программатора, поиск программируемого микроконтроллера, читает сигнатуру, фузы и лок биты
Write Fuses
Запись фузов в соответсвии со значениями заданными флажками для фузов
Write Lock Bits
Запись лок битов соответсвии со значениями заданными флажками для фузов
Chip Erase
Стирает Flash память программируемого микроконтроллера и сброс лок битов
Write Flash
Программирование Flash памяти в соответсвии с файлом, имя которого задано в поле рядом с этой кнопкой
Verify Flash
Сравнение Flash памяти с содержимым файла, имя которого задано в поле рядом с кнопкой Write Flash
Read Flash
Считывание Flash памяти в файл, имя которого задано в поле рядом с этой кнопкой

Программа принимает для записи/сравнения, а также выходным для чтения Flash является файлы binary формата. Получить их можно при помощи утилиты hex2bin из прилагаемого архива.
Во время работы программой выводятся сообщения в строке состояния, диалоговых окнах помогающие пользователю сориентироваться в работе программы.

Замеченные и пока не устранненные ошибки:
Так как при постоянно поданном напряжении +12V на Reset программируемые МК довольно сильно грелись, алгоритм работы устройства был сменен на временное включение режима программирования и немедленное выключение его после выполнения действия. Вледсвие этого при работе с некоторыми МК (например мега48) происходит рассинхронизация управляющей программы и основного модуля программатора. Поэтому рекомендуется иногда нажимать кнопку "Read Chip" проводя этим повторную синхронизацию (желательно перед каждым новым действием)
Иногда имя выходного файла при операции "Read Flash" самопроизвольно меняется на имя "Reading Flash"

Прилагаемые файлы:
Прошивка, управляющая программа, схема и печатные платы

Новая версия управляющей программы 0.2.0.7

Добавлено:


ParaPROG v 0.2.0.7

Автор проекта Павел Сироткин pol_s@list.ru и Олег Шепель oleg@shepel.ru

Обсудить статью на форуме

увлажнители воздуха бытовые . Телефонный справочник Подмосковья - справки в бассейн. . Доставка бутилированной воды, заказ воды киев, доставка минеральной воды! . фото приколы на разные темы и прикольное видео

Если вы разработали схему или написали статью, и хотите чтобы о ней узнали все, пишите нам и мы разместим вашу статью (схему). Подробнее...
Сайт eldigi.ru При копировании материала с данного сайта, обязательна ссылка на сайт eldigi.ru и на первоисточник!
Администрация сайта eldigi.ru