Антон ШАБЬінин
Введение
Микроконтроллеры серии SAM3U при разработке предназначались для использования в устройствах, где требуется высокоскоростная передача данных, например при сохранении данных внешнего потока от системы или встроенных АЦП на SD-карту памяти. Типичные приложения, где может использоваться семейство SAM3U:
• Промышленная электроника: конвертеры интерфейсов, системы управления двигателями, пользовательские интерфейсы (панели управления и т. д.), системы сбора и накопления данных и др.
• Медицинская техника: физиотерапевтическое оборудование, мониторы пациента, приборы искусственной вентиляции легких и др.
• ЖКХ: теплорегистраторы, теплосчетчики и др.
• Системы безопасности: системы видеонаблюдения, системы сбора и обработки аудиоинформации.
• USB-гаджеты.
Предшественником семейства SAM3U
является семейство AT91SAM7, основанное на ядре ARM7TDMI с двойным набором команд. Во время работы требуется ручное переключение режима процессора, что нередко становилось причиной сбоев в ПО.
Основными нишами для использования данного контроллера должны стать:
• высокоскоростные шлюзы для промышленных и медицинских изделий;
• дополнительные устройства для компьютеров и телефонов;
• USB-интерфейсы к оборудованию;
• системы сбора и накопления данных. Микросхемы SAM3U построены на более
производительном ядре от компании ARM —
32 разряда от Atmel:
новое семейство SAM3 на ядре Cortex M3
В настоящее время все большую популярность получают встраиваемые системы, которые способны решать достаточно широкий круг задач и являются одними из основных модулей при реализации систем верхнего уровня. Для таких применений важен вопрос потребления питания и пиковая производительность используемых микроконтроллеров. 32-разрядные архитектуры с поддержкой USB 2.0 Hi-Speed, SDIO, способны пропускать потоки в сотни мегабит данных. Микроконтроллеры Atmel Cortex M3 серии SAM3 созданы для решения именно таких задач.
Cortex M3. В нем используется набор команд Thumb-2, плотность кода которого на 31% выше, чем у набора команд ARM, при том же уровне производительности, а в сравнении с набором команд Thumb производительность Thumb-2 выше на 38%. Максимальная тактовая частота ядра SAM3U составляет 96 МГц. Эффективность выполнения команд — 1,25 DMIPS/МГц. Максимальная производительность процессора достигает 120 MIPS, что позволяет использовать его для достаточно серьезных вычислений.
Кроме производительного ядра, микроконтроллеры SAM3U обладают набором высокоскоростной периферии, включая интерфейс Hi-Speed USB 2.0 Device с интегрированным модулем физического уровня. Сочетание 5-слойной высокоскоростной матрицы шин, 23 каналов DMA и распределенной памяти позволяет избежать узких мест при передаче данных. За счет использования периферийного DMA (PDMA) и арбитра высокоскоростной шины передача данных происходит с минимальным расходом процессорного времени. Отличием микроконт-
роллеров SAM3U является модуль Hi-Speed USB 2.0 Device, который позволяет передавать данные в компьютер на частоте 480 Мбит/с. Из-за накладных расходов протокола USB фактическая скорость передачи данных составляет 425 Мбит/с. На момент написания данной статьи поддержка Hi-Speed USB 2.0 присутствует только в микроконтроллерах SAM3U от Atmel: ни в LPC на Cortex M3 от NXP, ни в STM32 такой функции нет.
Прогрессивный механизм управления питанием и рабочее напряжение до 1,62 В позволяют SAM3U полностью использовать ресурс батарей и обеспечивают работу в режиме 1,8 В.
Микроконтроллеры SAM3
Обзор семейства
В семейство SAM3U сейчас входит два подсемейства микросхем:
• SAM3UxE в 144-выводных корпусах LQFP144 и BGA144 с полной внешней шиной данных (ширина — 8 или 16 бит данных, адресация — 24 бита, 4 линии Chip Select).
Таблица. Сводная таблица параметров микросхем семейства SAM3U
Микросхема Flash-память, кбайт SRAM, кбайт Линии I/O USB Device USART SPI TWI Вывод SHDN Внешняя шина данных АЦП Корпус
SAM3U4E 2x128 52 96 HS 5 5 2 Да 8 или 16 бит 4 линии CS 24 бит адреса 8 каналов 12 бит 8 каналов 10 бит LQFP144 BGA144
SAM3U2E 128 36 96 HS 5 5 2 Да 8 или 16 бит 4 линии CS 24 бит адреса 8 каналов 12 бит 8 каналов 10 бит LQFP144 BGA144
SAM3U1E 64 20 96 HS 5 5 2 Да 8 или 16 бит 4 линии CS 24 бит адреса 8 каналов 12 бит 8 каналов 10 бит LQFP144 BGA144
SAM3U4C 2x128 52 57 HS 4 4 1 Нет 8 бит 2 линии CS 8 бит адреса 4 канала 12 бит 4 канала 10 бит LQFP100 BGA100
SAM3U2C 128 36 57 HS 4 4 1 Нет 8 бит 2 линии CS 8 бит адреса 4 канала 12 бит 4 канала 10 бит LQFP100 BGA100
SAM3U1C 64 20 57 HS 4 4 1 Нет 8 бит 2 линии CS 8 бит адреса 4 канала 12 бит 4 канала 10 бит LQFP100 BGA100
Ведущий ■
Ведомый
URXD UTXD <
XIN -
хоит -
XIN32 -XOUT32 *
SHDN . WKUP -NRSTB -VDDBU -
VDDCORE -VDDUTMI
NRST <
Системный
контроллер
I CHIPID I
OSC
3-20М
UART
Гррс
RC 12/8/4 М|1
OSC
32К
I РЮВ I
ІНІ
т %
&
JTAG & Single Wire
Внутрисхемный эмулятор
Ядро Cortex-M3
USB
Device
HS
DMA
I/D
Регулятор
напряжения
5-слойная шинная матрица АНВ
ІГ1 Г
Flash 2x128 кбайт 1x128 кбайт 1x64 кбайт
SRAM0 32 кбайт 16 кбайт 8 кбайт
SRAM1 16 кбайт 16 кбайт
ROM
16 кбайт
Периферийный DMA-контроллер
Перифе-
рийный
мост
8 каналов 10-бит АЦП 12-бит АЦП
tt t
TWIO
TWI1
PDC
USARTO USART 1 USART2 USART3
jLj
4-канальный
DMA
TCO
TC1
TC2
NAND Flash SRAM
(4 кбайт)
ÍV
NANDRDY D0-D15 AO/NBSO ->• A1
A2-A20
—► NCSO ->-NCS1 -►NRD
NWRO/NWE
->-NWR1/NBS1
<->.NWAIT
<-►*23
► A21/NANDALE ■0-A22/NANDCLE
► NCS3 0-NCS2
- NANDOE, NANDWE
Рис. 1. Структура микроконтроллера SAM3UxE
• SAM3UxC в 100-выводных корпусах LQFP100 и BGA100 с сокращенной внешней шиной данных (ширина — 8 бит данных, адресация — 8 бит, 2 линии Chip Select). Сводная информация по микросхемам семейства SAM3U приведена в таблице. Микросхемы обоих подсемейств выпускаются в модификациях с объемом Flash-памяти от 64 до 256 кбайт, соответственно, размер SRAM-памяти составляет от 20 до 52 кбайт.
В старшем семействе SAM3UxE контроллеры обладают большим количеством периферии: до 96 линий ввода общего назначения, 5 портов UART, из них 4 синхронных порта USART могут работать в режиме SPI. В зависимости от задачи к контроллеру можно подключать до 6 независимых каналов SPI за счет использования модулей SPI, SSC и четырех USART. В новых контроллерах, помимо модуля 10-разрядного АЦП, добавлен модуль 12-разрядного АЦП. Одновременно доступно до 16 каналов АЦП: 10 и 12 разрядов по 8 каналов.
Контроллеры семейства SAM3UxC упакованы в более компактный корпус и имеют менее богатую периферию: 57 портов ввода/ вывода, 4 порта USART, 1 порт TWI и более узкую внешнюю шину данных.
Архитектура SAM3U
При разработке нового семейства ставилась задача по передаче данных со скоростью более 100 Мбит/с между такими интерфей-
сами, как Hi-Speed ШВ 2.0, SDЮ/SDCard 2.0, ММС 4.3, внешней шиной и SPI. Семейство SAM3U (рис. 1) обладает архитектурой с высокой пропускной способностью. Она основана на 5-слойной матрице шин — для полного использования коммуникационных возможностей высокоскоростной периферии. Данные передаются с использованием 17 периферийных каналов PDMA по низкоскоростной шине, к которой подключены «медленные» устройства, такие как Т”Ш или USART. Четыре центральных DMA-канала и 1 выделенный канал для Hi-Speed ШВ обеспечивают передачу данных напрямую от одного периферийного модуля к другому, минуя промежуточный буфер в памяти, и не загружают процессор. Для распределения нагрузки периферийная шина разделена на 2 подшины, которые работают независимо, что позволяет одновременно передавать данные, например, от 4 каналов АЦП и 3 каналов USART в промежуточный буфер, а затем сохранять эти данные на SD-карту. Карта памяти подключается к контроллеру ГОМСІ, который подключен к другому сегменту шины.
Память SRAM состоит из трех частей общим объемом до 52 кбайт. Распределенная структура памяти обеспечивает параллельный доступ к ней разных устройств. память организована в форме двух банков памяти, при этом возможно модифицировать данные в одном из банков, если контроллер в этот момент выполняет программу
из другого банка. Это так называемый режим In-Application Programming (IAP). Этот механизм позволяет организовывать безопасное обновление прошивки микросхем. Возможен программный выбор банка, из которого контроллер начнет выполнять программу после перезагрузки.
Пользователь не имеет доступа напрямую к ячейкам Flash-памяти. Доступ обеспечивается контроллером Flash-памяти, который отображает массив памяти в общее адресное пространство микроконтроллера и выполняет буферизацию данных (рис. 2). Ядро и периферия обращаются к Flash-памяти через 32-битную внутреннюю шину данных. Обмен возможен пакетами по 8, 16 и 32 бита. Доступ к внутреннему массиву Flash-памяти производится через 64- или 128-разрядную шину. В зависимости от потребностей пользователь может выбирать между производительностью и потреблением энергии, отдавая предпочтение более широкой или узкой шине. Предусмотрено два буфера предварительной выборки данных и буфер чтения. Внутренний Flash-массив подключается к контроллеру Flash-памяти посредством шины шириной 128 бит. Она в 4 раза шире внутренней 32-битной шины микросхемы. При работе Flash-памяти с задержкой в 1-3 такта процессора (Flash Wait State = 1...3) такой механизм позволяет повысить скорость последовательного чтения данных из Flash-памяти, что исключает
Такты jn_n_n_njn_n_n_n_n_n_n_n_n_n_n_n_ I_____________________________________ttttttttttttt
@Байт 0 @4 @8 @12 @16 @20 @24 @28 @32 @36 @40 @44 @48 @52
Доступ к Flash X Байты 0—15 X Байты 16—31 ~Х Байты 32—47 ^ Байты 48—63
Буфер 0 (128 бит) XXX X Байты 0—15 X Байты 32—47
Буфер 1 (128 бит) XXX X Байты 16—31
к ядру ARM X XXX
Рис. 2. Работа буферов в контроллере Flash-памяти при задержке доступа в 3 такта (FWS = 3)
задержки за счет использования предварительной выборки и буферизации.
Flash-память организована в страницы длиной 256 байт. Страницы объединяются в регионы, по 8 кбайт каждый. В зависимости от общего объема Flash-памяти на кристалле количество банков и регионов может быть разным. Для унификации программного кода информацию о конфигурации памяти программа может получить у контроллера внутренней Flash-памяти непосредственно во время выполнения.
Кроме стандартных интерфейсов — 4 UART, 5 SPI, 2 I2C, SSC (I2S), таймеров, ШИМ, на кристалле присутствует усовершенствованная система управления питанием и сбросом микросхемы, включающая схемы BOD (Brown Out Detector — схема монитора питания) и POR (Power On Reset — схема сброса микросхемы при подаче питания). Каждый кристалл имеет уникальный 128-битный ключ, от которого может зависеть программное обеспечение.
Внешняя параллельная шина данных (Extermal Bus Interface, EBI) может быть сконфигурирована для работы в 8- и 16-битном режиме. Шина EBI поддерживает память типа SRAM, PSRAM, NOR Flash и NAND Flash. Для микросхем типа NAND поддерживается проверка контрольной суммы блока. Внешнюю шину также можно использовать для подключения LCD-дисплея со встроенным контроллером.
Проблема батарейного питания остается актуальной с ростом производительности контроллера. Микросхемы, работающие на частотах более 20 МГц, изготавливаются, как правило, по техпроцессу с технологическими нормами не более 180 нм. Уменьшение нормы техпроцесса позволяет снизить емкость элементов и, как результат, понизить потребление в активном режиме. Отрицательным эффектом становится уменьшение толщины изоляционного слоя и, как следствие, — рост паразитных и тепловых токов в кристалле. На практике это приводит к увеличению тока, потребляемого контроллером в статичес-
ком режиме. Микроконтроллеры семейства SAM3U потребляют не более 2,5 мкА в спящем режиме. При этом остаются в активном режиме таймеры RTT, RTC, 32 регистра общего назначения по 32 бита, системы, обеспечивающие слежение за уровнем напряжения питания, и монитор внешних событий, которые могут «разбудить» процессор. Модуль RTC поддерживает функцию календаря и потребляет не более 0,6 мкА, что не превышает потребления микросхем часов реального времени. Для удобства использования резервного питания и разделения основного и батарейного питания предназначен вывод SHDN, который может использоваться для управления стабилизатором питания платы при батарейном питании. Также вывод SHDN можно использовать для формирования задержки перед подачей питания на ядро микроконтроллера. Данный подход применим при запуске в условиях ограниченной мощности источника питания. На выбор пользователя — несколько спящих режимов, отличающихся набором активной периферии и временем выхода на рабочий режим. Для самого глубокого спящего режима — Backup Mode — время пробуждения контроллера составляет менее половины миллисекунды.
Программная поддержка
Семейство SAM3U разрабатывается той же группой, что и семейства SAM7 и SAM9. Ядро Cortex-M3 имеет новую структуру набора инструкций, и программный код необходимо переписать при переходе с предыдущих ядер семейства ARM. Благодаря тому, что большинство кодов для современных микроконтроллеров пишется на языке Си, этот переход значительно упрощается. А для пользователей программных библиотек, таких как AT91lib из состава Atmel Softpack, переход произойдет совершенно незаметно, поскольку частные детали реализации отделены от пользовательской программы уровнем логической абстракции. Программная модель, используемая для процессоров ARM предыдущих по-
колений, осталась без изменений. В семействе SAM3 по возможности применяются те же модули периферии, что и раньше. Это обеспечивает полную совместимость пользовательских драйверов. Как результат, миграция на новый процессор в существующих разработках близка к перекомпиляции кода под новый процессор.
Средства разработки
Останавливаться на данном вопросе не имеет особого смысла, поскольку все популярные среды, поддерживающие актуальные процессоры ARM, поддерживают работу и с ядром Cortex-M3, в том числе с процессорами рассматриваемого семейства. SAM3U является реализацией промышленной архитектуры и поддерживается продуктами от IAR, Keil, Micrium, Segger и других компаний. Поддержка Cortex-M3 присутствует и в бесплатной среде, построенной на основе компилятора GCC (GNU C Compiler) и среды Eclipse. Для своих процессоров компания Atmel предлагает традиционные примеры и библиотеку по работе с периферией процессора и внешними устройствами, такими как, например, SD-карты. Все примеры доступны для скачивания на сайте производителя — www.atmel.com.
Поддержка отладки через интерфейс JTAG позволяет отлаживать программы в реальном времени непосредственно на процессоре. В качестве базового JTAG-эмулятора можно выбрать эмулятор SAM-ICE, который используется для процессоров SAM7 и SAM9.
Демонстрационная плата SAM3U-EK
Для демонстрации возможностей процессора и сокращения времени от начала разработки до выпуска готовой продукции для процессоров предлагается стартовая плата SAM3U-EK. Она основана на старшем процессоре из семейства — SAM3U4E в корпусе QFP. Плата насыщена периферией, на ней
Основная память TFT LCD Multimedia Card Звук I/O
LCD TFT 240x320
4/8 бит интерфейс SD/MMC
Micro 1 Q 1
Line In 0
HeadPh 1 Q 1
Кнопка
Свето-
диод
EBI / 3,3 В
Внешняя память
Системный
контроллер
Power/
SHDN
о
о
Аналоговая TWI f ZIGBEE USART
Device
RS-232
( о о о о о N ^ о о о о )
RS-232
( О О О О О4] ^ О О О о )
I ОООООООО I
I ОООООООО I
ОООООООО
ОООООООО
VCC 5V BNC *2 Г ZigBee RS-232 USB Device RS-232 JTAG PIO
High/Full
Рис. 3. Структурная схема платы SAM3U-EK
установлены следующие компоненты: порт Hi-Speed USB Device (разъем типа USB-B), TFT LCD индикатор размером 2,8 дюйма, NAND Flash, PSRAM, разъем для подключения SD/MMC карт, термодатчик, трехосевой акселерометр, аудиокодек с двумя стереовыходами и микрофонным входом, разъем для подключения модулей ZigBee, набор стандартных разъемов ввода/вывода, RS-232, BNC-разъемы для ввода данных АЦП, светодиоды, пользовательские кнопки, JTAG-интерфейс для программирования и отладки. Общая структура платы представлена на рис. 3. В комплекте с платой поставляются: источник питания, кабели USB и RS-232, а также литиевая батарея для использования спящего режима совместно с батарейным питанием.
В комплекте поставки отсутствует диск с программным обеспечением. Как правило, за срок, который проходит от производства платы до доставки ее пользователю, успевает появиться одна-две новые версии комплекта примеров и среды разработки. Чтобы избавить начинающих пользователей от необходимости борьбы с неизбежными ошибками, которые могут быть устранены после обновления версии, перед началом работы с платой рекомендуется обновить программное обеспе-
чение до актуальной версии. Все ПО доступно для свободной загрузки в Интернете.
Заключение
В модельном ряду семейство SAM3U занимает нишу между микроконтроллерами ARM7 семейства AT91SAM7 и встраиваемыми процессорами на ядре ARM9 семейства AT91SAM9. Близким аналогом микроконтроллеров SAM3U являются микроконтроллеры AT32UC3, в частности AT32UC3A3. Рассмотрим преимущества микроконтроллеров AT32UC3A3:
• Используется более энергоэффективное ядро AT32UC3 с 1,49 DMIPS/МГц (1,25 DMIPS/МГц y SAM3U)
• Смешанный RISC-DSP набор команд.
• Модуль USB 2.0 Hi-Speed OTG (USB 2.0 Hi-Speed Device в SAM3U).
Преимущества SAM3U:
• Тактовая частота — 96 МГц, максимальная производительность — 120 DMIPS (98,34 DMIPS при 66 МГц y AT32UC3A3).
• 16 каналов АЦП.
• Меньшее потребление питания в глубоком спящем режиме: 2,5 мкА (<100 мкА у AT32UC3). Необходимо отметить, что в описании AT32UC3 и SAM3U используется несколько разная методика измере-
ния потребляемых токов, что не позволяет однозначно сравнить приведенные производителем значения.
Из этого сравнения видно, что даже два очень близких семейства имеют свои ниши: AVR32UC применимы в задачах, требующих проведения постоянных вычислений, а время, проводимое контроллером в глубоком спящем режиме, невелико. Для семейства SAM3U подходят задачи, в которых требуется высокая пиковая производительность, измеряется много аналоговых сигналов, контроллер длительное время бездействует, используется батарейное питание. ■
Литература
1. SAM3U-EK Development Board User Guide — http:// atmel.com/ dyn/ resources/prod_documents/ doc6478.pdf
2. SAM3U Series — http://atmel.com/dyn/resources/ prod_documents/doc6430.pdf
3. SAM3U Microcontroller Series Schematic Check List — http://atmel.com/dyn/resources/prod_ documents/doc11006.pdf
4. Техническое описание микросхем AT32UC3A3 http://atmel.com/dyn/reso urces/prod_ documents/32072.pdf
5. The Cortex-M3 — http://infocenter.arm.com