Выпуск #1/2013
Н.Королев
Микроконтроллеры Atmel на ядре Cortex. Расширение семейства
Микроконтроллеры Atmel на ядре Cortex. Расширение семейства
Просмотры: 4462
Помимо 32-разрядных микроконтроллеров собственной архитектуры компания Atmel впускает и контроллеры на ARM-архитектуре. Это – изделия для потребительского рынка и промышленных применений со "стандартными" требованиями к надежности. За последний год семейство ARM-контроллеров существенно расширилось. В статье рассмотрены эти новые МК.
Сотрудничество компаний Atmel и ARM продолжается уже более десяти лет. В линейке Atmel представлены контроллеры семейства SAM (Smart ARM) – SAM7 на ядре ARM7, SAM3 и SAM4 – на ядрах Cortex-M3 и Cortex-M4, соответственно. Также существует большое семейство SAM9 на высокопроизводительном ядре ARM926, но рассмотрение этих контроллеров выходит за рамки данной статьи. Хронология развития контроллеров на ядрах ARM представлена на рис.1.
Микросхемы SAM7/SAM3/SAM4 объединяет логика построения кристалла, на котором размещено ядро, флеш-память программ, память данных СОЗУ, а также блок памяти ПЗУ с "зашитым" загрузчиком, который принимает бинарный файл программы по порту UART или USB и производит его запись во флеш-память. Транзакции внутри кристалла осуществляются по многослойной 32-разрядной шине данных, что позволяет организовать передачу от четырех до семи потоков данных одновременно.
Специалисты компании ARM постоянно занимаются усовершенствованием ядер, в результате чего каждые два-три года анонсируются новые продукты с улучшенными параметрами. С одной стороны, это отвечает запросам рынка, а с другой – вынуждает производителей микроконтроллеров заниматься разработкой новых кристаллов. И разработчики получают возможность применять в новых проектах микросхемы с повышенной производительностью, пониженным энергопотреблением и по ценам, сопоставимым с ценами на существующие контроллеры, а в ряде случаев и более выгодным. Выпускаемые в настоящее время серии ARM-контроллеров со встроенной флеш-памятью показаны на рис.2.
Компания, как правило, выпускает новые контроллеры в корпусах, совместимых по выводам с контроллерами предыдущих поколений, чтобы облегчить разработчикам систем задачу миграции. Исключением является контроллер AT91SAM7A3. Этот популярный, хотя и несовременный, микроконтроллер готовят к снятию с производства без прямой замены. Для информирования заказчиков Atmel выпустила документ, который гарантирует, что в течение 12 лет она будет выпускать как вновь разработанные, так и существующие ARM-контроллеры.
Микроконтроллеры SAM3
Современные ядра компании ARM, семейство Cortex, построены на улучшенной архитектуре ARMv7-M. Предлагаются микросхемы с объемом флеш-памяти на кристалле от 16 Кбайт до 1 Мбайта и в корпусах от 48 до 144 выводов. Учитывая высокую популярность контроллеров SAM7S, компания выпустила аналоги SAM3 в 64-выводных корпусах, которые устанавливаются в печатные платы, разработанные для контроллеров SAM7S. Краткая информация по развитию семейств SAM3/SAM4 представлена на рис.3.
Основные отличия контроллеров SAM3S от SAM7S:
набор команд Thumb-2 позволяет получить более компактный код;
производительность ядра повышена c 0,90 до 1,25 MIPS/MГц;
ширина шины памяти программ увеличена с 32 до 128 бит;
многослойная шинная матрица AHB/APB имеет улучшенную структуру;
частота ядра повышена с 55 до 64 MГц;
два модуля ФАПЧ позволяют формировать две независимые частоты – 48 MГц для порта USB и 64 MГц – для работы ядра.
Новые аппаратные характеристики SAM3S:
встроенный высокоточный подстраиваемый RC-генератор с базовой частотой 4 MГц;
тактирование от внешнего керамического резонатора 3–20 MГц;
тактирование от внешнего кристалла 32 кГц;
переключение на тактирование от RC-генератора при отказе кварцевого генератора;
встроены фильтры PLL;
число линий ввод/вывод для 64-выводного корпуса увеличено с 32 до 47;
аппаратное вычисление контрольной суммы CRC для встроенной и внешней памяти;
добавлен модуль MPU (Memory Protection Unit);
улита SAM-BA поддерживает интерфейс с SAM3S для нескольких частот.
Микроконтроллеры SAM3N можно назвать микросхемами "начального уровня", у них отсутствует порт USB, скорость ядра ограничена частотой 48 MГц, а максимальный объем флеш-памяти составляет 256 Кбайт. Микросхемы SAM3S – это "стандартные" контроллеры с максимальной скоростью ядра 64 MГц, с портом USB Full Speed или High Speed и максимальным объемом флеш-памяти до 1 Мбайта. Это самое многочисленное подсемейство. В разработке находятся еще два контроллера с уменьшенным объемом флеш-памяти – 16 и 32 Кбайта. Контроллеры SAM3S совместимы во выводам с контроллерами SAM3N и могут использоваться в тех же печатных платах.
Микроконтроллеры SAM3U работают на частоте ядра 96 MГц и являются первыми в промышленности контроллерами на ядре Cortex-M3 с интерфейсом High Speed USB.
Отличительной особенностью микросхем SAM3X и SAM3A является двухканальный CAN-интерфейс, а SAM3X содержит на кристалле еще и модуль Ethernet MAC 10/100 Мбит. Кроме этого, высокоскоростной интерфейс USB поддерживает режим OTG (On-The-Go).
Все микроконтроллеры SAM3 имеют типовое напряжение питания ядра 1,8 В, диапазон напряжения питания периферийных модулей – 1,8–3,3 В. В них применены быстродействующие выходные буферы: максимальная рабочая частота типовой линии вывода составляет 35 MГц, а для интерфейса SPI эта частота даже выше – 45 MГц. Каждая микросхема SAM3 содержит уникальный 128-разрядный номер (идентификатор ID), который присваивается в процессе изготовления кристалла и не может быть стерт или модифицирован. Одно из назначений идентификатора – скремблирование (кодирование) данных на внешней шине, что позволяет защитить информацию, которая выдается во "внешний мир".
Внешний шинный интерфейс EBI (External Bus Interface) в 144-выводных контроллерах имеет 8-разрядную шину данных, 24-разрядную шину адреса и четыре линии Chip Select. К внешней шине можно подключать память различных типов (NOR флеш, SLC NAND флеш, СОЗУ, ПСОЗУ – псевдоСОЗУ), а также внешний ЖК-индикатор, Ethernet-контроллер и другие периферийные устройства. Полезной функцией внешней шины является возможность кодирования передаваемых данных и декодирования принимаемых. Для кодирования применяются ключи, которые хранятся в двух 32-разрядных регистрах SMC_KEY1 и SMC_KEY2, доступных только для записи. Каждый контроллер может использовать для кодирования данных уникальный ключ. Кодирование/декодирование происходит "на лету", без потери скорости передачи данных. Таким образом, предотвращается несанкционированный доступ к данным, сохраняемым во внешней памяти. К внешней шине одновременно могут быть подключены как устройства, использующие кодированный обмен, так и устройства, передающие данные в открытом формате.
Высокоскоростной интерфейс MCI позволяет работать с картами памяти типа MMC и SD в одноразрядном и четырехразрядном режимах, а также с картами HSMCI в 8-разрядном режиме. Аппаратный модуль вычисления контрольной суммы (CRC) поддерживает три алгоритма: CCIT802.3, полином 0x04C11DB7; CRC-32C (CASTAGNOLI), полином 0x1EDC6F41; CCIT16, полином 0x1021. Использование канала DMA при вычислении CRC позволяет производить этот процесс "на лету". Контрольная сумма может вычисляться для памяти любого типа – встроенной флеш или СОЗУ, а также памяти, подключенной к внешней шине данных микроконтроллера.
Шина данных может работать в режиме 8-bit Parallel Capture Mode, который удобен для подключения высокоскоростных периферийных устройств, таких как быстрые АЦП, микросхемы FPGA или CMOS-видеокамера.
В старших микроконтроллерах, SAM3SD8 и SAM3U4, использована двухбанковая архитектура флеш-памяти. Такая организация памяти позволяет модифицировать ее содержимое в одном из банков, пока выполняется программа, расположенная в другом. Таким образом, можно удаленно производить обновление прошивки контроллера непосредственно в процессе работы. В случае сбоя процесса программирования или помех на линии связи процедуру можно безболезненно повторить.
Микроконтроллеры SAM4
Ядро Cortex-M4 компании ARM – это логическое развитие ядра Cortex-M3. Главное отличие – появление аппаратного модуля для выполнения SIMD- и DSP-команд, причем старшие микроконтроллеры Atmel на ядре Cortex-M4 поддерживают выполнение DSP-команд с плавающей запятой. Очень важно, что обеспечена обратная программная совместимость с ядром Cortex-M3. Основные характеристики контроллеров представлены табл.1.
Наличие модуля DSP-команд позволяет существенно сократить время вычисления для ряда математических алгоритмов. Матричные вычисления контроллер на ядре SAM4 производит на 30–40% быстрее, а в задачах цифровой фильтрации сигналов – на 60% быстрее, чем контроллер на ядре SAM3 (рис.4).
Микроконтроллеры SAM4N и SAM4S по сравнению с SAM3N и SAM3S имеют расширенный объем памяти программ и данных, увеличенную тактовую частоту, а также совместимые корпуса (64 и 100 выводов).
Многие современные микроконтроллеры содержат на кристалле выделенный таймер для выполнения функции часов реального времени. Обычно этот таймер тактируется от внешнего "часового" кварца с начальной точностью ±5∙10-6, что дает ошибку несколько секунд в сутки. Однако для решения ряда задач требуется более высокая точность. В микроконтроллере SAM4S16 аппаратно реализована возможность коррекции ошибки задающего кварца путем периодического измерения температуры вблизи кварца и табличного вычисления корректирующего коэффициента. При этом можно получить точность (1–5)∙10-6 для полного рабочего диапазона температуры.
В серии SAM4S есть МК SAM4SD32 с объемом флеш-памяти 2 Мбайта, что позволяет хранить мультиязычные меню и большие наборы цветных иконок высокого разрешения. Иллюстрацией применения контроллеров такого класса является система на кристалле (СнК) SAM4SP32A. В ее состав входит высококачественный ODFM-модем, поддерживающий стандарт PRIME. В пакете программ Atmel Studio 6 есть пример программного стека PRIME-Compliant Embedded PRIME Software Stack для SAM4SP32A.
Одно из отличий микроконтроллеров SAM4 – пониженное энергопотребление. Например, в активном режиме при частоте ядра 64 MГц ток потребления у SAM3S16 составляет 22,4 мА, а для SAM4S16 – 14,6 мА. В энергосберегающем режиме Backup ток потребления составляет 13 мкА для SAM3S16 и 2 мкА – для SAM4S16 (отключается напряжение 3,3 В с модуля флеш-памяти).
Самые высокие параметры по энергопотреблению имеют микроконтроллеры SAM4L. Инженеры Atmel реализовали в них схемные решения, первоначально примененные в контроллерах серий ATxmega и AT32UC3L. Это известные технологии picoPower и sleepWalking с малым временем пробуждения, а также система событий (Event System) и контроллер периферийной логики (Glue Logic Controller), который позволяет аппаратно производить прямо на кристалле логические операции типа NAND и XOR c выходными данными. Такой комплексный подход к снижению энергопотребления позволил снизить потребляемый ток в энергосберегающих режимах Sleep до 0,8 мА, а в Backup – до 0,9 мкА. Как и микросхема ATxmega, SAM4L имеет высокоэффективный модуль управления ЖКИ, а также криптомодуль с повышенной скоростью кодирования (до 8,8 Мбит/с), поддерживающий стандарты DES и AES. В этом контроллере применен высокопроизводительный интерфейс I2C с поддержкой DMA, обеспечивающий скорость передачи до 3,4 Мбит/с при напряжении питания 1,8 В.
В микроконтроллерах SAM4 используется автокалибровка встроенного АЦП. Процесс автокалибровки запускается установкой бита AUTOCAL в управляющем регистре АЦП. После калибровки корректирующие значения коэффициента усиления и ошибка смещения сохраняются в отдельной памяти АЦП. Следует отметить, что после выполнения программного сброса, а также при выходе из ждущего режима процедуру автокалибровки необходимо повторить.
Микроконтроллеры SAM4E
Микроконтроллеры SAM4E хотя и входят в семейство SAM4S, но требуют отдельного описания, потому что по совокупности параметров они могут быть отнесены к следующему поколению. Главное их отличие – поддержка DSP-команд с плавающей запятой. Модуль DSP поддерживает стандарт ANSI/IEEE Std 754-2008 и работает с 32-разрядными данными. Если сравнить производительность ядра Cortex-M4F, на котором построен SAM4E, с ядром начального уровня Cortex-M0, можно увидеть, что быстродействие в обработке данных при использовании DSP-команд возросло в 10–30 раз (табл.2).
Контроллеры SAM4E имеют флеш-память 512 или 1024 Кбайт и оперативную память 128 Кбайт. Для исключения задержек выборки команд используется кэш-память объемом 2 Кбайта. Наличие внешней шины адрес/данные позволяет расширить память подключением внешних микросхем типа СОЗУ, ПСОЗУ и NAND. Основные параметры микросхем SAM4E приведены ниже.
Основные характеристики микроконтроллера SАМ4Е
Частота ядра 120 MГц
Объем флеш-памяти 512 Кбайт–1 Mбайт
Объем СОЗУ 128 Кбайт
Ethernet 10/100 1
Интерфейс Ext Bus 8 разрядов
Интерфейс USB Full Speed
Интерфейс CAN 2
Интерфейс USART 4
Интерфейс HSMCI 4 разряда
Интерфейс SPI 3
Интерфейс I2C 2
Криптомодуль да
Модуль Parallel Capture да
Два АЦП, 12- и 16-разрядные до 24 каналов
ЦАП 12-разрядные 2 канала
Таймеры/ШИМ-контроллеры 9/4
Число входов/выходов 117
Тип корпуса QFP/BGA 144
В контроллере используется многослойная шинная матрица, причем ширина шины данных может составлять как 32, так и 64 разряда. Поддерживается интерфейс AHB (Advanced High-performance Bus – расширенный высокопроизводительный шинный интерфейс) и работа с несколькими мастерами (до 16). Для снижения времени реакции на внешние события применяется модуль Real-time Event.
Контроллер содержит два 12-разрядных АЦП производительностью 1 Mвыб./с. На входе первого АЦП установлен 16-канальный мультиплексор, на входе второго – 8-канальный. АЦП могут работать с одиночными или дифференциальными сигналами. Для приложений, требующих повышенную точность преобразования, предлагается программно-аппаратное решение, которое позволяет путем динамического использования программируемого входного усилителя, термокомпенсации, автокалибровки напряжения смещения и коэффициента усиления, а также цифрового усреднения, получить данные с 16-разрядной точностью. При этом скорость преобразования снижается до 4 квыб./с. Также на кристалле размещен двухканальный ЦАП с производительностью 1 Mвыб./с и аналоговый компаратор.
Для скоростной передачи данных используется многоканальный периферийный контроллер DMA (32 канала), а также четырехканальный контроллер DMA, поддерживающий транзакции типа память–память.
Пакет программ Atmel Studio 6 уже содержит примеры работы с микроконтроллером SAM4E – это RTOS, DSP+FPU, QTouch, разрабатываются примеры для работы по протоколам Modbus, TCP/IP, Wi-Fi, ZigBee.
Микроконтроллеры SAMA5D3
Для приложений, требующих повышенной производительности, обычно используются аппаратные решения с высокой тактовой частотой. При этом технологически проще использовать отдельные кристаллы памяти программ и памяти данных. Для получения минимальных габаритов устройств, таких как смартфоны и планшетные компьютеры, выпускаются СнК в многослойном исполнении, когда конструкция фактически представляет собой сэндвич из нескольких кристаллов, упакованных в один корпус. Минусы этой технологии – фиксированная конфигурация и повышенная стоимость такого "бутерброда".
В обычных промышленных применениях задача минимизации объема устройства не так остра, поэтому микроконтроллеры с внешней памятью программ и данных еще долгое время будут присутствовать на рынке. Компания Atmel уже много лет выпускает контроллеры на ядре ARM9, причем первая микросхема этого семейства – AT91RM9200, работающая на частоте 180 МГц, все еще востребована и пока выпускается. Конечно, это семейство развивается, и последние модели уже работают на частоте 400 МГц и содержат на кристалле высокоскоростной USB-интерфейс, контроллер цветного ЖК-дисплея с высоким разрешением и множество периферийных модулей. Тем не менее, ядро ARM9 сегодня нельзя назвать современным, поэтому Atmel подготовила к выпуску контроллер нового поколения – на ядре Cortex-A.
Компания ARM Holding предлагает несколько решений с использованием этого ядра, построенного по архитектуре ARMv7. Сравнительные характеристики можно посмотреть на сайте производителя http://www.arm.com/products/processors/cortex-a/index.php. Самое известное из них – ядро Cortex-A8, анонсированное в 2005 году и ставшее наиболее востребованным с ростом выпуска смартфонов и планшетных компьютеров. Однако оно, по современным требованиям, имеет повышенное удельное энергопотребление, и в новых разработках его заменяют на Cortex-A9, выпущенное в 2007 году.
После анализа существующих ядер семейства Cortex-A инженеры Atmel остановили свой выбор на ядре A5, которое выпущено в 2009 году и является самым эффективным по энергопотреблению, а именно эта характеристика микроконтроллера востребована для применения в новых проектах. Микроконтроллер называется SAMA5D3 и выпускается в четырех модификациях. Его описание требует отдельной статьи, здесь же кратко приведены основные параметры.
SAMA5D3 работает на частоте ядра до 536 МГц (800 DMIPS) при потребляемой мощности 200 мВт в активном режиме и 0,5 мВт – в режиме ожидания. Ток потребления в режиме Backup составляет 1,2 мкА. В состав кристалла входит модуль для обработки чисел с плавающей запятой. Внутренняя шинная матрица имеет ширину 64 разряда, внешняя шина данных – 32 разряда, рабочая частота – 166 МГц. Все модификации содержат порты High Speed USB, поддерживаются Ethernet (1000 и 100 Мбит). Криптомодуль поддерживает алгоритмы AES/Triple DES и SHA, есть встроенный генератор случайных чисел (табл.3).
Аппаратные средства
Для каждого типа микроконтроллера компания Atmel предлагает отладочные платы. Как правило, на плате распаян микроконтроллер в корпусе с максимальным числом выводов и наибольшим объемом памяти. Стоит отметить, что отладочная плата ATSAM3X-EK для контроллеров серии SAM3X снята с производства, а замена будет выпущена через полгода. Однако вместо нее можно использовать плату российского производства AS-sam3X, которая построена на микроконтроллере в 100-выводном корпусе и поддерживает основные интерфейсы микроконтроллеров SAM3X, включая Ethernet, CAN и SD-card.
Внешний вид отладочной платы AS-sam3X приведен на рис.5. Полную информацию об этой плате можно посмотреть на сайте www.as-kit.ru
Программное обеспечение
В марте 2012 года был анонсирован пакет программ Atmel Studio 6. Он построен на графическом интерфейсе Visual Studio 2010, лицензированном компанией Microsoft, и использует компилятор ARMGCC. Поддерживаются микроконтроллеры SAM3 и SAM4. Начиная с пятой версии пакета, Atmel применяет концепцию оформления примеров исходных кодов в отдельный пакет – ASF (Atmel Studio Framework), который встроен в Atmel Studio 6. При этом есть возможность подгружать новые версии ASF, не удаляя старые. Также существует автономная версия пакета ASF, которая может использоваться, например, с компилятором языка Си компании IAR. В январе 2013 года выпущен ASF версии 3.52, который содержит более 400 примеров исходных кодов для контроллеров SAM3 и около 300 примеров – для контроллеров SAM4.
Таким образом, сегодня для разработчиков доступен профессиональный пакет с классическим продуманным и удобным в работе графическим интерфейсом и богатым набором примеров исходных кодов, что существенно ускоряет написание программ, работающих с периферийными модулями контроллера. Пакет Atmel Studio 6 является бесплатным продуктом и может быть загружен с сайта www.atmel.com.
Литература
Королев Н. Atmel: новые возможности пакета AVR Studio. – Компоненты и технологии, 2011, №10, с.113–116.
Королев Н. Atmel: AVR32-микроконтроллеры в 2011 году. – Компоненты и технологии, 2011, №5, с.60–64.
Королев Н. AVR-контроллеры: развитие семейства. Ч.2. – Компоненты и технологии, 2010, №6, с.156–160.
Королев Н. 32-разрядные ARM7-микроконтроллеры Atmel: практика работы. – Электроника: НТБ, 2009, №4, с.42–50.
Королев Н. Atmel: 32-разрядные Flash-микроконтроллеры на ядре AVR32. – Компоненты и технологии, 2008, №11, с.74–80.
Королев Н. 32 разряда от Atmel: развитие линии ARM-контроллеров. – Компоненты и технологии, 2008, №1, с.121–126.
Королев Н. 32-разрядные микроконтроллеры ATMEL на базе ядра ARM7. – Компоненты и технологии, 2006, №6, с.42–50.
Материалы технического семинара компании Atmel. Грассау, октябрь 2012.
Презентации по теме на сайте www.ineltek.com/presentations.php
Микросхемы SAM7/SAM3/SAM4 объединяет логика построения кристалла, на котором размещено ядро, флеш-память программ, память данных СОЗУ, а также блок памяти ПЗУ с "зашитым" загрузчиком, который принимает бинарный файл программы по порту UART или USB и производит его запись во флеш-память. Транзакции внутри кристалла осуществляются по многослойной 32-разрядной шине данных, что позволяет организовать передачу от четырех до семи потоков данных одновременно.
Специалисты компании ARM постоянно занимаются усовершенствованием ядер, в результате чего каждые два-три года анонсируются новые продукты с улучшенными параметрами. С одной стороны, это отвечает запросам рынка, а с другой – вынуждает производителей микроконтроллеров заниматься разработкой новых кристаллов. И разработчики получают возможность применять в новых проектах микросхемы с повышенной производительностью, пониженным энергопотреблением и по ценам, сопоставимым с ценами на существующие контроллеры, а в ряде случаев и более выгодным. Выпускаемые в настоящее время серии ARM-контроллеров со встроенной флеш-памятью показаны на рис.2.
Компания, как правило, выпускает новые контроллеры в корпусах, совместимых по выводам с контроллерами предыдущих поколений, чтобы облегчить разработчикам систем задачу миграции. Исключением является контроллер AT91SAM7A3. Этот популярный, хотя и несовременный, микроконтроллер готовят к снятию с производства без прямой замены. Для информирования заказчиков Atmel выпустила документ, который гарантирует, что в течение 12 лет она будет выпускать как вновь разработанные, так и существующие ARM-контроллеры.
Микроконтроллеры SAM3
Современные ядра компании ARM, семейство Cortex, построены на улучшенной архитектуре ARMv7-M. Предлагаются микросхемы с объемом флеш-памяти на кристалле от 16 Кбайт до 1 Мбайта и в корпусах от 48 до 144 выводов. Учитывая высокую популярность контроллеров SAM7S, компания выпустила аналоги SAM3 в 64-выводных корпусах, которые устанавливаются в печатные платы, разработанные для контроллеров SAM7S. Краткая информация по развитию семейств SAM3/SAM4 представлена на рис.3.
Основные отличия контроллеров SAM3S от SAM7S:
набор команд Thumb-2 позволяет получить более компактный код;
производительность ядра повышена c 0,90 до 1,25 MIPS/MГц;
ширина шины памяти программ увеличена с 32 до 128 бит;
многослойная шинная матрица AHB/APB имеет улучшенную структуру;
частота ядра повышена с 55 до 64 MГц;
два модуля ФАПЧ позволяют формировать две независимые частоты – 48 MГц для порта USB и 64 MГц – для работы ядра.
Новые аппаратные характеристики SAM3S:
встроенный высокоточный подстраиваемый RC-генератор с базовой частотой 4 MГц;
тактирование от внешнего керамического резонатора 3–20 MГц;
тактирование от внешнего кристалла 32 кГц;
переключение на тактирование от RC-генератора при отказе кварцевого генератора;
встроены фильтры PLL;
число линий ввод/вывод для 64-выводного корпуса увеличено с 32 до 47;
аппаратное вычисление контрольной суммы CRC для встроенной и внешней памяти;
добавлен модуль MPU (Memory Protection Unit);
улита SAM-BA поддерживает интерфейс с SAM3S для нескольких частот.
Микроконтроллеры SAM3N можно назвать микросхемами "начального уровня", у них отсутствует порт USB, скорость ядра ограничена частотой 48 MГц, а максимальный объем флеш-памяти составляет 256 Кбайт. Микросхемы SAM3S – это "стандартные" контроллеры с максимальной скоростью ядра 64 MГц, с портом USB Full Speed или High Speed и максимальным объемом флеш-памяти до 1 Мбайта. Это самое многочисленное подсемейство. В разработке находятся еще два контроллера с уменьшенным объемом флеш-памяти – 16 и 32 Кбайта. Контроллеры SAM3S совместимы во выводам с контроллерами SAM3N и могут использоваться в тех же печатных платах.
Микроконтроллеры SAM3U работают на частоте ядра 96 MГц и являются первыми в промышленности контроллерами на ядре Cortex-M3 с интерфейсом High Speed USB.
Отличительной особенностью микросхем SAM3X и SAM3A является двухканальный CAN-интерфейс, а SAM3X содержит на кристалле еще и модуль Ethernet MAC 10/100 Мбит. Кроме этого, высокоскоростной интерфейс USB поддерживает режим OTG (On-The-Go).
Все микроконтроллеры SAM3 имеют типовое напряжение питания ядра 1,8 В, диапазон напряжения питания периферийных модулей – 1,8–3,3 В. В них применены быстродействующие выходные буферы: максимальная рабочая частота типовой линии вывода составляет 35 MГц, а для интерфейса SPI эта частота даже выше – 45 MГц. Каждая микросхема SAM3 содержит уникальный 128-разрядный номер (идентификатор ID), который присваивается в процессе изготовления кристалла и не может быть стерт или модифицирован. Одно из назначений идентификатора – скремблирование (кодирование) данных на внешней шине, что позволяет защитить информацию, которая выдается во "внешний мир".
Внешний шинный интерфейс EBI (External Bus Interface) в 144-выводных контроллерах имеет 8-разрядную шину данных, 24-разрядную шину адреса и четыре линии Chip Select. К внешней шине можно подключать память различных типов (NOR флеш, SLC NAND флеш, СОЗУ, ПСОЗУ – псевдоСОЗУ), а также внешний ЖК-индикатор, Ethernet-контроллер и другие периферийные устройства. Полезной функцией внешней шины является возможность кодирования передаваемых данных и декодирования принимаемых. Для кодирования применяются ключи, которые хранятся в двух 32-разрядных регистрах SMC_KEY1 и SMC_KEY2, доступных только для записи. Каждый контроллер может использовать для кодирования данных уникальный ключ. Кодирование/декодирование происходит "на лету", без потери скорости передачи данных. Таким образом, предотвращается несанкционированный доступ к данным, сохраняемым во внешней памяти. К внешней шине одновременно могут быть подключены как устройства, использующие кодированный обмен, так и устройства, передающие данные в открытом формате.
Высокоскоростной интерфейс MCI позволяет работать с картами памяти типа MMC и SD в одноразрядном и четырехразрядном режимах, а также с картами HSMCI в 8-разрядном режиме. Аппаратный модуль вычисления контрольной суммы (CRC) поддерживает три алгоритма: CCIT802.3, полином 0x04C11DB7; CRC-32C (CASTAGNOLI), полином 0x1EDC6F41; CCIT16, полином 0x1021. Использование канала DMA при вычислении CRC позволяет производить этот процесс "на лету". Контрольная сумма может вычисляться для памяти любого типа – встроенной флеш или СОЗУ, а также памяти, подключенной к внешней шине данных микроконтроллера.
Шина данных может работать в режиме 8-bit Parallel Capture Mode, который удобен для подключения высокоскоростных периферийных устройств, таких как быстрые АЦП, микросхемы FPGA или CMOS-видеокамера.
В старших микроконтроллерах, SAM3SD8 и SAM3U4, использована двухбанковая архитектура флеш-памяти. Такая организация памяти позволяет модифицировать ее содержимое в одном из банков, пока выполняется программа, расположенная в другом. Таким образом, можно удаленно производить обновление прошивки контроллера непосредственно в процессе работы. В случае сбоя процесса программирования или помех на линии связи процедуру можно безболезненно повторить.
Микроконтроллеры SAM4
Ядро Cortex-M4 компании ARM – это логическое развитие ядра Cortex-M3. Главное отличие – появление аппаратного модуля для выполнения SIMD- и DSP-команд, причем старшие микроконтроллеры Atmel на ядре Cortex-M4 поддерживают выполнение DSP-команд с плавающей запятой. Очень важно, что обеспечена обратная программная совместимость с ядром Cortex-M3. Основные характеристики контроллеров представлены табл.1.
Наличие модуля DSP-команд позволяет существенно сократить время вычисления для ряда математических алгоритмов. Матричные вычисления контроллер на ядре SAM4 производит на 30–40% быстрее, а в задачах цифровой фильтрации сигналов – на 60% быстрее, чем контроллер на ядре SAM3 (рис.4).
Микроконтроллеры SAM4N и SAM4S по сравнению с SAM3N и SAM3S имеют расширенный объем памяти программ и данных, увеличенную тактовую частоту, а также совместимые корпуса (64 и 100 выводов).
Многие современные микроконтроллеры содержат на кристалле выделенный таймер для выполнения функции часов реального времени. Обычно этот таймер тактируется от внешнего "часового" кварца с начальной точностью ±5∙10-6, что дает ошибку несколько секунд в сутки. Однако для решения ряда задач требуется более высокая точность. В микроконтроллере SAM4S16 аппаратно реализована возможность коррекции ошибки задающего кварца путем периодического измерения температуры вблизи кварца и табличного вычисления корректирующего коэффициента. При этом можно получить точность (1–5)∙10-6 для полного рабочего диапазона температуры.
В серии SAM4S есть МК SAM4SD32 с объемом флеш-памяти 2 Мбайта, что позволяет хранить мультиязычные меню и большие наборы цветных иконок высокого разрешения. Иллюстрацией применения контроллеров такого класса является система на кристалле (СнК) SAM4SP32A. В ее состав входит высококачественный ODFM-модем, поддерживающий стандарт PRIME. В пакете программ Atmel Studio 6 есть пример программного стека PRIME-Compliant Embedded PRIME Software Stack для SAM4SP32A.
Одно из отличий микроконтроллеров SAM4 – пониженное энергопотребление. Например, в активном режиме при частоте ядра 64 MГц ток потребления у SAM3S16 составляет 22,4 мА, а для SAM4S16 – 14,6 мА. В энергосберегающем режиме Backup ток потребления составляет 13 мкА для SAM3S16 и 2 мкА – для SAM4S16 (отключается напряжение 3,3 В с модуля флеш-памяти).
Самые высокие параметры по энергопотреблению имеют микроконтроллеры SAM4L. Инженеры Atmel реализовали в них схемные решения, первоначально примененные в контроллерах серий ATxmega и AT32UC3L. Это известные технологии picoPower и sleepWalking с малым временем пробуждения, а также система событий (Event System) и контроллер периферийной логики (Glue Logic Controller), который позволяет аппаратно производить прямо на кристалле логические операции типа NAND и XOR c выходными данными. Такой комплексный подход к снижению энергопотребления позволил снизить потребляемый ток в энергосберегающих режимах Sleep до 0,8 мА, а в Backup – до 0,9 мкА. Как и микросхема ATxmega, SAM4L имеет высокоэффективный модуль управления ЖКИ, а также криптомодуль с повышенной скоростью кодирования (до 8,8 Мбит/с), поддерживающий стандарты DES и AES. В этом контроллере применен высокопроизводительный интерфейс I2C с поддержкой DMA, обеспечивающий скорость передачи до 3,4 Мбит/с при напряжении питания 1,8 В.
В микроконтроллерах SAM4 используется автокалибровка встроенного АЦП. Процесс автокалибровки запускается установкой бита AUTOCAL в управляющем регистре АЦП. После калибровки корректирующие значения коэффициента усиления и ошибка смещения сохраняются в отдельной памяти АЦП. Следует отметить, что после выполнения программного сброса, а также при выходе из ждущего режима процедуру автокалибровки необходимо повторить.
Микроконтроллеры SAM4E
Микроконтроллеры SAM4E хотя и входят в семейство SAM4S, но требуют отдельного описания, потому что по совокупности параметров они могут быть отнесены к следующему поколению. Главное их отличие – поддержка DSP-команд с плавающей запятой. Модуль DSP поддерживает стандарт ANSI/IEEE Std 754-2008 и работает с 32-разрядными данными. Если сравнить производительность ядра Cortex-M4F, на котором построен SAM4E, с ядром начального уровня Cortex-M0, можно увидеть, что быстродействие в обработке данных при использовании DSP-команд возросло в 10–30 раз (табл.2).
Контроллеры SAM4E имеют флеш-память 512 или 1024 Кбайт и оперативную память 128 Кбайт. Для исключения задержек выборки команд используется кэш-память объемом 2 Кбайта. Наличие внешней шины адрес/данные позволяет расширить память подключением внешних микросхем типа СОЗУ, ПСОЗУ и NAND. Основные параметры микросхем SAM4E приведены ниже.
Основные характеристики микроконтроллера SАМ4Е
Частота ядра 120 MГц
Объем флеш-памяти 512 Кбайт–1 Mбайт
Объем СОЗУ 128 Кбайт
Ethernet 10/100 1
Интерфейс Ext Bus 8 разрядов
Интерфейс USB Full Speed
Интерфейс CAN 2
Интерфейс USART 4
Интерфейс HSMCI 4 разряда
Интерфейс SPI 3
Интерфейс I2C 2
Криптомодуль да
Модуль Parallel Capture да
Два АЦП, 12- и 16-разрядные до 24 каналов
ЦАП 12-разрядные 2 канала
Таймеры/ШИМ-контроллеры 9/4
Число входов/выходов 117
Тип корпуса QFP/BGA 144
В контроллере используется многослойная шинная матрица, причем ширина шины данных может составлять как 32, так и 64 разряда. Поддерживается интерфейс AHB (Advanced High-performance Bus – расширенный высокопроизводительный шинный интерфейс) и работа с несколькими мастерами (до 16). Для снижения времени реакции на внешние события применяется модуль Real-time Event.
Контроллер содержит два 12-разрядных АЦП производительностью 1 Mвыб./с. На входе первого АЦП установлен 16-канальный мультиплексор, на входе второго – 8-канальный. АЦП могут работать с одиночными или дифференциальными сигналами. Для приложений, требующих повышенную точность преобразования, предлагается программно-аппаратное решение, которое позволяет путем динамического использования программируемого входного усилителя, термокомпенсации, автокалибровки напряжения смещения и коэффициента усиления, а также цифрового усреднения, получить данные с 16-разрядной точностью. При этом скорость преобразования снижается до 4 квыб./с. Также на кристалле размещен двухканальный ЦАП с производительностью 1 Mвыб./с и аналоговый компаратор.
Для скоростной передачи данных используется многоканальный периферийный контроллер DMA (32 канала), а также четырехканальный контроллер DMA, поддерживающий транзакции типа память–память.
Пакет программ Atmel Studio 6 уже содержит примеры работы с микроконтроллером SAM4E – это RTOS, DSP+FPU, QTouch, разрабатываются примеры для работы по протоколам Modbus, TCP/IP, Wi-Fi, ZigBee.
Микроконтроллеры SAMA5D3
Для приложений, требующих повышенной производительности, обычно используются аппаратные решения с высокой тактовой частотой. При этом технологически проще использовать отдельные кристаллы памяти программ и памяти данных. Для получения минимальных габаритов устройств, таких как смартфоны и планшетные компьютеры, выпускаются СнК в многослойном исполнении, когда конструкция фактически представляет собой сэндвич из нескольких кристаллов, упакованных в один корпус. Минусы этой технологии – фиксированная конфигурация и повышенная стоимость такого "бутерброда".
В обычных промышленных применениях задача минимизации объема устройства не так остра, поэтому микроконтроллеры с внешней памятью программ и данных еще долгое время будут присутствовать на рынке. Компания Atmel уже много лет выпускает контроллеры на ядре ARM9, причем первая микросхема этого семейства – AT91RM9200, работающая на частоте 180 МГц, все еще востребована и пока выпускается. Конечно, это семейство развивается, и последние модели уже работают на частоте 400 МГц и содержат на кристалле высокоскоростной USB-интерфейс, контроллер цветного ЖК-дисплея с высоким разрешением и множество периферийных модулей. Тем не менее, ядро ARM9 сегодня нельзя назвать современным, поэтому Atmel подготовила к выпуску контроллер нового поколения – на ядре Cortex-A.
Компания ARM Holding предлагает несколько решений с использованием этого ядра, построенного по архитектуре ARMv7. Сравнительные характеристики можно посмотреть на сайте производителя http://www.arm.com/products/processors/cortex-a/index.php. Самое известное из них – ядро Cortex-A8, анонсированное в 2005 году и ставшее наиболее востребованным с ростом выпуска смартфонов и планшетных компьютеров. Однако оно, по современным требованиям, имеет повышенное удельное энергопотребление, и в новых разработках его заменяют на Cortex-A9, выпущенное в 2007 году.
После анализа существующих ядер семейства Cortex-A инженеры Atmel остановили свой выбор на ядре A5, которое выпущено в 2009 году и является самым эффективным по энергопотреблению, а именно эта характеристика микроконтроллера востребована для применения в новых проектах. Микроконтроллер называется SAMA5D3 и выпускается в четырех модификациях. Его описание требует отдельной статьи, здесь же кратко приведены основные параметры.
SAMA5D3 работает на частоте ядра до 536 МГц (800 DMIPS) при потребляемой мощности 200 мВт в активном режиме и 0,5 мВт – в режиме ожидания. Ток потребления в режиме Backup составляет 1,2 мкА. В состав кристалла входит модуль для обработки чисел с плавающей запятой. Внутренняя шинная матрица имеет ширину 64 разряда, внешняя шина данных – 32 разряда, рабочая частота – 166 МГц. Все модификации содержат порты High Speed USB, поддерживаются Ethernet (1000 и 100 Мбит). Криптомодуль поддерживает алгоритмы AES/Triple DES и SHA, есть встроенный генератор случайных чисел (табл.3).
Аппаратные средства
Для каждого типа микроконтроллера компания Atmel предлагает отладочные платы. Как правило, на плате распаян микроконтроллер в корпусе с максимальным числом выводов и наибольшим объемом памяти. Стоит отметить, что отладочная плата ATSAM3X-EK для контроллеров серии SAM3X снята с производства, а замена будет выпущена через полгода. Однако вместо нее можно использовать плату российского производства AS-sam3X, которая построена на микроконтроллере в 100-выводном корпусе и поддерживает основные интерфейсы микроконтроллеров SAM3X, включая Ethernet, CAN и SD-card.
Внешний вид отладочной платы AS-sam3X приведен на рис.5. Полную информацию об этой плате можно посмотреть на сайте www.as-kit.ru
Программное обеспечение
В марте 2012 года был анонсирован пакет программ Atmel Studio 6. Он построен на графическом интерфейсе Visual Studio 2010, лицензированном компанией Microsoft, и использует компилятор ARMGCC. Поддерживаются микроконтроллеры SAM3 и SAM4. Начиная с пятой версии пакета, Atmel применяет концепцию оформления примеров исходных кодов в отдельный пакет – ASF (Atmel Studio Framework), который встроен в Atmel Studio 6. При этом есть возможность подгружать новые версии ASF, не удаляя старые. Также существует автономная версия пакета ASF, которая может использоваться, например, с компилятором языка Си компании IAR. В январе 2013 года выпущен ASF версии 3.52, который содержит более 400 примеров исходных кодов для контроллеров SAM3 и около 300 примеров – для контроллеров SAM4.
Таким образом, сегодня для разработчиков доступен профессиональный пакет с классическим продуманным и удобным в работе графическим интерфейсом и богатым набором примеров исходных кодов, что существенно ускоряет написание программ, работающих с периферийными модулями контроллера. Пакет Atmel Studio 6 является бесплатным продуктом и может быть загружен с сайта www.atmel.com.
Литература
Королев Н. Atmel: новые возможности пакета AVR Studio. – Компоненты и технологии, 2011, №10, с.113–116.
Королев Н. Atmel: AVR32-микроконтроллеры в 2011 году. – Компоненты и технологии, 2011, №5, с.60–64.
Королев Н. AVR-контроллеры: развитие семейства. Ч.2. – Компоненты и технологии, 2010, №6, с.156–160.
Королев Н. 32-разрядные ARM7-микроконтроллеры Atmel: практика работы. – Электроника: НТБ, 2009, №4, с.42–50.
Королев Н. Atmel: 32-разрядные Flash-микроконтроллеры на ядре AVR32. – Компоненты и технологии, 2008, №11, с.74–80.
Королев Н. 32 разряда от Atmel: развитие линии ARM-контроллеров. – Компоненты и технологии, 2008, №1, с.121–126.
Королев Н. 32-разрядные микроконтроллеры ATMEL на базе ядра ARM7. – Компоненты и технологии, 2006, №6, с.42–50.
Материалы технического семинара компании Atmel. Грассау, октябрь 2012.
Презентации по теме на сайте www.ineltek.com/presentations.php
Отзывы читателей