Технический Портал Левши Суббота, 21.12.2024, 20:56
| RSS
Меню сайта

Категории раздела
ПИТАНИЕ [17]
МЕТАЛЛО ДЕТЕКТОРЫ [1]
СВЯЗЬ [5]
НАЧИНАЮЩИМ [6]
МикроКонтроллеры [15]
АВТОМАТИКА [4]
АУДИО. [2]
СИСТЕМЫ ОХРАНЫ И БЕЗОПАСНОСТИ [6]
СИСТЕМЫ ДЛЯ САМООБОРОНЫ [1]
ТЕЛЕФОНИЯ [7]

Мини-чат

Главная » Статьи » РАДИОЭЛЕКТРОНИКА » МикроКонтроллеры

ПРОГРАММАТОР Altera ByteBlaster и AVReal.
Это статья по программатору Altera ByteBlaster и AVReal.
может это не самый современный/продвинутый/универсальный вариант smile но рабочий и несложный
я до сих пор им пользуюсь.

Микроконтроллеры семейства 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
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск

Статистика

Наш опрос
КАКАЯ ОБЛАСТЬ ЭЛЕКТРОНИКИ ВАС ИНТЕРЕСУЕТ?
Всего ответов: 2537

Друзья сайта
  • Форумы Игростроя
  • CЛОВЕНСК
  • RemEXpert
  • ПАЯЛЬНИК
  • МЕДТЕХНИКА

  • Copyright MyCorp © 2024