AVR-контроллеры: развитие семейства. Часть 1

№ 5’2010
PDF версия
С момента начала выпуска в 1998 году микроконтроллеры семейства AVR прошли путь от экзотической новинки до одного из самых популярных семейств на рынке 8-разрядных микроконтроллеров с Flash-памятью на кристалле. Причина популярности — очень удачная архитектура кристалла, недорогие средства отладки, а также достаточно удобная, причем бесплатная, среда программирования AVR Studio. Сегодня микроконтроллеры ATmega и ATtiny можно встретить в самых разнообразных устройствах, начиная от игрушек и заканчивая серьезными промышленными системами.

Все статьи цикла:

Развивая успех, норвежское отделение компании Atmel начало освоение 32-разрядного рыночного сегмента, выпустив микросхемы на базе собственного ядра AVR32. Одной из особенностей этих микроконтроллеров является набор команд, включающий как стандартные «контроллерные» инструкции, так и специфические DSP-команды. Такой комплексный набор команд в совокупности с высокоскоростной периферией резко расширяет область применения AVR32-микроконтроллеров.

Неудивительно, что на прошедшем в середине марта дистрибьюторском техническом семинаре компании Atmel много времени было уделено новым представителям микроконтроллеров на архитектуре AVR32. Программа семинара была разнообразной и насыщенной. Помимо знакомства с новейшими представителями семейств 8-разрядных AVR и AVR32, специалисты Atmel рассказали о микросхемах, построенных на ядре AVR/AVR32, оснащенных специализированной периферией, например, трансивером ZigBee или аппаратной поддержкой работы с емкостными датчиками, позволяющими реализовать сенсорную клавиатуру с высокой помехозащищенностью. В статье дается тематический обзор новинок, представленных на семинаре.

Классические 8-разрядные AVR-контроллеры

На рис. 1 представлено полное семейство ATtiny. Кристаллы в рамках на белом фоне уже доступны для заказа, а кристаллы в рамках, что расположены на рисунке на зеленом фоне, будут выпущены к концу 2010 года. По оси абсцисс микросхемы размещены в соответствии с числом выводов корпуса, а по оси ординат — в соответствии с объемом Flash-памяти.

Микроконтроллеры серии ATtiny

Рис. 1. Микроконтроллеры серии ATtiny

В семействе tiny появились контроллеры в 6-выводных корпусах. Тип корпуса — стандартный SOT-23 или компактный корпус UDFN с размерами 2·2·0,5 мм. Микросхемы ATtiny4 и ATtiny5 имеют объем Flash-памяти 512 байт, а ATtiny9 и ATtinylO — соответственно 1 кбайт.

Что удивительно, при столь малом числе выводов они имеют весьма насыщенную периферию, например, все эти контроллеры содержат аналоговый компаратор, таймер, модуль ШИМ. ATtiny5 и ATtinylO также оснащены 4-канальным 8-разрядным АЦП. Микросхемы позиционируются как самые быстрые (производительность до 12 MIPS) и самые экономичные 6-выводные микроконтроллеры в отрасли. В таблице 1 приведены основные характеристики этих контроллеров. Судя по данным таблицы ясно, что в целях снижения стоимости и потребляемой мощности из новых 6-выводных контроллеров исключена память типа EEPROM и память типа SRAM.

Таблица 1. Основные характеристики 6-выводных ATtiny

Характеристики tiny4 tiny5 tiny9 tiny10
Flash, байт 512 512 1024 1024
ОЗУ, байт 32 32 32 32
АЦП Нет 4 канала 8-битных Нет 4 канала 8-битных
Аналоговый компаратор 1 1 1 1
Таймер 1×16-битный 1×16-битный 1×16-битный 1×16-битный
ШИМ, каналов 2 2 2 2
picoPower Да Да Да Да
Входы/выходы 4 4 4 4

 

ATtiny87 и ATtiny167 разработаны для автомобильных приложений. Они оснащены 11-канальным 8-разрядным АЦП с программируемым входным усилителем и интерфейсом LIN 2.1. Контроллер ATtiny167 — это первый представитель семейства tiny, имеющий «на борту» 16 кбайт Flash-памяти.

Контроллеры ATtiny2313A и ATtiny4313 совместимы по выводам с известным кристаллом ATtiny2313 и отличаются улучшенными параметрами по энергопотреблению, а ATtiny4313 — еще и большим объемом памяти.

Микросхемы ATtiny20 и ATtiny40 выпускаются в одинаковых 20-выводных корпусах типа VQFN размером 3·3 мм, однако кристалл ATtiny20 имеет 12 входов/выходов, а ATtiny40 — 18 входов/выходов. Микросхема ATtiny20 будет выпускаться также в 15-выводном корпусе UFBGA.

Очень интересным представителем семейства tiny является ATtiny43U. Его особенность — наличие встроенного повышающего преобразователя напряжения, обеспечивающего работу микроконтроллера от напряжения 0,7 В, то есть он может работать даже от разряженной пальчиковой батарейки! При этом мощности преобразователя хватит для питания внешней нагрузки током до 30 мА. Основные характеристики 20-выводных контроллеров приведены в таблице 2.

Таблица 2. Основные характеристики 20-выводных ATtiny

Характеристики tiny2313A tiny4313 tiny20 tiny40 tiny43U
Flash, кбайт 2 4 2 4 4
SRAM, байт 128 256 128 256 256
EEPROM, байт 128 256 Нет Нет 64
Компаратор 1 1 1 1 1
АЦП Нет Нет 8 каналов 10-битных 12 каналов 10-битных 4 канала 10-битных
Таймеры 1×8-битный 1×16-битный 1×8-битный 1×16-битный 1×8-битный 1×16-битный 1×8-битный 1×8/16-битный 2×8-битный
ШИМ, каналы 4 4 4 2 4
SPI Есть Есть Master/Slave Master/Slave Есть
I2C Есть (USI) Есть (USI) H/W Slave H/W Slave USI
USART Да Есть Нет Нет Есть
Входы/выходы 18 18 12 18 16
Корпус PDIP/SOIC VQFN PDIP/SOIC VQFN 20 pad 3×3 VQFN 15 ball 3×3 UFBGA 20 pad 3×3 VQFN SOIC
QFN/MLF
Питание, В 1,8-5,5 1,8-5,5 1,8-5,5 1,8-5,5 0,7-1,8 1,8-5,5

В семействе mega выпускаются контроллеры ATmega1284P (большая память в корпусе с 40/44 выводами), ATmega16M1/64M1 (интерфейсы CAN/LIN и 10-разрядный ЦАП), ATmega64xxP (микромощное потребление). В семейство mega входят и контроллеры с интерфейсом USB, причем наряду с ATmega8U/16U/32U сюда также относятся микросхемы AT90USB64x/128x. USB-контроллеры разбиты на 4 серии, и для каждой серии выпущен свой программный пакет (Software Package). Разбиение на серии представлено на рис. 2.

AVR-микроконтроллеры с интерфейсом USB

Рис. 2. AVR-микроконтроллеры с интерфейсом USB

Контроллеры AVR Xmega

В отличие от контроллеров семейства mega, которые в силу исторических причин имеют некое рассогласование в наименовании того или иного кристалла, в семействе Xmega наблюдается строгая иерархия в названиях микросхем. Помимо того, что прямо в названии микросхемы явно указан объем Flash-памяти, можно однозначно сказать, что микросхемы, название которых оканчивается на цифру 1, выпускаются в 100-выводном корпусе, а микросхемы, оканчивающиеся на цифру 3 и 4, — соответственно, в 64- и 44-выводном корпусе. Аналогично суффикс «А» в названии указывает на «максимальную комплектацию» кристалла, а суффикс «D» обозначает «бюджетную» конфигурацию: отсутствует DMA-контроллер и ЦАП, а производительность АЦП снижена с 2 Msps до 200 ksps. Таким образом, если в конкретном приложении не используется ЦАП и не нужен высокоскоростной АЦП, то можно применить более дешевый кристалл и попутно немного снизить потребляемую мощность устройства. Ввиду образцовой классификации микросхем всю информацию о новых представителях семейства Xmega можно получить непосредственно из рис. 3.

AVR-микроконтроллеры семейства Xmega

Рис. 3. AVR-микроконтроллеры семейства Xmega

Для микросхем ATxmega компания Atmel выпустила стартовые платы Xplain. На плате установлен основной контроллер ATXmega128A1, дополнительный AT90USB1287, память SDRAM объемом 8 Мбайт, кнопки, светодиоды и разъемы для подключения эмулятора и дополнительной периферии. Внешний вид платы приведен на рис. 4.

Стартовая плата Xplain

Рис. 4. Стартовая плата Xplain

Если для отладки требуется ЖКИ-дисплей или гальваноразвязанный интерфейс USB, тогда удобнее использовать плату AS-xmega российского производства. На этой плате нет микросхемы SDRAM, но есть установочные места для микросхем памяти с интерфейсами I2C (серия AT24) и SPI (серия AT25 и AT45). Также на плате установлен стандартный разъем для порта RS-232 и трехконтактный винтовой разъем интерфейса RS-485. Внешний вид платы приведен на рис. 5.

Отладочная плата AS-xmega

Рис. 5. Отладочная плата AS-xmega

ATmega128RFA1 — интеллектуальный трансивер ZibBee

Одно из интересных направлений, которые развивает компания Atmel,—радиоинтерфейс ZigBee. Компания предлагает несколько типов трансиверов для этого интерфейса, а также программную поддержку на уровне библиотек для AVR-контроллеров. Заказчикам поставлялся комплект из двух микросхем, собственно трансивер и контроллер ATmega1281. Как вариант, можно заказать готовые модули серии ZigBit, в которых установлены микросхемы ATmega1281, AT86RF230 (AT86RF212), а также необходимая внешняя обвязка. В 2010 году Atmel начала выпуск однокристального контроллера-трансивера на базе ядра ATmega128 с увеличенным объемом ОЗУ, причем на том же кристалле размещен трансивер, функционально аналогичный микросхеме AT86RF231 (табл. 3).

Таблица 3. Сравнительные характеристики ATmega128RFA и отдельных трансиверов

ISM Band Max Bit Rate Max RX Sens, дБм TX PWR, пБм Vcc Range, в Package
ATmega128RFA1 2,4 ГГц 2 Мбит/с -100 -17^ +3,5 1,8-3,6 QFN64
AT86RF230 2,4 ГГц 250 кбит/с -101 -17^ +3 1,8-3,6 QFN32
AT86RF231 2,4 ГГц 2 Мбит/с -101 -17^ +3 1,8-3,6 QFN32
AT86RF212 700 МГц 800 МГц 900 МГц 1 Мбит/с -110 -11^ +10 1,8-3,6 QFN32

Кристалл изготовлен по технологии 0,15 микрон, что позволило получить прибор с хорошими параметрами как в части контроллера (производительность 16 MIPS при напряжении питания 1,8 В, объем ОЗУ 16 кбайт), так и в части трансивера (скорость передачи до 2 Мбит/с, чувствительность -100 дБм, выходная мощность -17…+3,5 дБм), и это при умеренных токах потребления — 12,5 мА в режиме приема и 14,5 мА в режиме передачи. На кристалле также есть аппаратный криптомодуль, поддерживающий кодирование «на лету» по стандарту AES со 128-битным ключом.

Atmel разработала и выложила на сайт комплект библиотек с ZigBee стеком для раз-личных приложений. Этот сертифицированный полнофункциональный программный стек второго поколения называется BitCloud ZigBee, и он может применяться для разработки надежных, масштабируемых приложений с защищенным беспроводным обменом. На рис. 6 представлены требуемые объемы памяти для размещения той или иной конфигурации стека.

Сравнительные объемы памяти для размещения стека ZigBee

Рис. 6. Сравнительные объемы памяти для размещения стека ZigBee

Подробную информацию можно получить на странице [7], и оттуда же можно загрузить бесплатные библиотеки.

Область применения ATmega128RFA1 очень широка, стоит упомянуть лишь развивающийся рынок пультов дистанционного управления различными бытовыми приборами по стандарту RF4CE (RF for Consumer Electronics — радиоинтерфейс для бытовой электроники). Стандарт RF4CE, так же как и ZigBee, базируется на спецификациях IEEE 802.15.4. Изначально спецификации были определены RF4CE-консорциумом, в настоящее время поддержкой и развитием этого стандарта занимается ZigBee Alliance, в состав которого входит компания Atmel. Дополнительную информацию о стандарте RF4CE и бесплатное программное обеспечение можно получить на сайте [8].

Стандарт RF4CE будет применяться в системах управления различными электронными устройствами, которые, как предполагается, придут на смену существующим инфракрасным пультам дистанционного управления. Новые пульта: предоставят большую гибкость в управлении техникой, потому что отпадет необходимость в обеспечении прямой видимости между передатчиком и приемником, а значит, можно будет, например, из комнаты переключить канал на ресивере цифрового телевидения, расположенного за шкафом в прихожей, или включить кондиционер в спальне. Учитывая, что такой пульт может не только передавать данные, но и принимать их, можно реализовать принципиально новые функции, например, проверить с пульта, закрыта ли входная дверь в квартиру. Попутно появляется возможность по радиоканалу обновлять версию прошивки такого «интеллектуального» пульта, и при покупке нового аудиоцентра добавлять в пульт программу управления этим аудиоцентром.

Для разработки и тестирования приложений с применением ATmega128RFA1 компания Atmel предлагает различные отладочные комплекты. Комплект ATmega128RFA1-EK1 содержит две идентичные платы с распаянной микросхемой ATmega128RFA1 и антенной, подключаемой к разъему типа SMA. Эти платы разработаны для установки на базовую плату STK600, однако, если на них подать внешнее питание, платы могут работать в автономном режиме. Внешний вид платы из комплекта ATmega128RFA1-EK1 представлен на рис. 7.

Отладочная плата, входящая в комплект ATmega128RFA1-EK1

Рис. 7. Отладочная плата, входящая в комплект ATmega128RFA1-EK1

Еще один отладочный комплект, AVR RZ600, предназначен для работы совместно с персональным компьютером и подключается к нему через интерфейс USB. Состав комплекта AVR RZ600:

  • 2 платы с AT86RF230;
  • 2 платы с AT86RF231;
  • 2 платы с AT86RF212;
  • 2 платы USB-интерфейса (UC3A3256);
  • 2 антенны на диапазон 2,4 ГГц;
  • 2 антенны на диапазон 700-800 МГц. Внешний вид комплекта AVR RZ600 представлен на рис. 8.

Отладочный комплект AVR RZ600

Рис. 8. Отладочный комплект AVR RZ600

Программирование в AVR Studio

Для создания и отладки проектов на AVR-контроллерах, естественно, нужен компилятор и отладчик. Сегодня де-факто сложилась ситуация, что программа пишется на языке Си, хотя для AVR-контроллеров разработаны компиляторы языков Паскаль, Форт и Бэйсик. Здесь у программиста есть широкий выбор — от бесплатных средств с простым пользовательским интерфейсом до высокобюджетных профессиональных програмных пакетов фирмы IAR. В начальном ценовом диапазоне расположились Си-компиляторы ICC AVR и CodeVisionAVR. Однако в подавляющем большинстве случаев используется бесплатный пакет AVR Studio. С одной стороны, этот пакет поддерживается фирмой-производителем AVR-контроллеров, которая выпускает регулярные обновления, с другой стороны, в пакет легко интегрируется бесплатный компилятор WinAVR (это портирован-ный под Windows AVR-GCC), распространяемый под лицензией GPL. В итоге получается бесплатная полнофункциональная среда разработки приложений на ассемблере и Си, работающая со всем спектром AVR-контроллеров и поддерживающая все аппаратные средства, также предлагаемые компанией Atmel. На начальном этапе освоения пакета очень помогает встроенная подробная help-система, объем файлов в которой превышает 36 Мбайт.

Наверное, все согласятся, что первая программа, с которой программист начинает знакомиться со средой разработки, это мигание светодиодом, подключенным к выводу микроконтроллера — своеобразный «Hello World» в минималистском исполнении. Соблюдая традицию, автор познакомит читателя с пакетом AVR Studio на примере создания такой программы, правда, более сложной — она будет поочередно мигать двумя светодиодами с задержкой в полсекунды.

Хорошей аппаратной основой для начала работы является плата AS-megaM на базе контроллера ATmega103/ATmega128/ATmega128A, которая выпускается уже более 10 лет, претерпевая время от времени необходимые модернизации. Плата имеет разъем для непосредственного подключения цифробуквен-ного ЖКИ-дисплея и возможность установки разъема второго порта RS-232. Текущая версия платы, 1.4, отличается добавлением драйвера интерфейса RS-485 (микросхема типа ADM485) и возможностью установки на плату микросхемы Flash-памяти с интерфейсом SPI серии AT25. Внешний вид платы AS-megaM представлен на рис. 9.

Плата AS-megaM

Рис. 9. Плата AS-megaM

Итак, после инсталляции на компьютер компилятора WinAVR, устанавливается собственно пакет AVR Studio, который «увидит» установленный компилятор и автоматически пропишет пути к папке с WinAVR. При запуске пакета AVR Studio будет выдано первое окно с приглашением создать новый проект; здесь нужно выбрать тип компилятора, а также дать название проекту и указать место на диске, куда предварительно положены файлы led.c и asmegam.h, и где будут размещены файлы проекта (рис. 10).

Начальное окно создания проекта

Рис. 10. Начальное окно создания проекта

После нажатия кнопки Next выдается следующее окно, где происходит выбор отладочной платформы и программируемой микросхемы. Здесь нужно отметить микросхему ATmega128 и отладчик AVR Simulator. После нажатия конпки Finish открывается основное окно проекта, где отображается файл с исходным кодом, который для рассматриваемого примера состоит из нескольких строк (рис. 11).

Основное окно AVR Studio

Рис. 11. Основное окно AVR Studio

Как видно на рис. 11, исходный код отображается по умолчанию в центральной части окна. В левой части основного окна расположены папки с рабочими файлами, используемыми при компиляции. Здесь нужно в папку Header Files добавить заголовочный файл asmegam.h. Справа от исходного кода расположено окно, где представлен перечень периферийных модулей, имеющийся на кристалле контроллера ATmega128. Внизу экрана находится окно сообщений, из которого можно узнать, что при инициализации проекта были подгружены два плагина, STK500 и AVR GCC, а также файл описания микросхемы ATmega128.xml. Проект загрузился без ошибок, поэтому можно нажатием клавиши F7 запустить построение проекта, и после завершения процесса по комбинации клавиш Ctrl+Shift+Alt+F5 войти в режим отладки проекта в симуляторе (рис. 12).

Окно AVR Studio в режиме симуляции проекта

Рис. 12. Окно AVR Studio в режиме симуляции проекта

В режиме отладки слева от исходного текста отображается служебная информация, а справа — текущее состояние регистров порта D, к выходам которого подключены светодиоды. Теперь доступны стандартные отладочные процедуры — установка и снятие точек останова, пошаговое выполнение команд, наблюдение за текущим состоянием регистров и т. д.

Если при инициализации проекта вместо симулятора выбрать, например, внутрисхемный эмулятор JTAG ICE mkll, то можно производить реальную отладку проекта непосредственно на плате, где распаян AVR-микроконтроллер.

В результате успешной компиляции создается файл прошивки микросхемы с расширением .HEX, который можно загрузить во Flash-память микросхемы. Загрузка памяти осуществляется многими способами, например при помощи эмулятора JTAG ICE mkII или какого-либо программатора. В ряде случаев удобно использовать внутрисхемный программатор AS-4. Этот программатор может работать как из среды AVR Studio, так и со своей программной оболочкой ASISP, которая запускается под Windows XP/Windows 7 и не требует инсталляции. Пример рабочего окна программы ASISP приведен на рис. 13.

Основное окно программы ASISP

Рис. 13. Основное окно программы ASISP

Удобство работы с такой программой состоит в том, что содержимое Flash-памяти и EEPROM-памяти контроллера непосредственно отображается в окне и доступно для редактирования. Это позволяет в некоторых случаях упростить отладку программы, если под рукой нет эмулятора. Например, можно организовать в программе условный переход по определенному биту в памяти EEPROM. При этом, вручную изменяя состояния этого бита, можно управлять ходом выполнения программы без перекомпиляции проекта.

Исходный код описанной выше программы можно найти на странице [9]. Там же есть модификация этой программы, проект led-timer, где полусекундная задержка формируется по прерыванию от внутреннего таймера контроллера ATmega128, который тактируется часовым кварцем. Кроме того, на этой странице есть проект для платы AS-megaM Clock+freq, который иллюстрирует работу с двухстрочным ЖКИ-дисплеем, использование таймера для прецизионного измерения частоты системного кварца, прием сигналов нажатия кнопок и работу с портом UART.

Во второй части статьи будут рассмотрены новые контроллеры семейств AVR32, а также микросхемы с аппаратной поддержкой сенсорных емкостных датчиков касания и движения.

Литература

  1. Материалы технического семинара Atmel. Норвегия, март 2010 г.
  2. Королев Н. Atmel: 32-разрядные Flash-микро-контроллеры на ядре AVR32 // Компоненты и технологии. 2008. № 11.
  3. Королев Н. Atmel: микроконтроллеры для авто-прома // Компоненты и технологии. 2008. № 7.
  4. Королев Н., Шабынин А. Архитектура AVR: развитие вширь и вглубь. Часть 1 // Компоненты и технологии. 2007. № 2.
  5. Королев Н., Шабынин А. Архитектура AVR: развитие вширь и вглубь. Часть 2 // Компоненты и технологии. 2007. № 4.
  6. Королев Н., Королев Д. AVR: программирование в среде AVR Studio // Компоненты и технологии. 2004. № 3.
  7. www.atmel.com/bitcloud
  8. www.atmel.com/RF4CE
  9. www.as-kit.ru/firmware/AVR/AS-megaM

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *