AVR-микроконтроллеры второго поколения средства разработчика
Появление на рынке нового типа микроконтроллеров, естественно, поддерживается программными и аппаратными средствами. Одновременно с выходом
AVR-микроконтроллеров был представлен ассемблер AVRASM и стартовый набор MCU100. Вскоре им на замену пришли пакет
AVR Studio и стартовые наборы STK200 и STK300. Языки высокого уровня представлены компиляторами Си, Паскаля, Форта и Бэйсика.
Вслед за развитием аппаратной части AVR-микроконтроллеров выпускаются соответствующие версии средств поддержки, обеспечивающие работу новых аппаратных модулей, добавляемых в новые кристаллы. В данной статье рассмотрены программные и аппаратные средства для AVR-микроконтроллеров, применяемые российскими разработчиками.
Программные средства
Программная среда AVR Studio фирмы Atmel уже имеет историю развития. Как обычно, первая версия пакета могла лишь продемонстрировать возможности программирования для AVR-микроконтроллеров. Для реальной работы она явно не годилась, вынуждая программистов пользоваться встроенным ассемблером, который вызывался из командной строки.
Вторая версия была немногим лучше предыдущей. Более или менее работоспособной средой можно считать AVR Studio версии 3.20. Дальнейшие модификации третьей версии заключались в повышении устойчивости работы и добавлении поддержки вновь выпускаемых микросхем. Затем развитие AVR Studio пошло, на первый взгляд, странным путем — параллельно с третьей версией появилась четвертая, и некоторый период времени они существовали совместно. Этому есть следующее объяснение.
Программисты, создававшие AVR Studio третьей версии, пришли к пониманию, что модификация пакета вследствие неоптимальности идеологии становится все более трудоемкой задачей, кроме того, возникла необходимость организации интерфейса для работы с аппаратными программными средствами третьих фирм. В результате обсуждения ситуации они решили писать следующую версию «с чистого листа». Была собрана новая команда из восьми программистов, которая и приступила к созданию пакета AVR Studio version 4.
Первые выпуски четвертой версии этого пакета (версии 4.01 … 4,05) имели невысокую стабильность и весьма краткий список поддерживаемых AVR-контроллеров. Именно поэтому продолжался выпуск третьей версии пакета (последний номер версии 3.56). Однако прошло немного времени, и свет увидела AVR Studio версии 4.06, а спустя непродолжительное время и 4.07 (рис. 1).
С появлением этой версии программист получает в свое распоряжение достаточно устойчиво работающий пакет, включающий в себя текстовый редактор, ассемблер и симулятор. Так же, как и в третьей версии, при своем запуске AVR Studio проверяет устройства, подключенные к СОМ-портам компьютера, и пытается найти «знакомые» (рис. 2).
Если обнаруживается, например, внутрисхемный эмулятор
AT JTAG ICE, система конфигурируется для работы с этим устройством. Таким образом, программист использует уже знакомую среду симулятора для работы с внешним «железом», что, естественно, сокращает время освоения программы, и, как следствие, время разработки проекта.
Пакет AVR Studio версии 4 занимает на диске 29 МБ, из которых 9 МБ — это хорошо структурированная подробная help-система, содержащая помимо описания системы команд AVR-микроконтроллеров также и описание аппаратных средств для работы с этими контроллерами.
На сегодня AVR Studio используется подавляющим большинством программистов, которые пишут код на ассемблере, хотя некоторые предпочитают работать с
ассемблером фирмы IAR Systems.
Из вышеупомянутых языков программирования высокого уровня наибольшее распространение получил язык Си, что легко объяснимо — ядро AVR с большим регистровым файлом и тремя 16-битными индексными регистрами оптимизировано для программирования именно на этом языке. В России получили распространение два Си-компилятора — шведской фирмы 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 МБ, а после установки на диск компилятор занимает немногим более 8 МБ. При скромных размерах он имеет достаточно богатый набор характеристик. Интегрированная среда разработки (IDE) функционирует под управлением Windows 95/98/NT/2000/XP и включает в себя текстовый редактор с полноценной поддержкой русского языка и менеджер проекта, который формирует стандартный makefile (рис. 3).
Обеспечивается компиляция кода практически всех 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 по адресу
Предлагается две версии Си-компилятора ICC AVR — стандартная и профессиональная. Основные отличия этих версий — в максимальном размере выходного hex-файла. Для стандартной версии — это 64 Кб, а для профессиональной — 128 Кб. Кроме того, в состав профессиональной версии входит утилита Code Compressor, которая дополнительно упаковывает выходной файл на 10–15%.
Несомненное преимущество работы с программой ICC AVR от ImageCraft — это возможность полноценной работы до принятия решения о приобретения Си-компилятора.
Демо-версию пакета можно взять на сайте производителя данной программы по адресу www.imagecraft.com/software/index.html, либо на сайте российского дистрибьютора atmel.argussoft.ru, причем эта версия максимально дружелюбна: пользователь может работать с исходными текстами любой длиныи компилировать файл размером до 64 Кбайт для любой микросхемы. Единственное ограничение — это время работы демо-версии (45 дней).
Архитектура 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. Эти комплекты включали также и программирующий кабель, который подключался к порту принтера компьютера, и использовался для программирования микросхем на плате STK200 и STK300, причем этот кабель можно было использовать для программирования «в системе» микросхем на плате пользователя. Стоит отметить, что выбор порта принтера для связи с программируемым микроконтроллером был неудачным вследствие неустойчивой работы такого программатора под разными версиями Windows. Эти ошибки были учтены в следующей версии универсальногостартового набора — STK500 (рис. 5).
Эту плату можно назвать устройством следующего поколения. Во-первых, для связи с компьютером использован последовательный порт
RS-232, который проще программировать для всех версий Windows, поэтому связь с компьютером работает более устойчиво. Второе усовершенствование — использование идеи подключения «дочерних» плат. Теперь для STK500 можно разрабатывать модули расширения, не изменяя собственно «материнскую» плату. В настоящее время выпущены уже три таких платы:
-
STK501 для работы с микросхемой
Atmega128 (рис. 6); -
STK502 для работы с микросхемой
Atmega169 (рис. 7); - STK594 для работы с микросхемой класса FPSLIC с ядром AVR —
AT94K10 (рис. 8).
Для программирования AVR-микроконтроллеров в системе фирма Atmel выпустила программатор AVRISP. Таким образом, отпала необходимость использования панелек для установки микросхем, и, как следствие, в большинстве новых разработок стали применяться контроллеры в планарных корпусах, которые экономят место на печатной плате.
Вследствие высокой популярности
архитектуры AVR, фирма Atmel использует эту архитектуру не только в микроконтроллерах, но и в специализированных кристаллах. Так, AVR-ядро содержат микросхемы серий
АТ43 и АТ76. Новинка в этой области — микросхема
AT86RF401. Этот кристалл, упакованный в 20-выводной корпус TSSOP, помимо стандартного AVR-контроллера содержит радиопередающий модуль, работающий на частотах от 264 до 456 МГц.
Микросхема функционирует в диапазоне питающих напряжений от 2 до 5 В и предназначена для применения в устройствах передачи данных со скоростью до 10 кбод с использованием кода Манчестер. Для этой микросхемы фирма Atmel также предлагает отладочную плату AT86RF401 (рис. 9).
На плате размерами 35×30 мм смонтирован полный передатчик, включая антенну, выполненную печатным способом. На обратной стороне платы припаяно гнездо для установки дисковой литиевой батарейки. В качестве приемника рекомендуется микросхема
Т5744 с внешним контроллером.
В дополнение к платам фирмы Atmel, компания АРГУССОФТ предлагает семейство отладочных плат собственной разработки. Отличие этих плат — все компоненты распаяны на плате без использования панелек, таким образом, платы имеют повышенную надежность, и их можно использовать в качестве управляющего контроллера в составе серийно выпускаемых устройств. В настоящее время выпускается три типа плат: AS-megaM, AS-megaPLD и AS-megaTCP.
Плата AS-megaM является модификацией выпускавшейся ранее платы AS-mega и представляет собой функционально завершенный микроконтроллер с возможностью расширения.
Эта плата с размерами 92×86 мм имеет следующие аппаратные ресурсы:
- микроконтроллер ATmega128/128L;
- внешнее ОЗУ данных 8/32 КБ — микросхема 6264/62256;
- стабилизатор напряжения питания на базе микросхемы LM317 (3,3 или 5 В);
- 4 пользовательские кнопки и кнопка «Reset»;
- штыревой разъем для подключения внешних аналоговых сигналов;
- разъем типа BH10 для загрузки ПЗУ памяти программ и данных;
- разъем типа BH10 для подключения эмулятора AT JTAGICE;
- разъем типа DRB-9FA (интерфейс RS-232), также можно установить разъем для второго UART;
- штыревой 16-контактный двухрядный разъем для подключения
цифробуквенного ЖКИ.
На плате предусмотрено место для распайки следующих дополнительных компонентов:
- микросхема ПЗУ серии DataFlash —
AT45D321B/
AT45DB642/ 1282 в корпусе TSOP; - дополнительный стабилизатор напряжения 3,3 В — микросхема ADP3308;
- двухканальный 8/10/12-разрядный ЦАП — микросхема
AD5302/ AD5312/ AD5322.
Следующая плата, 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, разработанной в компании АРГУССОФТ. Программа 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-микроконтроллеры успешно используются многими разработчиками, как в России, так и в мире, что объясняется как очень удачным построением архитектуры этих микроконтроллеров, так и богатым выбором программных и аппаратных средств, позволяющих реализовывать проекты на базе этих микросхем в кратчайшие сроки.
Литература
- Н. Королев, Д. Королев.
AVR-микроконтроллеры второго поколения: новые аппаратные возможности //
Компоненты и технологии. 2003. № 4. - Н. Королев, Д. Королев. AVR-микроконтроллеры: большое в малом // Схемотехника. 2001. № 5.
- Н. Королев.
Atmel FPSLIC: элементная база 21 века //
CHIP NEWS. 2001. № 1. - Н. Королев, Д. Королев.
AVR-микроконтроллеры: программные средства // Компоненты и технологии.
2000. № 4. - Н. Королев. AVR: аппаратные средства разработчика // Компоненты и технологии. 1999. № 1.