Общаясь с разработчиками различной электроники (как любителями, так и профессионалами), я и мои коллеги обратили внимание, что широкой публике практически неизвестны микроконтроллеры Atmel на платформе Cortex-M. Я решил подготовить обзор по новым семействам микроконтроллеров, чтобы показать: не AVRом единым интересен Atmel.
Вторым обстоятельством послужило то, что выпуск первых микроконтроллеров на платформе Cortex-M у Atmel пришелся не на лучшие времена. Следствием этого стали существенно более высокие цены на Atmel’овские контроллеры в сравнении с ST.
Оба этих обстоятельства закрепили приоритет за микроконтроллерами STM32. Причем это лидерство год за годом закреплялось все сильнее, поскольку в Сети стало появляться все больше и больше материалов по разработке на STM32. А к аналогам от Atmel на нашем рынке стал применяться один из двух стереотипов:
1. Atmel = AVR
2. Cortex’ы от Atmel дорогие и не интересны для использования.
Если первый стереотип развеивается заходом в соответствующий раздел на сайте Atmel, то со вторым все немного сложнее. С ним мы и попробуем разобраться.
В обзоре я не стану перечислять все семейства, расскажу только о тех, которые отвечают одному или обоим критериям:
• уникальные особенности семейства;
• цена лучше, чем у конкурентов, или сопоставима (здесь я вынужден сделать оговорку, что речь идет о сопоставимости оптовых цен).
SAM S и SAM E
Это микроконтроллеры на основе ядра ARM Cortex-M7, дебютировавшего в этом году у Atmel и у ST. Преимущества этого ядра по сравнению с предшествующим Cortex-M4 заключаются в наличии аппаратной поддержки вычислений с плавающей точкой двойной точности (у Cortex-M4 – только одинарной точности, и не во всех Cortex-M4, а только в Cortex-M4F), более высокой производительности (DMIPS/MHz примерно в 1,6 раза выше) и более высокой тактовой частоте ЦПУ (до 300 МГц).
SAM S – это «базовое» семейство, SAM E – это семейство c Ethernet и CAN на борту. Микроконтроллеры доступны в корпусах LQFP (64, 100, 144 вывода) и LFBGA (100 и 144 вывода). Размеры Flash памяти – от 512 до 2048 МБ. Все контроллеры имеют на борту USB (Host, Device) и интерфейс для подключения КМОП-матриц. В некоторых модификациях (зависит от размера корпуса) имеется интерфейс внешней памяти и интерфейс работы с картами памяти. Кроме этих двух семейств есть еще семейство SAM V, но это аналоги названных ранее семейств для автомобильной промышленности. Столкнуться с ними Вы можете только в отладочном комплекте, общим для всех семейств с ядром Cortex-M7.
Если сравнивать эти контроллеры с аналогами от ST, то в пользу Atmel выступают:
• большая тактовая частота CPU (300 MHz vs 216 MHz), что обеспечивает большую производительность;
• наличие чипов с памятью до 2048 MB Flash (у ST только до 1024 MB);
• наличие семейства без CAN и Ethernet (что позволяет не переплачивать за эти функции, если они не требуются в проекте).
Преимуществом контроллеров от ST является:
• наличие интерфейса для подключения ЖК дисплеев (у Atmel для этого рекомендуется использовать интерфейс внешней памяти);
• наличие семейства без криптографии (у Atmel криптография есть на борту всех микроконтроллеров).
Микроконтроллеры от Atmel не проигрывают в цене ST, а потому вызвали большой интерес у наших клиентов. У микроконтроллеров этого семейства сохраняется pin-to-pin совместимость с «младшими» семействами на основе Cortex-M4 (SAM4S и SAM4E). Единственный подводный камень в том, что эта совместимость не распространяется на выводы USB. Это связано с тем, модули USB у этих семейств разные: у Cortex-M4 — USB Device, у флагманов — USB Host и Device.
SAM4L
Это семейство микроконтроллеров на основе Cortex-M4 с тактовой частотой 48 МГц и технологией picoPower, что обеспечивает низкое потребление (меньше 90 мкА/МГц). По производительности это семейство занимает промежуточную нишу между семействами STM32 L1 (Cortex-M3, 32 MHz) и STM32 L4 (Cortex-M4, 80 MHz). Цены на этим микроконтроллеры приблизительно одинаковы. Набор периферии также схож, но у SAM4L есть два особенных модуля:
1. модуль измерения частоты;
2. программируемый логический модуль.
Первый модуль позволяет измерять частоту внешнего сигнала, сравнивая измеряемую частоту с опорной. Второй модуль позволяет отказаться от использования логических микросхем на плате (если конечно не требуется очень сложной логики). Принцип работы прост: четыре входа составляют 16 возможных комбинаций, для каждой из комбинаций задается соответствующее состояние вывода (0 или 1), дальше модуль работает без участия ЦПУ согласно заданной таблице состояний. В микроконтроллере может быть один или два таких модуля, в зависимости от корпуса.
SAM G
Еще одно семейство микроконтроллеров Cortex-M4 с низким энергопотреблением. С точки зрения процессора основное отличие от предшествующего семейства в наличии модуля для вычислений с плавающей точкой (Cortex-M4F). В этом семействе также применена технология picoPower, потребление чуть больше чем у SAM4L, но все равно на достаточно низком уровне (меньше 100 мкА/МГц).
Семейство состоит из 4 микроконтроллеров, которые отличаются между собой размером flash-памяти (256 или 512 МБ), максимальной тактовой частотой процессора (от 48 до 120 МГц), размерами корпуса (LQFP100/64, WLCSP49). Небольшое разнообразие вариантов микроконтроллеров с лихвой компенсируется ценами, которые существенно ниже цен конкурентов.
Cortex-M0+
Мощные производительные контроллеры — это, конечно, хорошо, но настоящую революцию в мире микроконтроллеров совершила все-таки платформа Cortex-M0. 32-разрядные микроконтроллеры уверенно вытесняют 8-битные контроллеры не только производительностью, но и ценой. Atmel также вывела на рынок ряд семейств на этой архитектуре. Отличительной особенностью этих семейств является модули SERCOM, которые в зависимости от конфигурации могут выполнять роль UART, SPI, I2C, при этом есть возможность выбирать выводы, которые используются этим модулем. Другая особенность: развитый аппаратный модуль PTC, с помощью которого можно создавать сенсорные интерфейсы с большим количеством элементов управления (кнопок, слайдеров и т.д.).
SAM D
Это базовое семейство, которое ложится в основу всех остальных семейств Cortex-M0. Если не принимать во внимание уже названные особенности, это семейство можно было бы считать вполне заурядным: обычный набор периферии, обычный набор корпусов, стандартная линейка размеров памяти, средняя цена на рынке.
Тем не менее, это семейство заслуживает упоминания по двум причинам. Первая причина заключается в том, что старшие представители (SAM D20 и SAM D21) этого семейства служат основой для микроконтроллеров других семейств. SAM D20 обладает всеми описанными выше особенностями atmel'овских Cortex-M0+. SAM D21 является его дальнейшим развитием: добавлен USB, DMA, I2S. Между собой эти контроллеры pin-to-pin совместимы, имеют одинаковую линейку корпусов (LQFP32/48/64) и flash-памяти (от 16 до 256 МБ).
Вторая причина — недавно анонсированные младшие представители: микроконтроллеры SAM D09, SAM D10, SAM D11. Корпуса имеют небольшое количество выводов: SOIC14/SOIC20, QFN24. Возможный размер flash-памяти — 8 или 16 МБ. Сами семейства отличаются набором доступной периферии, при этом SAM D11 имеет на борту USB Device. Цены на маленькие контроллеры тоже маленькие.
SAM L
Разумеется, что накопленный опыт в создании малопотребляющих микроконтроллеров не мог быть не использован для Cortex-M0+. Так появилось семейство SAM L. Отличительная черта этих микроконтроллеров — очень низкое для Cortex-M0+ потребление (меньше 35 мкА/МГц). Так же здесь есть модуль программируемой логики, причем значительно усовершенствованный по сравнению с модулем у SAM 4L. Модуль позволяет не только реализовывать логические операции (И, НЕ, ИЛИ и т.д.), но и создавать более сложные элементы логики — триггеры и защелки.
SAM L бывают двух видов: SAM L21 — малопотребляющие микроконтроллеры с USB, pin-to-pin совместимые с SAM D21, и SAM L22 — тоже самое, но с LCD дисплеем. Таким образом, каждая из линеек является конкурентом соответствующих семейств STM32L0: STM32L0x2 и STM32L0x3. SAML21 уже доступны для заказа, массовое производство SAM L22 планируется в начале следующего года. Опять таки, по цене SAM L21 сопоставимы с аналогами от ST.
SAM C
Очень интересное семейство, производство которого начнется в начале следующего года. От микроконтроллеров Cortex-M0+ конкурентов его в первую очередь отличает диапазон напряжений: 2.7 — 5.5V. Другими особенностями являются: измеритель частоты, поддержка интерфейса LIN, модуль программируемой логики, аналогичный SAM L.
Анонсированы два подсемейства:
SAM C20 — pin-to-pin совместимые контроллеры с SAM D20, корпуса и варианты размера flash-памяти так же аналогичны.
SAM C21 — обратно совместимые с SAM C21 контроллеры (по выводам, памяти и периферии), добавлены два контроллера CAN, аппаратный ускоритель деления и вычисления квадратного корня, датчик температуры выполнен в виде отдельного модуля (а не заведен на АЦП).
Цены пока не известны.
Заключение
Как, я надеюсь, видно из этого обзора, Atmel прилагает серьезные усилия для возвращения себе лидерства на рынке микроконтроллеров. Это выражается как и в тенденции удешевления новых семейств микроконтроллеров, так и в наделении этих семейств интересными, а иногда и уникальными функциями.
Конечно, достоинства каждого из перечисленных семейств не ограничиваются тем, что я назвал. Я это сделал сознательно, для того чтобы не раздувать текст и не сводить все к переписыванию параметров из даташитов. Перед написанием статьи я по памяти набросал план, перечислив те семейства, которые мне кажутся наиболее интересными, и те особенности этих семейств, которые мне запомнились.
Автор: Rainbow