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

№ 6’2010
PDF версия
Первая часть статьи была посвящена обзору 8-разрядных AVR-контроллеров. Во второй части рассмотрены 32-разрядные микросхемы, также разработанные в норвежском отделении корпорации Atmel, которые имеют собственное ядро, но при этом разработчики включают в кристалл технологиии, успешно отработанные на 8-разрядных контроллерах Xmega. Это, в частности, периферийная система событий (Peripheral Event System) и технология picoPower. В 2010 году Atmel выпустила новые AVR32-контроллеры серий UC3L и UC3D, которые отличаются низкой стоимостью, соизмеримой со стоимостью 8-разрядных контроллеров, сохраняя при этом преимущества мощного 32-разрядного ядра и разнообразие периферии. В совокупности с бесплатными программными средствами разработки и недорогими аппаратными средствами это предоставляет разработчикам возможность применять AVR32 в бюджетных проектах.

Микросхемы семейства UC3 выпускаются с 2006 года и представлены несколькими сериями, различающимися суффиксом в названии. К общим чертам семейства следует отнести наличие ядра AVR32 с комплексной системой команд, включающей «контроллерные» инструкции, а также DSP-инструкции для обработки чисел с фиксированной точкой и манипуляции с отдельными битами. Трехстадийный конвейер и три исполнительных модуля — АЛУ, умножитель и модуль чтения/записи данных — позволяют выполнять более одной команды за один период системной частоты. В результате производительность, например, AT32UC3A3 составляет 92 MIPS/МГц на частоте 66 МГц, даже с учетом задержки выборки команды из Flash-памяти вследствие введения такта ожидания. Состав семейства UC3 представлен на рис. 1.

Состав семейства AT32UC3C

Рис.1. Состав семейства AT32UC3C

Микросхемы UC3C могут работать при напряжении питания +5 В. Набор команд микросхем UC3C содержит инструкции для обработки чисел с плавающей точкой.

Все контроллеры имеют на кристалле многослойную высокоскоростную шину данных, стандартные интерфейсы UART/USART/SPI/TWI, многоканальные таймеры, многоканальные ШИМ-контроллеры, многоканальные DMA-контроллеры и многоуровневые контроллеры прерываний. Наличие двух модулей ФАПЧ на кристалле позволяет от одного кварца независимо сформировать частоту 48 МГц для работы интерфейса USB и необходимую частоту для работы ядра контроллера. В таблице в краткой форме представлены основные параметры микросхем UC3.

Таблица. Основные характеристики микросхем семейства UC3

Микросхема Fmax, МГц MIPS Flash, кбайт SRAM, кбайт Входы/ выходы USB CAN, каналов Ethernet Внешняя шина а/д АЦП, каналов ЦАП, каналов Тип корпуса
UC3A0128/256/512 66 91 128/256/512 32/64/64 109 Full-Speed+OTG 1 + 8 LQFP/TFBGA144
UC3A1128/256/512 66 91 128/256/512 32/64/64 69 Full-Speed+OTG 1 8 TQFP100
UC3A364/128/256 66 92 64/128/256 128/128/128 110 Hi-Speed + OTG + 8 LQFP/TFBGA144
UC3A364S/128S/256S 66 92 64/128/256 128/128/128 110 Hi-Speed + OTG + 8 LQFP/TFBGA144
UC3B064/128/256/512 60 83 64/128/256/512 16/32/32/96 44 Full-Speed+OTG 8 TQFP/QFN64
UC3B164/128/256/512 60 83 64/128/256/512 16/32/32/96 28 Full-Speed 6 TQFP/QFN48
UC3C064/128/256/512 66 91 64/128/256/512 16/32/64/64 125 Full-Speed+OTG 2 1 + 16 2 LQFP144
UC3C164/128/256/512 66 91 64/128/256/512 16/32/64/64 83 Full-Speed+OTG 2 1 + 16 2 TQFP100
UC3C264/128/256/512 66 91 64/128/256/512 16/32/64/64 47 Full-Speed+OTG 2 1 + 11 1 TQFP64
UC3D132/64/128/256 48 61 32/64/128/256 8/16/16/32 36 Full-Speed 8 TQFP/QFN48
UC3L016/32/64 50 64 16/32/64 8/16/16 36 9 TQFP/QFN48

Примечание. Семейство UC3A3 имеет вариант исполнения UC3A4, отличающийся типом корпуса (100-ball VFBGA). Семейство UC3A3S имеет на кристалле высокоскоростной криптомодуль стандарта AES с ключом 128/192/256 бит.

Далее рассмотрены особенности каждой серии.

Микроконтроллеры UC3A

Микросхемы UC3A, подсемейства A0 и A1, представляют собой универсальные контроллеры с полным набором интерфейсов и выпускаются в 144-выводных и 100-выводных корпусах соответственно. Самым интересным представителем подсемейства, несомненно, является AT32UC3A3. Эта микросхема оптимизирована для работы с высокоскоростными потоками данных, что обеспечивается рядом схемотехнических решений, в частности, набором интерфейсов. Ниже приведен перечень интерфейсов микросхемы:

  • Hi-Speed USB c режимом On-the-Go и собственным DMA-контроллером.
  • MultiMediaCard V4.3.
  • Secure-Digital (SD V2.0) SDIO V1.1, CE-ATA V1.1, FastSD.
  • Memory Stick: Standard Format V1.40, PRO Format V1.00, Micro.
  • 4 интерфейса USART с поддержкой режимов SPI, LIN, IRDA, ISO7816 и аппаратным управлением драйвером интерфейса RS-485.
  • 2 интерфейса SPI с аппаратным формированием сигнала Chip Select.
  • Интерфейс SSC с поддержкой протокола I2S.
  • 2 интерфейса TWI с поддержкой режима совместимости с I2C.
  • 8-канальный 10-разрядный АЦП, скорость — 384 kSPS.
  • 2-канальный 16-разрядный сигма-дельта аудиовыход с частотой до 50 кГц. Завершает перечень интерфейсов 8/16-разрядная шина данных с поддержкой внешней памяти типа ROM/SRAM/SDRAM/NAND/ SmartMedia/Compact Flash, а также IDE-интерфейс.

Для транспорта потоков данных используется 6-слойная матрица 32-разрядных шин данных и многоканальный DMA-контроллер с программируемым приоритетом транзакций. Чтобы организовать одновременный обмен данными по нескольким шинам, оперативная память на кристалле разделена на три массива. Один массив, размером 64 кбайта, расположен в непосредственной близости к ядру, и обращение к данным происходит без участия шинной матрицы. Кроме того, эта память — двухпортовая, и в ней можно организовать буфер FIFO. Еще два блока оперативной памяти, размером по 32 кбайт каждый, подключены к шинной матрице. Такое построение позволяет производить обмен по трем интерфейсам одновременно. Организация памяти AT32UC3A3 представлена на рис. 2.

Организация памяти AT32UC3A3

Рис. 2. Организация памяти AT32UC3A3

В случаях, когда необходима защита от несанкционированного доступа к передаваемым данным, перед выдачей информации во «внешний мир» применяется ее кодирование. Учитывая внушительное число интерфейсов и их высокую скорость, есть необходимость в аппаратном модуле, реализующем эту функцию. Такой модуль содержится в микросхеме AT32UC3A3S. Кодирование данных производится по алгоритму AES с программируемой длиной ключа: 128, 192 или 256 бит. Использование аппаратного криптомодуля позволяет «на лету» кодировать передаваемые данные со скоростью до 22,8 Мбайт/с для ключа 128 бит и до 21 Мбайт/с для ключа 256 бит, что на порядок превышает скорость программного кодирования.

Сравнительная производительность модуля AES AT32UC3A3S представлена на рис. 3.

Производительность модуля AES AT32UC3A3S

Рис. 3. Производительность модуля AES AT32UC3A3S

Типичная область применения контроллера AT32UC3A3 — системы сбора информации, когда к параллельной шине подключается высокоскоростной АЦП, данные от него передаются под управлением DMA-контроллера в буфер FIFO на кристалле, а затем пакеты накопленных данных записываются на пару модулей SD-Card, подключенных параллельно к двум интерфейсам SDIO, или выводятся в компьютер по интерфейсу Hi-Speed USB.

Микроконтроллеры UC3B

Подсемейства B0 и B1 являются, по сути, урезанными версиями подсемейства A1 с пониженной максимальной тактотовой частотой и уменьшенным числом интерфейсов. Они выпускаются в корпусах с 64 и 48 выводами соответственно и имеют пониженную удельную потребляемую мощность — 1,3 мВт/МГц.

Микроконтроллеры UC3C

Это новое подсемейство ориентировано на широкий спектр задач — промышленность и робототехника, домашняя бытовая техника, системы управления климатом.

Во всех вышеперечисленных устройствах применяются двигатели, и контроллер UC3C решает задачу управления двигателями различных типов. Для повышения точности управления в UC3C добавлен блок обработки чисел с плавающей точкой. К особенностям UC3С также можно отнести наличие 2-канального CAN-контроллера. Для работы в тяжелых помеховых условиях контроллеры можно запитывать напряжением 5 В.

В отличие от рассмотренных представителей, UC3C имеет 16-канальный 12-разрядный аналогово-цифровой преобразователь, работающий как с одиночными, так и с дифференциальными сигналами. Скорость преобразования — 1,2 MSPS при напряжении питания 3,3 В и 1,5 MSPS при напряжении питания 5 В. Наличие двух схем выборки-хранения позволяет проводить синхронную обработку двух входных аналоговых сигналов.

В контроллер UC3C разработчики перенесли несколько технологий, которые впервые были применены и хорошо себя зарекомендовали в микросхеме ATxmega. Это, например, модуль квазидвухканального ЦАП, когда, имея две внешних схемы выборки-хранения, можно сформировать два различных аналоговых сигнала. Контроллер UC3C содержит два таких модуля.

Еще одна новинка, которая пришла из ATxmega, — периферийная система событий (Peripheral Event System, PES). Идея PES оказалась настолько удачной, что Atmel начала выпуск микросхем ATxmega версии D, в которой отсутствует DMA-контроллер, а его функции частично выполняет PES. Функционально PES представляет собой некое подобие программируемой логической матрицы, которая непосредственно соединяет периферийные модули, таким образом, один периферийный модуль, например, аналоговый компаратор, может сообщить другому периферийному модулю, например, АЦП, что пора начинать процесс аналого-цифрового преобразования. Важно, что время реакции на событие детерминировано и составляет два такта системной частоты, то есть можно исключить «дрожание» — неоднозначное время реакции на событие, возникающее при «классической» обработке произошедшего события с использованием прерываний.

В контроллере UC3C используются технологии измерения частоты и FlashVault, которые впервые были реализованы в микросхеме UC3L и будут рассмотрены далее.

Микроконтроллеры UC3D

UC3D — это усеченная версия контроллера UC3B, выпускаемая в корпусе TQFP/QFN48. Эта микросхема может применяться в приложениях, где обычно используются 8-разрядные контроллеры с интерфейсом USB. Для снижения стоимости в UC3D использован только один модуль ФАПЧ, поэтому, если предполагается использовать интерфейс USB, необходимо устанавливать системную частоту 48 МГц.

Микроконтроллеры UC3L

Если проводить аналогию в названиях с 8-разрядными AVR-контроллерами, то можно сказать, что UC3L — это tinyAVR в 32-разрядном семействе. Помимо своей низкой стоимости, микросхемы уникальны тем, что имеют очень маленькую для 32-разрядных микроконтроллеров удельную потребляемую мощность — 0,48 мВт/МГц, то есть их удобно применять в батарейных приложениях. Потребление контроллера в спящем режиме, благодаря технологии picoPower, составляет всего 100 нA.

Как и микросхемы tinyAVR, UC3L ориентированы на бюджетные приложения, поэтому в них отсутствует интерфейс USB, а объем памяти составляет 16-64 кбайт для Flash-памяти и 8-16 кбайт для памяти SRAM. Структурная схема микроконтроллера UC3L приведена на рис. 4.

Структурная схема микроконтроллера UC3L

Рис. 4. Структурная схема микроконтроллера UC3L

Можно видеть, что для low-end решения это достаточно насыщенный кристалл: присутствуют все стандартные интерфейсы, и, кроме того, появились новые модули — частотомер (Frequency meter, FREQM), модуль работы с емкостными сенсорными датчиками (Capacitive Touch Module, CAT), модуль периферийной логики с пугающим названием ГЛОК (Glue Logic Controller, GLOC) и од-нопроводный отладочный интерфейс aWire.

Частотомер является полезным нововведением в контроллере UC3L. Модуль использует классический метод сравнения известной опорной частоты (обычно это частота «часового» кварца) с измеряемой. Измерять можно как внешнюю частоту, так и частоту, например, собственного RC-генератора, который после калибровки используется для тактирования UART.

Еще одна полезная новинка — применение технологии FlashVault. Суть технологии, кратко говоря, состоит в следующем. Если обычно для защиты содержимого памяти программ от несанкционированного чтения используется единственный lock bit, то теперь можно запрещать доступ к области Flash-памяти, где хранится защищенная часть программного кода. При этом остальная область памяти доступна для чтения и перепрограммирования. Таким образом, конечный заказчик может в дозволенных рамках производить модификацию программного кода, имея доступ только в определенную, разрешенную область Flash-памяти.

Модуль работы с сенсорными датчиками использует патентованные технологии компании Atmel, QTouch и QMatrix. Собственно сенсорными датчиками могут быть, в частности, просто металлизированные площадки на печатной плате. Названные технологии отличаются высокой надежностью срабатывания благодаря встроенному механизму самокалибровки, который производит вычитание сигнала помехи и поддерживает оптимальный режим для распознования факта касания сенсорной площадки.

Модуль периферийной логики облегчает жизнь разработчику, потому что позволяет уменьшить на плате количество простых логических элементов, а также осуществляет фильтрацию выходных цифровых сигналов, устраняя появление узких ложных импульсов («иголок»).

Модуль aWire — это однопроводный отладочный интерфейс, использующий вывод RESET_N и функционально совместимый с интерфейсом JTAG. Однако он может быть использован и как дополнительный полу-или полнодуплексный порт UART с ограниченными функциональными возможностями. Если выбран двухпроводный режим работы, в качестве выходного используется сигнал DATAOUT.

Программные средства

Для программирования микроконтроллеров AVR32 можно использовать различные программные средства. Наиболее распространены коммерческий пакет IAR Embedded Workbench for Atmel AVR32 фирмы IAR, который можно заказать у европейского дистрибьютора IAR — компании INELTEK GmbH, и бесплатный пакет AVR32 Studio, предлагаемый компанией Atmel в версиях для Windows и Linux. Эта бесплатная среда построена на базе пакета Eclipse и использует компилятор GCC.

Для установки полнофункциональной среды нужно загрузить с сайта [ 12] два файла — «avr32studio-ide-installer» и «avr32-gnu-toolchain» суммарным объемом около 250 Мбайт. В дополнение компания Atmel разработала комплект примеров, где приведены исходные коды функций для программирования всех периферийных модулей микроконтроллеров AT32UC3. Архив с примерами называется AVR-UC3-SoftwareFramework и также доступен для загрузки с сайта компании Atmel [12]. Объем файла — примерно 80 Мбайт. Если читатель испытывает трудности с загрузкой такого объема информации через Интернет, можно обратиться к автору статьи для получения бесплатного диска с вышеописанным программным обеспечением.

В феврале 2010 года в издательстве «Техносфера» вышла книга Павла Редькина объемом около 800 страниц «Микроконтроллеры Atmel архитектуры AVR32 семейства AT32UC3. Руководство пользователя», где приводится подробное описание микросхем семейства UC3. Во второй части книги автор делится собственным опытом по установке и использованию пакета AVR32 Studio для программирования отладочной платы EVK1101. В книге приводится ряд критических замечаний к справочной системе, встроенной в пакет AVR32 Studio, однако, справедливости ради, следует отметить, что текущая версия пакета имеет переработанную справочную систему, и ее использование не доставляет неудобств.

Аппаратные средства

Компания Atmel предлагает обширный комплект отладочных средств для работы с микроконтроллерами AVR32. Это эмулятор ATJTAG ICE mkII, хорошо известный пользователям 8-разрядных AVR-контроллеров, эмулятор AVR ONE!, имеющий расширенные функции для отладки, а также множество отладочных плат. На рис. 5 представлена отладочная плата EVK1104, которая построена на контроллере AT32UC3A. Для удобства работы на плате размещен TFT-дисплей и сенсорные кнопки. Плата поставляется с запрограммированным примером, демонстрирующим DSP-возможности контроллера, — реализация цифровых фильтров, причем пользователь может через меню изменить частоту и амплитуду входных сигналов и сразу же наблюдать на дисплее изменение выходного сигнала. Структура демонстрационной программы для платы EVK1104 представлена на рис. 6.

Отладочная плата EVK1104

Рис. 5. Отладочная плата EVK1104

Структура демо-программы для платы EVK1104

Рис. 6. Структура демо-программы для платы EVK1104

На рис. 7 показана отладочная плата EVK1105, построенная на контроллере AT32UC3A0. Плата предназначена для демонстрации возможностей контроллера в части декодирования в реальном времени MP3-файлов с различным битрейтом. Файлы считываются со стандартного флэш-драйва, который подключается через интерфейс USB, а контроллер работает в режиме USB-Host.

Отладочная плата EVK1105

Рис. 7. Отладочная плата EVK1105

Литература

  1. Материалы технического семинара Atmel. Норвегия, март 2010 г.
  2. Королев Н. AVR-контроллеры: развитие семейства. Часть 1 // Компоненты и технологии. 2010. № 5.
  3. Королев Н. Atmel: 32-разрядные Flash-микроконтроллеры на ядре AVR32 // Компоненты и технологии. 2008. № 11.
  4. Королев Н. Atmel: микроконтроллеры для автопрома // Компоненты и технологии. 2008. № 7.
  5. Королев Н., Шабынин А. Архитектура AVR: развитие вширь и вглубь. Часть 1 // Компоненты и технологии. 2007. № 2.
  6. Королев Н., Шабынин А. Архитектура AVR: развитие вширь и вглубь. Часть 2 // Компоненты и технологии. 2007. № 4.
  7. Редькин П. П. Микроконтроллеры Atmel архитектуры AVR32 семейства AT32UC3. Руководство пользователя. М.: Техносфера, 2010.
  8. Презентации по теме — www.ineltek.com/seminars/presentations
  9. Технические описания — www.atmel.com/products/avr32/
  10. Техническое руководство по архитектуре ядра AVR32UC — http://atmel.com/dyn/products/datasheets.asp?family_id=682
  11. Справочная система из состава пакета AVR32 Studio — http://atmel.com/dyn/products/tools.asp?family_id=682
  12. www.atmel.com

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

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