AVR-контроллеры:
развитие семейства. Часть 2
Николай КОРОЛЕВ
Первая часть статьи была посвящена обзору 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 МГц, даже с учетом задержки выборки команды из БЫ^памяти вследствие введения такта ожидания. Состав семейства иС3 представлен на рис. 1.
Память,
кбайт
512
256
128
64
32
16
UC3A Series
91 Mips @ 66 MHz 2.0 mW/MHz 144/100 QFP
UC3B/D Series
76 Mips @60 MHz 1.3 mW/MHz 64 / 48 QFP/QFN
UC3C Series
91 Mips® 66 MHz 2.0 mW/MHz 144/ 100/64 QFP
UC3L Series
61 Mips @50 MHz 0.48 mW/MHz 48 QFP / QFN /TLLGA
UC3Bx512
UC3A0512
UC3A1512
UC3A0256 I UC3A3256 I UC3B0256
UC3A1256 IUC3A3256S I UC3B1256
UC3A0128 I UC3A3128 I UC3B0128
UC3A1128 UC3A3128S UC3B1128
UC3A364 I UC3B064
UC3A364S I UC3B164
В производстве
II )| UC3Dx256 UC3C0 UC3C1 UC3C2
)| [ UC3Dx1281
1 і
В разработке
Параметры UC3C
Питание 3—5 В 2 CAN
Восьми канальный 12-bit АЦП Двухканальный 12-bit ЦАП True 5V I/O
Рис.1. Состав семейства AT32UC3C
UC3L064
UC3L032
UC3L016
Таблица. Основные характеристики микросхем семейства UC3
Микросхема Fmax, МГц MIPS Flash, кбайт SRAM, кбайт Входы/ выходы USB CAN, каналов Ethernet Внешняя шина а/д АЦП, каналов ЦАП, каналов Тип корпуса
UC3A0128/256/512 66 91 128/256/512 32/64/64 109 Full-Speed+OTG - + 8 - LQFP/TFBGA144
UC3A1128/256/512 66 91 128/256/512 32/64/64 69 Full-Speed+OTG - - 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 + 16 2 LQFP144
UC3C164/128/256/512 66 91 64/128/256/512 16/32/64/64 83 Full-Speed+OTG 2 + 16 2 TQFP100
UC3C264/128/256/512 66 91 64/128/256/512 16/32/64/64 47 Full-Speed+OTG 2 + 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 бит.
Микросхемы UC3C могут работать при напряжении питания +5 В. Набор команд микросхем UC3C содержит инструкции для обработки чисел с плавающей точкой.
Все контроллеры имеют на кристалле многослойную высокоскоростную шину данных, стандартные интерфейсы UART/USART/SPI/TWI, многоканальные таймеры, многоканальные ШИМ-контроллеры, многоканальные DMA-контроллеры и многоуровневые контроллеры прерываний. Наличие двух модулей ФАПЧ на кристалле позволяет от одного кварца независимо сформировать частоту 48 МГц для работы интерфейса USB и необходимую частоту для работы ядра контроллера. В таблице в краткой форме представлены основные параметры микросхем UC3.
Далее рассмотрены особенности каждой серии.
Микроконтроллеры 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 кбайта, расположен в непосредственной близости
32-бит AVR CPU 66 МГц
MPU MemlF
Instr.
„ SRAM
Data J 64 кбайт I
<
я
TT
6-слойная высокоскоростная шинная матрица
I Г
Периферийный
мост
Периферийный DMA контроллер: 18 каналов
Пользовательская периферия
Рис. 2. Организация памяти AT32UC3A3
к ядру, и обращение к данным происходит без участия шинной матрицы. Кроме того, эта память — двухпортовая, и в ней можно организовать буфер FIFO. Еще два блока оперативной памяти, размером по 32 кбайт каждый, подключены к шинной матрице. Такое построение позволяет производить обмен по трем интерфейсам одновременно. Организация памяти AT32UC3A3 представлена на рис. 2.
В случаях, когда необходима защита от несанкционированного доступа к передаваемым данным, перед выдачей информации во «внешний мир» применяется ее кодирование. Учитывая внушительное число интерфейсов и их высокую скорость, есть необходимость в аппаратном модуле, реализующем эту функцию. Такой модуль содержится в микросхеме AT32UC3A3S. Кодирование данных производится по алгоритму AES с программируемой длиной ключа: 128, 192 или 256 бит. Использование аппаратного криптомодуля позволяет «на лету» кодировать передаваемые данные со скоростью до 22,8 Мбайт/с для ключа 128 бит и до 21 Мбайт/с для ключа 256 бит, что на порядок превышает скорость программного кодирования.
Сравнительная производительность модуля AES AT32UC3A3S представлена на рис. 3.
Типичная область применения контроллера AT32UC3A3 — системы сбора информации, когда к параллельной шине подключается высокоскоростной АЦП, данные от него передаются под управлением DMA-контроллера в буфер FIFO на кристалле, а затем пакеты накопленных данных записываются на пару модулей SD-Card, подключенных параллельно к двум интерфейсам SDIO,
ключ ключ
□ SWAES DHWAES
Рис. 3. Производительность модуля AES AT32UC3A3S
или выводятся в компьютер по интерфейсу Hi-Speed USB.
Микроконтроллеры UC3B
Подсемейства B0 и B1 являются, по сути, урезанными версиями подсемейства A1 с пониженной максимальной тактотовой частотой и уменьшенным числом интерфейсов. Они выпускаются в корпусах с 64 и 48 выводами соответственно и имеют пониженную удельную потребляемую мощность — 1,3 мВт/МГц.
Микроконтроллеры UC3C
Это новое подсемейство ориентировано на широкий спектр задач — промышленность и робототехника, домашняя бытовая техника, системы управления климатом.
Во всех вышеперечисленных устройствах применяются двигатели, и контроллер UC3C решает задачу управления двигателями различных типов. Для повышения точности управления в UC3C добавлен блок обработки чисел с плавающей точкой. К особенностям UC3C также можно отнести наличие 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 использован только один модуль ФАПЧ,
поэтому, если предполагается использовать интерфейс ШВ, необходимо устанавливать системную частоту 48 МГц.
Микроконтроллеры UC3L
Если проводить аналогию в названиях с 8-разрядными AVR-контроллерами, то можно сказать, что UC3L — это tinyAVR в 32-разрядном семействе. Помимо своей низкой стоимости, микросхемы уникальны тем, что имеют очень маленькую для 32-разрядных микроконтроллеров удельную потребляемую мощность — 0,48 мВт/МГц, то есть их удобно применять в батарейных приложениях. Потребление контроллера в спящем режиме, благодаря технологии picoPower, составляет всего 100 нА.
Как и микросхемы tinyAVR, UC3L ориентированы на бюджетные приложения, поэтому в них отсутствует интерфейс ШВ, а объем па-
мяти составляет 16-64 кбайт для Flash-памяти и 8-16 кбайт для памяти SRAM. Структурная схема микроконтроллера UC3L приведена на рис. 4.
Можно видеть, что для low-end решения это достаточно насыщенный кристалл: присутствуют все стандартные интерфейсы, и, кроме того, появились новые модули — частотомер (Frequency meter, FREQM), модуль работы с емкостными сенсорными датчиками (Capacitive Touch Module, CAT), модуль периферийной логики с пугающим названием ГЛОК (Glue Logic Controller, GLOC) и од-нопроводный отладочный интерфейс aWire.
Частотомер является полезным нововведением в контроллере UC3L. Модуль использует классический метод сравнения известной опорной частоты (обычно это частота «часового» кварца) с измеряемой. Измерять можно как внешнюю частоту, так и частоту, например, собственного RC-генератора, ко-
TMS—* •*DATAOUT-
JTAG
INTERFACE
aWire
NEXUS CLASS 2+ OCD
/І—N \rV
Ж
з
AVR32UC CPU
MEMORY PROTECTION UNIT:
INSTR
INTERFACE
DATA
INTERFACE
$
hs^ilK 16/8 KB SRAM
rN
V
Cd
HIGH SPEED & i =¡ 64/32/16 КВ
BUS MATRIX от u- Z О О FLASH
HSB-PB BRIDGE В
HSB-PB
BRIDGEA
ТУ
PERIPH ERIAL DMA CONTROLLER
POWER MANAGER
CLOCK CONTROLLER
SLEEP CONTROLLER
RESET CONTROLLER
«
I RCSYS I RC32K l<=£ I RC120M~1<=S пЯ OSC32K Ю
I dfll Ю I BOD Ю
SYSTEM CONTROL INTERFACE
«
INTERRUPT
CONTROLLER
EXTERNAL INTERRUPT CONTROLLER
PWM CONTROLLER
ASYNCHRONOUS
TIMER
WATCHDOG
TIMER
FREQUENCY METER
О
О
«
/—N N—і/
/>—К \|—і/
CAPACITIVE TOUCH MODULE
- CSA[16:0] —
- CSB[16:0] -
USARTO
USART1
USART2
USART3
-MISO, MOSI--NPCS[3..0] —
TWI MASTER 0 TWI MASTER 1
TWI SLAVE 0 TWI SLAVE 1
/—14 N—\?
8-CHANNEL ADC INTERFACE
TIMER/COUNTER 0 TIMER/COUNTER 1
- A[2..0] —
- B[2..0] -
AC INTERFACE
— ACBPÍ3..0
— ACBN[3..0
— ACAP[3..0
— ACAN[3..0
— ACREFN
О
GLUE LOGIC CONTROLLER
- 01Щ1..0] —
— IN[7..0] —
Рис. 4. Структурная схема микроконтроллера UC3L
торый после калибровки используется для тактирования 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, однако, справедливости ради, следует отметить, что текущая версия пакета имеет переработанную справочную систему, и ее использование не доставляет неудобств.
Сигнал А
Умножитель (х)
Фильтры
Нет (по умолчанию)
ФНЧ — частота среза 1 кГц частота среза 1 кГц
ЧФВЧ
Сигнал С Фильтр Сигнал D
хА + уВ F(n) F(xA + уВ)
Умножитель (у)
Сигнал В
Потоковый аудио-ЦАП (ABDAC)
Аппаратные средства
Компания Atmel предлагает обширный комплект отладочных средств для работы с микроконтроллерами AVR32. Это эмулятор ATJTAG ICE mkII, хорошо известный пользователям 8-разрядных AVR-контроллеров, эмулятор AVR ONE!, имеющий расширенные функции для отладки, а также множество отладочных плат. На рис. 5 представлена отладочная плата EVK1104, которая построена на контроллере AT32UC3A. Для удобства работы на плате размещен TFT-дисплей и сенсорные кнопки. Плата поставляется с запрограммированным примером, демонстрирующим DSP-возможности контроллера, — реализация цифровых фильтров, причем пользователь может через меню изменить частоту и амплитуду входных сигналов и сразу же наблюдать на дисплее изменение выходного сигнала. Структура демонстрационной программы для платы EVK1104 представлена на рис. 6.
На рис. 7 показана отладочная плата EVK1105, построенная на контроллере AT32UC3A0. Плата предназначена для демонстрации возможностей контроллера в части декодирования в реальном времени МР3-файлов с различным битрейтом. Файлы считываются со стандартного флэш-драйва, который подключается через интерфейс USB, а контроллер работает в режиме USB-Host. ■
¿A\W32
Рис. 6. Структура демо-программы для платы EVK1104 Рис. 7. Отладочная плата EVK1105
Литература
1. Материалы технического семинара АШе1. Норвегия, март 2010 г.
2. Королев Н. АУИ-контроллеры: развитие семейства. Часть 1 // Компоненты и технологии. 2010. № 5.
3. Королев Н. Аітеї: 32-разрядные Flash-микроконтроллеры на ядре АУИ32 // Компоненты и технологии. 2008. № 11.
4. Королев Н. Аітеї: микроконтроллеры для автопрома // Компоненты и технологии. 2008. № 7.
5. Королев Н., Шабынин А. Архитектура АУИ: развитие вширь и вглубь. Часть 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