Меню сайта |
|
|
Категории раздела |
|
|
Мини-чат |
|
|
|
ПРОГРАММАТОР Altera ByteBlaster и AVReal.
Это статья по программатору Altera ByteBlaster и AVReal. может это не самый современный/продвинутый/универсальный вариант но рабочий и несложный я до сих пор им пользуюсь.
Микроконтроллеры семейства AVR поддерживают последовательное внутрисхемное (или внутрисистемное) программирование ISP - in-system programming при рабочем напряжении питания (что немаловажно, так как при паралельном прогр. испльзуется напряжение +12В и происходит ощутимый нагрев МК) по интерфейсу SPI - serial periferal interface - последовательный периферийный интерфейс. Вникать в подробности этого интерфейса пока что не будем, скажем только, что он использует две сигнальных линии, одну для синхронизации, одну для выбора ведомого устройства (того, с которым должен быть обмен данными) и, конечно, общую линию. Для программирования используется также сигнал ~RESET для сброса МК, и вывод контроллера XTAL1 для передачи тактовых импульсов. Разница между последовательным и паралельным программированием заключается в том, что при последовательном данные загружаются в МК побитно, а при паралельном - побайтно. Таким образом, для последовательного программирования нужно меньшее число линий в кабеле или шлейфе адаптера. Внутрисхемное программирование позволяет программировать (или перепрограммировать в процесе отладки) МК непосредственно в плате готового устройства. Таким образом, отпадает необходимость в отдельном программаторе со своим источником питания и панельками для крепления МК, которые бывают в довольно-таки разных корпусах - DIP с различным числом выводов, а также для поверхностного монтажа - PLCC, TQFP, ... всех и не перечислить :). Одним из наиболее удобных и несложных программаторов (адаптеров для внутрисхемного программирования) является Altera ByteBlaster. Адаптер питается от устройства с МК через линию VCC, соответствующий ей вывод разъема на плате соединен с +5В. Этот адаптер можно использовать как для программирования AVR МК, так и Altera ПЛИС в режиме JTAG.
Рисунок 1 - Схема переходника Altera ByteBlaster.
Рисунок 2 - Один из возможных вариантов печатной платы переходника
Слева платы к отверстиям при помощи угольников крепится разъем DB25M (для соединения с LPT портом) справа припаивается шлейф, заканчивающийся разъемом IDC-10 для включения в плату устройства, на которой установлен МК. Питается адаптер от платы с МК.
Сам адаптер является только связующим звеном между компютером и МК. Передачу данных, которые находятся в HEX-файле, осуществляет программа AVReAl. (линк). Для работы AVReAl под ХР и вин2к нужен драйвер LPT порта (в архиве).
Сама программа AVReAl является консольным приложением. Поэтому для удобности работы с ней можно написать файлы-сценарии с готовыми параметрами и ключами. Например в каталоге avreal\ находится сама программа, и подкаталоги с бат-файлами, настроенными под конкретный МК. Для начала достаточно проводить такие операции - чтение/запись/стирание памяти программ (флеш), конфигурация фьюзов. Вот пример файла для чтения флеш МК ATTiny2313
tiny2313-read.bat
@cls ..\avreal32 +tiny2313 -p1 -ab -o0 -n -%% -r read.hex >read.output
Ключи: +tiny2313 - тип МК -p1 - номер LPT порта -ab - тип адаптера Altera ByteBlaster, ByteBlasterMV or ByteBlaster-II -o0 - генерация avreal-ом тактовой частоты -n - Использовать последние 2 байта кода как счетчик стираний -%% - Выдавать по ходу дела дополнительную информацию (производимые действия и ответы чипа) -r - Прочитать из чипа в файл read.hex >read.output - лог работы будет в этом файле
После запуска этого файла, в каталоге будут созданы два новых файла - read.hex - собственно то, что находится в памяти МК read.output - лог работы программы. Содержимое файла read.output:
avreal/WIN32 - AVR controllers LPT programmer by Redchuk Alexandr v1.25rev2 (Apr 26 2005 10:01:59) ReAl@real.kiev.ua bug-reports, suggestions and so on mail to avreal@real.kiev.ua
Command: +tiny2313 -p1 -ab -o0 -n -% -r read.hex % LPT base port 0x378 % assume that LPT data writes not faster then 1uS % ByteBlaster found % ByteBlaster mode % osc = 0kHz -> XTAL will be generated % with SCK low 2 periods, high 2 periods % Reset % PgmOn reply 0x00005300 % Synchronised after 1 try % GetID reply 0x0030001E % GetID reply 0x00300091 % GetID reply 0x0030000A % Read ID: 0x1E910A Device connected, TINY2313 detected % ReadLock command 0x58000000 % ReadLock reply 0x005800FF Chip not locked % ReadOsccal command 0x38000000 % ReadOsccal reply 0x0038004C % ReadOsccal command 0x38000100 % ReadOsccal reply 0x00380045 Read number of erases 25 % ReadFuses command 0x50000000 % ReadFuses reply 0x005000E2 % ReadFuses command 0x58080000 % ReadFuses reply 0x005808DF % ReadFuses command 0x50080000 % ReadFuses reply 0x005008FF Fuses OSCCAL = 4C, 45 CKDIV = 1 CKOUT = 1 SUT = 2 CKSEL = 2 DWEN = 1 EESAVE = 1 WDTON = 1 BODLEVEL = 7 RSTDISBL = 1 SELFPRGEN = 1 Reading CODE memory ... done Reset pin released adapter outputs -> Hi-Z state
Аналогичные логи выдают операции стирания, записи и конфигурации фьюзов. Файл для стирания:
tiny2313-erase.bat ..\avreal32 +tiny2313 -p1 -ab -o0 -n -e -%% >erase.output
вся разница в сравнении с чтением только в ключе -e - стирание чипа
Файл для записи:
tiny2313-write.bat @cls ..\avreal32 +tiny2313 -p1 -ab -o0 -n -w charg.hex -%% >write.output
-w - запись чипа charg.hex - имя HEX файла, который нужно записать в МК. Он должен находиться в каталоге с бат-файлом. Здесь нужно быть внимательным с наименованием HEX файла.
Файл для конфигурации фьюзов:
tiny2313-fuse.bat ..\avreal32 +tiny2313 -p1 -ab -o0 -n -w -%% -fCKSEL=2,CKDIV=1,SUT=2 >fuse.output
Здесь после ключа -f указываем наименования конфигурируемых фьюзов и их новые значения. Более подробно смотреть в описании программы (находится в прикрепленном архиве).
Фьюзы каждого МК подробно описаны в даташитах. Хочется только заметить, что с завода они настроены на внутренний RC генератор с частотой 1МГц. Также без надобности лучше не трогать фьюзы, отвечающие за блокировку чтения чипа, за разрешение внутрисистемного программирования и за линию сброса. Также запрограмированным называется фьюз, в который записан лог. "0", а незапрограмированным соотв. "1".
Вникать в структуру HEX-файла наверно нет особого смысла. Компиляторы (AVR Studio, VMLab, и т.д.) в большинстве выдают Intel hex формат.
Существует также оболочка для работы с программой AVReal Использование ее позволяет обходиться без бат файлов. Оболочка должна находиться в том же каталоге, что и AVReal . Сначала нужно установить драйвер к LPT порту (находится в архиве dlportio.zip). Потом запустить файл avrealshell.exe .
Рисунок 3 – Вид на графическую оболочку к AVReal
На вкладке Общие указываем путь к HEX файлу (имя файла программной памяти). Для проверки можно прочитать содержимое памяти МК (нажав кнопку ЧИТАТЬ МИКРОСХЕМУ).
Рисунок 4 – Выбор адаптера и задание частоты
Далее выбираем тип адаптера, и задаем опцию AVReal сам генерирует XTAL.
Рисунок 5 – Выбор типа МК
После выбора МК можно прочитать содержимое его памяти программ. Биты блокировки лучше не программировать. На вкладке 4 можно задать новые значения фьюзов, на вкладке 5 оболочка отображает результаты работы с МК.
Все вопросы, как обычно, на форум http://elektron.ucoz.ru/forum/9 В прикрепленных архивах схема и возможный вариант разводки платы адаптера в формате PCAD, AVReal с оболочкой и бат файлами, настроенными под работу с MEGA16 и Tiny2313.
avrealshell скачать: http://elektron.ucoz.ru/statyi/avrealshell.rar BB_PCAD скачать: http://elektron.ucoz.ru/statyi/BB_PCAD.rar |
Категория: МикроКонтроллеры | Добавил: ЛЕВША (03.03.2008)
| Автор: Vasyl' Yefymchuk
|
Просмотров: 20134
| Рейтинг: 5.0/1 |
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]
|
|
Поиск |
|
|
Статистика |
|
|
Наш опрос |
|
|
|