Компоненты и технологии, № 7'2003
Окончание. Начало в № 42003
AVR-микроконтроллеры второго поколения:
средства разработчика
Появление на рынке нового типа микроконтроллеров, естественно, поддерживается программными и аппаратными средствами. Одновременно с выходом AVR-микроконтроллеров был представлен ассемблер AVRASM и стартовый набор MCU100. Вскоре им на смену пришли пакет AVR Studio и стартовые наборы STK200 и STK300. Языки высокого уровня представлены компиляторами С, Паскаля,
Форта и Бэйсика.
Вслед за развитием аппаратной части AVR-микроконтроллеров выпускаются соответствующие версии средств поддержки, обеспечивающие работу новых аппаратных модулей, добавляемых в новые кристаллы. В данной статье рассмотрены программные и аппаратные средства для AVR-микроконтроллеров, применяемые российскими разработчиками.
Николай Королев
[email protected] Дмитрий Королев
Программные средства
Программная среда AVR Studio фирмы Atmel уже имеет историю развития. Как обычно, первая версия пакета могла лишь продемонстрировать возможности программирования для AVR-микроконтроллеров. Для реальной работы она явно не годилась, вынуждая программистов пользоваться встроенным ассемблером, который вызывался из командной строки.
Вторая версия была немногим лучше предыдущей. Более или менее работоспособной средой можно считать AVR Studio версии 3.20. Дальнейшие модификации третьей версии заключались в повышении устойчивости работы и добавлении поддержки вновь выпускаемых микросхем. Затем развитие AVR Studio пошло, на первый взгляд, странным путем — параллельно с третьей версией появилась четвертая, и некоторый период времени они существовали сов-
AVRStudio - |С \PioqiM Fiie»\Al«el\AVR Too4i\AviAtte«bJet\Appf»ole»\<svt100 аш|
р Ре Erasa £Л ¥«« lock D<tug а*
DiSBflPO PaPS »•»*** а > ■ if • ♦ мір (І- в’:
3 * *-Г7]'“ ■ ✓ I
Hams | V I B«t I Addrett
• ^ LKLTT'iA-;
♦ £5 R*y>»w 16-31
•fi £3, Processa
- Q I/O ATMEGA8515
♦ O ANALOG.COMPARATOR
8 g CPU
SI m SREG □□□□□□□□ 3F(5F|
♦ SPH □□□□□□□□ 3E(5E)
♦ ' SR. □□□□□□□□ 301501
♦ EMCUCR □□□□□□□□ 36(56)
♦ ^ MCUCR □□□□□□□□ 35(561
♦ ^ MCUCSR □ □□□□ 34 (54)
© 0SCCAL □□□□□□□□ 04(24)
♦ g SPMCR □O □□□□□ 37(57|
i m snon □□□□□ □ 30(50)
♦ 0 EEPROM
ffi EXTERNALJNTERRUPT
* ^ PORTA
S ^ PORTB
^ PORTB □□□□□□□□ 18(38)
^ DDR8 □□□□□□□□ 17(37)
P1MB □□□□□□□□ 16(36)
s PORTC
as ^ P0RTD
W ^ PORTE
ffi -t SP1
♦ 0 TIMER COUNTER 0
ffi © TIMER COUNTER 1
ffi S3 USART
ffi WATCHDOG
0 Ptcrci| Q I/O | О ІШо|
:ed inside the routines
nclude *8515def inc* rjnp RESET
Reset Handle
• This subroutine waits until the EEPROM is ready to be progranned then
• programs the EEPROM with register variable 'EEdwr* at address 'EEawr EEawr*
• Hunber of words
• Hunber of cycles
• Low Registers used a High Registers used
1200 8515 1200 8515 Hone
.Э (EEdwr.EEawr EEavrh)
S ♦ return
7 + return
8 4 return (if EEPROM is ready) 11 + return (if EEPROM
me register
def EEdwr -ГІ6
def EEawr -ГІ7
def EEawrh -rl8
EEWn ter
sbic EECR.EEVE
rjnp EEVnte
out EEAR EEawr
data byte to write to EEPROM address low byte to write to address high byte to vrite to
.if EEVE not clear
output address for 1200. coomented out I
the two following lines nust be replaced with the line above if 1200 is used li*l_l - —........................................—..................
[p C:\Plogam FteiVAlmdVAVR Tooh\AviAwentilwNAppno>e»\avi100 atw|
Loaded pkjgin ST К 500
Loaded partfle. С VPiogum FloVAemeftAVR Toofa\P«iD«cr<*icnfieiVU mega8515 art
Рис. 1. Рабочее окно AVR Studio
Компоненты и технологии, № 7'2003
местно. Этому есть следующее объяснение. Программисты, создававшие AVR Studio третьей версии, пришли к пониманию, что модификация пакета вследствие неоптимальности идеологии становится все более трудоемкой задачей, кроме того, возникла необходимость организации интерфейса для работы с аппаратными программными средствами третьих фирм. В результате обсуждения ситуации они решили писать следующую версию «с чистого листа». Была собрана новая команда из восьми программистов, которая и приступила к созданию пакета AVR Studio version 4.
Первые выпуски четвертой версии этого пакета (версии 4.01 ... 4,05) имели невысокую стабильность и весьма краткий список поддерживаемых AVR-контроллеров. Именно поэтому продолжался выпуск третьей версии пакета (последний номер версии 3.56). Однако прошло немного времени, и свет увидела AVR Studio версии 4.06, а спустя непродолжительное время и 4.07 (рис. 1).
С появлением этой версии программист получает в свое распоряжение достаточно устойчиво работающий пакет, включающий в себя текстовый редактор, ассемблер и симулятор. Так же, как и в третьей версии, при своем запуске AVR Studio проверяет устройства, подключенные к СОМ-портам компьютера, и пытается найти «знакомые» (рис. 2).
Рис. 2. Окно выбора микросхемы и отладочной платформы
Если обнаруживается, например, внутрисхемный эмулятор AT JTAG ICE, система конфигурируется для работы с этим устройством. Таким образом, программист использует уже знакомую среду симулятора для работы с внешним «железом», что, естественно, сокращает время освоения программы, и, как следствие, время разработки проекта.
Пакет AVR Studio версии 4 занимает на диске 29 Мбайт, из которых 9 Мбайт — это хорошо структурированная подробная help-система, содержащая помимо описания системы команд AVR-микроконтроллеров также и описание аппаратных средств для работы с этими контроллерами.
На сегодня AVR Studio используется подавляющим большинством программистов, которые пишут код на ассемблере, хотя некоторые предпочитают работать с ассемблером фирмы IAR Systems.
Из вышеупомянутых языков программирования высокого уровня наибольшее распространение получил язык С, что легко объяснимо — ядро AVR с большим регистровым файлом и тремя 16-битными индексными регистрами оптимизировано для программирования именно на этом языке. В России полу---------------------www.finestreet.ru-
чили распространение два С-компилятора — шведской фирмы IAR Systems и американской фирмы ImageCraft Creations Inc.
Фирма IAR Systems (www.iar.com) известна своими продуктами, которые поддерживают более двадцати типов микроконтроллеров различных фирм-производителей. В комплект поставки входит среда разработки IAR Embedded Workbench и отладчик IAR C-Spy. Девиз фирмы: «Различные архитектуры — одно решение». Такой подход имеет неоднозначную оценку пользователей. С одной стороны — единая среда разработки облегчает переход к новому типу микроконтроллера. С другой стороны, вследствие такой универсальности, усложняется настройка опций компиляции и оптимизации — надо разбираться в большом количестве ключей и настроек, причем необязательно используемых для конкретного микроконтроллера. Нередко приходится прибегать к прямому редактированию xcl-файлов, в которых устанавливаются опции компиляции. Для ознакомления с пакетом предлагается демо-версия, имеющая следующие ограничения: максимальный размер исходного кода на языке С составляет 2 кбайт, на ассемблере —
1 кбайт, размер откомпилированного приложения — 2 кбайт, размер файла для отладки —
2 кбайт. Кроме того, формат файлов сделан таким, что они читаются только внутри этой демо-версии. Цена С-компилятора фирмы IAR Systems составляет, в зависимости от приобретаемой конфигурации, от $2500 до $3600, что является существенным ограничивающим фактором для приобретения его многими российскими фирмами.
Фирма ImageCraft (www.imagecraft.com) пошла принципиально другим путем. Ее оптимизирующий компилятор ICC AVR написан специально для AVR-микроконтроллеров, вследствие чего он достаточно компактен: дистрибутив имеет объем 4 Мбайт, а после установки на диск компилятор занимает немногим
Таблица 1. Перечень микроконтроллеров, поддерживаемых пакетом AVR Studio version 4.07
Simulator 0 о 0 ІЛ о 1 3 ►- 0 0 СЧ о STK500/ ISP Assembler
tinyAVR
ATtiny11 v v
ATtiny12 v v v
ATtiny15 v v
ATtiny26 v v v v
ATtiny28 v v
classicAVR
AT90S1200 v v
AT90S2313 v v v v
AT90S2323 v v v
AT90S2343 v v v
AT90S4433 v v v v
AT90S8515 v v ® v v v
AT90S8535 v v ® v v v
AT90C8534 v v
megaAVR
ATmega8 v v v v v
ATmega8515 v v v v
ATmega8535 v v v v
ATmega16 v v v v v
ATmega32 v v v v v
ATmega323 v v v v
ATmega161 v v ® v v
ATmega162 v v v v v
ATmega163 v v v
ATmega64 v v v v v
ATmega103 v v ® v v 0 v
ATmega128 v v v v 0 v
ATmega169 v v v v © v
Other
AT86RF401 v v v
более 8 Мбайт, При скромных размерах он имеет достаточно богатый набор характеристик, Интегрированная среда разрботки (IDE) функционирует под управлением Windows 95/98/NT/2000/XP и включает в себя текстовый редактор с полноценной поддержкой русского языка и менеджер проекта, который формирует стандартный makefile (рис, 3),
Рис. 3. Рабочее окно ICC AVR
ОхГГ; Ч All LEO’S off
II Ив in Ptograa Entry Point
// Initialise 8515 rtgiittci
II Compare A Interrupt enable
C:\ICC\BIN\ lMkto -f Є5151псг.мк
lccavr -c -IC: Wcc\ include \ -• -1 -g -Kavrenhancedaeail -»•
C:/lcc/lnclud*/lo8515.h<3) : C:Wcc\exa»f>lea.avr\esiSlntr.c(l) : iccavr -о 8S15incr -LCt\lcc\llb\ -« -bfuac_llt:0xla.0x2000
Device 1% full.
Don*.
Kcr><M«4 Si*
UrucdHUM
Осйогв I
Ь,- Й. •
PfllHtf V««non a tm«IMor*.noaodl«| <“ tengl* ton), «ndmodfteil Itotf Німі (needi > 8r ]l
5¥nei"flASHort»
e
Компоненты и технологии, № 7'2003
Рис. 4. Окно настройки параметров Application
Builder
Обеспечивается компиляция кода практически всех AVR-микроконтроллеров, включая микросхемы серии АТ94, в которых скоростное (25-40 МГц) аппаратное ядро AVR является частью кристалла.
В состав ICC AVR входит полезный модуль Application Builder, существенно упрощающий рутинную работу по инициализации микроконтроллера (рис. 4). Теперь ICC AVR Application Builder берет на себя инициализацию портов ввода-вывода, аналогово-цифрового преобразователя, компаратора, таймеров и счетчиков, внешних интерфейсов SPI, USART и TWI (аналог I2C), а также базовое распределение памяти и необходимые прерывания — все процедуры, которые обычно занимают много времени программиста и ошибки в которых трудно найти на стадии разработки.
Опции компиляции можно выбрать из стандартного набора или установить самостоятельно, выбрав в поле «тип микросхемы» — custom device. В результате компиляции формируется стандартный HEX-файл для загрузки в микросхему, файл в формате COFF, который «понимает» AVR Studio, и файл с листингом в текстовом формате. Компилятор совместим со стандартом ANSI C. Исходный текст может содержать вставки на ассемблере (строки или ассемблерные модули). Ассемблерные директивы могут включать условное выполнение, include-файлы, макросы и текстовые определения.
Библиотеки включают функцию printf, функции распределения памяти, строковые и математические функции. Есть специальные модули, такие, как доступ к ЭСПЗУ, АЦП и SPI-интерфейсу. При возникновении каких-либо вопросов можно обратиться к достаточно подробно написанному help-файлу или к входящей в комплект книге объемом более 120 страниц. В особо «тяжелых» случаях можно писать непосредственно в фирму ImageCraft по адресу [email protected].
Предлагается две версии С-компилятора ICC AVR — стандартная и профессиональная. Основные отличия этих версий — в максимальном размере выходного hex-файла. Для стандартной версии — это 64 кбайт, а для профессиональной — 128 кбайт. Кроме того, в состав профессиональной версии входит утилита Code Compressor, которая
дополнительно упаковывает выходной файл на 10-13%,
Несомненное преимущество работы с программой ICC AVR от ImageCraft — это возможность полноценной работы до принятия решения о приобретения С-компилятора, Демо-версию пакета можно взять на сайте производителя данной программы по адресу www,imagecraft,com/software/index,html, либо на сайте российского дистрибьютора atmel,argussoft,ru, причем эта версия максимально дружелюбна: пользователь может работать с исходными текстами любой длины и компилировать файл размером до 64 кбайт для любой микросхемы, Единственное ограничение — это время работы демо-версии (43 дней),
Архитектура AVR с развитой системой прерываний хорошо подходит для работы в системах реального времени, и фирмы, занимающиеся созданием операционных систем реального времени, сразу же обратили внимание на эти микроконтроллеры, На сегодня существует несколько таких программных продуктов, Одной из интересных разработок является операционная система реального времени фирмы Pumpkin, Inc — Salvo,
В августе 2003 года фирмы ImageCraft и Pumpkin, Inc (www,pumpkininc,com) заключили лицензионное соглашение, и теперь пользователи С-компилятора ICC AVR могут использовать программный продукт фирмы Pumpkin, Inc — операционную систему реального времени (версия Salvo tiny) для микроконтроллеров семейства AVR без дополнительной оплаты,
Аппаратные средства: отладочные платы и программаторы
Для сокращения времени разработки устройств на AVR-контроллерах фирма Atmel выпустила два стартовых набора, один — STK200 — для работы с микросхемами серии AT90S в корпусах DIP8, DIP20, DIP28 и DIP40, а второй — STK300 — исключительно для микросхем ATmega103, Эти комплекты включали также и программирующий кабель, который подключался к порту принтера компьютера, и использовался для программиро-
Рис. S. STK500
вания микросхем на плате 8ТК200 и 8ТК300, причем этот кабель можно было использовать для программирования «в системе» микросхем на плате пользователя. Стоит отметить, что выбор порта принтера для связи с программируемым микроконтроллером был неудачным вследствие неустойчивой работы такого программатора под разными версиями Windows. Эти ошибки были учтены в следующей версии универсального стартового набора — 8ТК500 (рис. 5).
Эту плату можно назвать устройством следующего поколения. Во-первых, для связи с компьютером использован последовательный порт RS-232, который проще программировать для всех версий Windows, поэтому связь с компьютером работает более устойчиво. Второе усовершенствование — использование идеи подключения «дочерних» плат. Теперь для STK500 можно разрабатывать модули расширения, не изменяя собственно «материнскую» плату. В настоящее время выпущены уже три таких платы:
STK501 для работы с микросхемой Atmega128 (рис. 6);
STK502 для работы с микросхемой Atmega169 (рис. 7);
STK594 для работы с микросхемой класса FPSLIC с ядром AVR — AT94K10 (рис. 8).
Для программирования AVR-микроконтроллеров в системе фирма Atmel выпустила программатор AVRISP. Таким образом, отпала необходимость использования панелек
Рис. S. STK594
Компоненты и технологии, № 7'2003
для установки микросхем, и, как следствие, в большинстве новых разработок стали применяться контроллеры в планарных корпусах, которые экономят место на печатной плате.
Вследствие высокой популярности архитектуры ЛУИ, фирма Л1ше1 использует эту архитектуру не только в микроконтроллерах, но и в специализированных кристаллах.
Так, ЛУИ-ядро содержат микросхемы серий АТ43 и АТ76. Новинка в этой области — микросхема ЛТ86КР401. Этот кристалл, упакованный в 20-выводной корпус Т880Р, помимо стандартного ЛУИ-контроллера содержит радиопередающий модуль, работающий на частотах от 264 до 456 МГц.
Микросхема функционирует в диапазоне питающих напряжений от 2 до 5 В и предназначена для применения в устройствах передачи данных со скоростью до 10 кбод с использованием кода Манчестер.
Для этой микросхемы фирма Л1ше1 также предлагает отладочную плату ЛТ86ИР401 (рис. 9).
На плате размерами 35x30 мм смонтирован полный передатчик, включая антенну, выполненную печатным способом. На обратной стороне платы припаяно гнездо для установки дисковой литиевой батарейки. В качестве приемника рекомендуется микросхема Т5744 с внешним контроллером.
В дополнение к платам фирмы Л1ше1, компания АРГУССОФТ предлагает семейство отладочных плат собственной разработки. Отличие этих плат — все компоненты распаяны на плате без использования панелек, таким образом, платы имеют повышенную надежность, и их можно использовать в качестве управляющего контроллера в составе серийно выпускаемых устройств. В настоящее время выпускается три типа плат: AS-megaM, AS-megaPLD и AS-megaTCP.
Плата AS-megaM является модификацией выпускавшейся ранее платы AS-mega и представляет собой функционально завершенный микроконтроллер с возможностью расширения.
Эта плата с размерами 92x86 мм имеет следующие аппаратные ресурсы:
• микроконтроллер ATmega128/128L;
• внешнее ОЗУ данных 8/32 кбайт — микросхема 6264/62256;
• стабилизатор напряжения питания на базе микросхемы LM317 (3,3 или 5 В);
• 4 пользовательские кнопки и кнопка «Reset»;
• штыревой разъем для подключения внешних аналоговых сигналов;
• разъем типа BH10 для загрузки ПЗУ памяти программ и данных;
• разъем типа BH10 для подключения эмулятора AT JTAGICE;
• разъем типа DRB-9FA (интерфейс RS-232), также можно установить разъем для второго UART;
• штыревой 16-контактный двухрядный разъем для подключения цифробуквенного ЖКИ.
На плате предусмотрено место для распайки следующих дополнительных компонентов:
• микросхема ПЗУ серии DataFlash — AT45D321B/642/1282 в корпусе TSOP;
• дополнительный стабилизатор напряжения 3,3 В — микросхема ADP3308;
• двухканальный 8/10/12-разрядный ЦАП — микросхема AD5302/5312/5322.
Следующая плата, AS-megaPLD имеет ту же
базовую схемотехнику, что и плата AS-megaM. Отличие этой платы — увеличенное количество разъемов и применение микросхемы программируемой логики типа ATF1508, содержащей на кристалле матрицу из 128 макроэлементов. Эта микросхема может использоваться как расширитель портов. Плату AS-megaPLD также можно использовать как стартовый набор для освоения микросхем программируемой логики фирмы Atmel.
Платы AS-megaM и AS-megaPLD оснащены 16-контактным разъемом для непосредственного подключения стандартного многострочного знакового ЖК-индикатора, что
существенно расширяет функциональность плат и упрощает работу с ними.
Третья плата — AS-megaTCP — разработана как устройство сбора, хранения и передачи данных по протоколу TCP/IP. Особенность этой платы — использование микросхемы S7600 фирмы Seiko Instruments, которая аппаратно реализует стек TCP/IP.
Для программирования AVR-микроконтроллеров в системе через порт SPI удобно использовать внутрисхемный программатор AS2, который подключается к плате при помощи стандартного 10-контактного разъема.
Программатор AS2 является развитием программатора AS1 и предназначен для внутрисхемного программирования AVR-микроконтроллеров фирмы Atmel. Схема программатора AS2 построена на базе мирокон-троллера ATmega8L, имеющего аппаратный SPI-порт, что позволяет реализовать максимально возможную скорость программирования. Время чтения микросхемы ATmega128 (128 кбайт) составляет 12 с, а время записи всего массива Flash-памяти этой микросхемы не превышает 26 с.
Программатор подключается к последовательному порту компьютера класса IBM PC. Программатор AS2 разработан для использования в качестве промышленного программатора, поэтому он включает такие дополнительные функции, как тонкие настройки временной диаграммы программирования и возможность автоматического формирования и записи в память микроконтроллера уникального серийного номера программируемого изделия с автоинкрементом.
Одним из отличий программатора AS2 является возможность замены «прошивки» непосредственно на рабочем месте пользователя, что стало возможным благодаря использованию загрузочного блока (boot block) у микросхемы ATmega8L.
Программатор AS2 комплектуется программой AS2ISP, разработанной в компании
Рис. 12. Плата AS-megaTCP
О
Компоненты и технологии, № 7'2003
АРГУССОФТ. Программа AS2ISP функционирует в среде Windows 9x/NT/2000/XP, поддерживает русско- и англоязычный интерфейс и имеет следующие возможности:
• выбор используемого порта (COM1.. .COM8);
• возможность последовательной загрузки двух HEX-файлов по различным адресам;
• возможность последовательной загрузки двух EEP-файлов по различным адресам;
• окно просмотра и редактирования содержимого памяти программ и данных;
• чтение сигнатуры программируемой микросхемы;
• чтение калибровочных байтов микросхемы;
• быстрый доступ к операциям чтения, записи, верификации, стирания ПЗУ и ЭСПЗУ;
• быстрая загрузка файлов в форматах .HEX .BIN и .EEP;
• выбор скорости обмена с компьютером (19,2 кбод или 115,2 кбод);
• выбор алгоритма программирования (стандартный и ускоренный);
• выбор длительности импульса SCK (период от 0,5 мкс до 140 мкс);
• выбор длительности импульса RESET в диапазоне от 5 мс до 1280 мс;
• программирование битов защиты и FUSE-битов;
• режим автопрограммирования в соответствии с установками в файле проекта;
• запись в ПЗУ или в ЭСПЗУ микросхемы серийного номера изделия с автоинкрементом.
Аппаратные средства: эмуляторы
Как и для любого современного микропроцессора, для AVR-микроконтроллеров выпускаются внутрисхемные эмуляторы, причем их уже существуют не одно поколение. Первый такой прибор — AVR ICE PRO со временем преобразовался в ICE30, позднее его заменила модель ICE50.
Это самый «полноценный», и поэтому самый дорогой AVR-эмулятор, его цена составляет $4200. На противоположном конце ценового диапазона находится эмулятор ICE200, который стоит $130, однако он применяется в основном для микросхем AVR первого поколения.
Как упоминалось в первой части статьи, новые AVR-контроллеры с емкостью памяти программ 16 кбайт и выше имеют на кристалле дополнительные отладочные регистры, доступ к которым осуществляется через порт JTAG. Для отладки систем с такими микросхемами предназначен эмулятор JTAGICE.
При этом в качестве «отладочного кристалла» используется непосредственно отлаживаемая микросхема. Ценой за такое удобство является «потеря» четырех выводов микросхемы, которые обеспечивают интерфейс с эмулятором. В микросхеме ATmega128 для этого отведены старшие четыре входа АЦП. Цена эмулятора JTAGICE составляет $360. Для отладки младших членов семейства AVR, не имеющих встроенных отладочных регистров, выпущен эмулятор ICE40.
Подводя итог, можно сказать, что AVR-микроконтроллеры успешно используются многими разработчиками не только в России, но и в мире, что объясняется как очень удачным построением архитектуры этих микроконтроллеров, так и богатым выбором программных и аппаратных средств, позволяющих реализовывать проекты на базе этих микросхем в кратчайшие сроки. ИИ
Литература
1. Н. Королев, Д. Королев. AVR-микроконтроллеры второго поколения: новые аппаратные возможности // Компоненты и технологии. 2003. № 4.
2. Н. Королев, Д. Королев. AVR-микроконтроллеры: большое в малом // Схемотехника. 2001. № 5.
3. Н. Королев. Atmel FPSLIC: элементная база 21 века // CHIP NEWS. 2001. № 1.
4. Н. Королев, Д. Королев. AVR-микроконтроллеры: программные средства // Компоненты и технологии. 2000. № 4.
5. Н. Королев. AVR: аппаратные средства разработчика // Компоненты и технологии. 1999. № 1.