Семейство микроконтроллеров Cortex M3 от Silicon Labs


В настоящее время число компаний-производителей микроконтроллеров на базе архитектуры ARM уже перевалило за сотню, в том числе компаний, предлагающих микроконтроллеры на базе архитектуры Cortex-M3, — уже более сорока. Но, несмотря на то, что на рынок уже вышли представители более «продвинутой» архитектуры Cortex-M4, рынок микроконтроллеров на базе Cortex-M3 позиций своих не сдает и продолжает активно расширяться.

На рынке высокопроизводительных микроконтроллеров для встраиваемых систем основной «вес» создают устройства с архитектурами ARM7 и Cortex-M3 (как дальнейшее развитие данной архитектуры) в частности. Такая ситуация обусловлена тем, что, как правило, задачи, выполняемые этими микроконтроллерами, не требуют рекордной производительности. Причем рынок еще далеко не насыщен и требует все большего количества более или менее принципиально новых решений, более полно отвечающих его требованиям. И потому не удивительно, что ежегодно появляются новые производители микроконтроллеров с архитектурой Cortex-M3.
Один из лидеров рынка микроконтроллеров с высококачественной развитой аналоговой периферией, компания Silicon Laboratories, в самом конце февраля 2012 г. представила собственную линейку микроконтроллеров Precision32 с архитектурой Cortex-M3. Компания Silicon Laboratories широко известна своей линейкой популярных микроконтроллеров серии С8051Fxxx, которые славятся своей развитой и высококачественной, а часто уникальной аналоговой периферией.
Ситуация, складывающаяся на рынке микроконтроллеров в последние несколько лет, ясно показала, что сегмент для 8-разрядных микроконтроллеров становится все более и более узким — разработчики все чаще и чаще отдают предпочтение более универсальным и производительным микроконтроллерам на базе архитектуры ARM. Тем более, что стоимость подобных решений отличается уже совсем не так разительно от традиционных, на базе 8-разрядных микроконтроллеров. При этом оставались несколько сфер применения, где присутствие микроконтроллеров на базе архитектуры ARM было нежелательно в силу разных причин. Например, высокоэкономичные системы, где к микроконтроллеру выдвигаются очень жесткие требования к потребляемой мощности и системы, где требуются прецизионные измерения с разрядностью в 10 и более бит. До недавнего времени такие задачи для стандартных микроконтроллеров с архитектурой ARM были не «по зубам».
Однако компании Silicon Laboratories удалось преодолеть и эти барьеры: их линейка микроконтроллеров Precision32 является одновременно и сверхэкономичной и высокоточной. А применение двойной коммутирующей матрицы (фирменная «фишка» Silicon Laboratories в микроконтроллерах C851Fxxx), делает эту линейку уникальной.
Конечно, на рынке уже присутствуют высокоэкономичные микроконтроллеры и микроконтроллеры с прецизионной аналоговой периферией (хотя это утверждение сильно натянуто, в реальности параметры аналоговой периферии Silicon Laboratories удалось повторить лишь считанным производителям). Но совместить это в одном кристалле и сделать его универсальным удалось не многим.
Тут, по законам жанра, как раз самое время перейти к описанию технических параметров нового семейства (в данной статье не приводится техническое описание архитектуры Cortex-M3, так как оно было более или менее подробно описано в [1], [2] и [3]). В начале приведем основные параметры, характеризующие все семейство, позже рассмотрим те особенности, которые делают его уникальным. Блок-схема типового микроконтроллера семейства Precision32 приведена на рис. 1.
SiM3U1xx_block.gif
Рисунок 1. Блок-схема микроконтроллеров семейства  Precision32 (SiM32U1xx)
Итак, начнем с ядра, памяти программ и данных, а также схемы тактирования. Максимальная тактовая частота ядра составляет 80 МГц, что, учитывая производительность архитектуры Cortex-M3 в 1.25 MIPS/МГц дает производительность порядка 100 MIPS. В ядре аппаратно реализовано умножение за 1 такт и аппаратно поддержаны операции деления. Большую гибкость выполнения программ обеспечивает встроенный модуль NVIC с 16 уровнями приоритета прерываний. Микроконтроллеры линейки Precision32 обладают 32..256 кБ flash-памяти программ и 8..32 кБ ОЗУ (включая блок из 4 кБ SRAM, сохраняющий информацию даже в самом глубоком режиме «сна»), а также интерфейсом с внешней статической памятью, позволяющим адресовать до 16 Мбайт.
Второй функцией данного интерфейса является обеспечение работы ЖК индикаторов с параллельным интерфейсом формата QVGA.
Микроконтроллеры семейства Precision32 имеют в своем составе несколько тактовых генераторов. Основной тактовый генератор со встроенной системой PLL позволяют тактировать ядро в диапазоне от 23 до 80 МГц с точностью не хуже ±1.5 % без применения внешнего кварцевого резонатора, а аналогичный тактовый генератор, встраиваемый в микроконтроллеры с интерфейсом USB, имеет выходную частоту 48 МГц с точностью ±0.25%.
Для работы на меньших частотах на кристалле расположены еще два низкочастотных тактовых генератора: один с выходной частотой либо 20, либо 2.5 МГц, второй предназначен для высокоэкономичной работы и имеет частоту всего 16.4 кГц. Естественно, для обеспечения корректной работы встроенных часов реального времени предусмотрена возможность подключения внешнего кварцевого резонатора с частотой 32768 Гц.
Микроконтроллеры семейства Precision32 имеют «на борту» стандартный набор таймеров с несколько нестандартными функциями. А именно: встроенным 16-битным 6-канальным счетчиком с модулем захвата/сравнения и ШИМ, с dead-time контроллером и дифференциальным выходом, который будет очень востребован в области электропривода. Конечно, его можно использовать и не по прямому назначению, а, например, в блоке управления светодиодным светильником для аквариума…
Набор интерфейсов не содержит ничего экстраординарного и является типовым для микроконтроллеров с архитектурой Cortex-M3: USB 2.0 (в микроконтроллерах семейства SiM3Uxxx), пара USART и пара UART с поддержкой IrDA и интерфейса ISO7816 (Smart Card),а также 3 канала SPI, два I2C, и один канал I2S (прием и передача).
Но есть и такие особенности, которые выделяют семейство микроконтроллеров Precision32 из общего ряда: встроенная аналоговая периферия и потребление энергии. В состав аналоговой периферии типового микроконтроллера семейства Precision32 входит многоканальный 12‑разрядный АЦП со скоростью преобразования до 250 ksps. Вроде бы ничего особенного, но данный АЦП возможно переключить в 10‑разрядный режим и получить скорость преобразования до 1 Msps, а это уже существенное прибавление функциональности! При этом значения интегральной и дифференциальной нелинейности лежит в пределах ±0.2 LSB для 10-разрядного режима и ±0.1 LSB для 12-разрядного, что также является фирменной «фишкой» Silicon Laboratories, очень ревностно относящейся к качеству работы своей аналоговой периферии. Также «на борту» содержатся как сдвоенный 10‑разрядный ЦАП, так и источник опорного напряжения и специальный механизм для управления работой АЦП и ЦАП. При этом большинство периферии и интерфейсов связаны 16-канальным DMA, обеспечивающим быстрый обмен данными «в обход» вычислительного ядра.
Также вызывает уважение реализация схемы питания. Инженерам Silicon Labs удалось достигнуть блестящего показателя в 275 мкА/МГц в режиме «все включено»! При этом в микроконтроллерах реализована многоуровневая схема высокоэкономичных режимов, позволяющих добиться отличных показателей. Например, в режиме с включенным RTC (встроенный генератор 16.4 кГц) микроконтроллер потребляет всего 350 нА, а с выключенными часами реального времени — только 85 нА! При этом время выхода из режима минимального энергопотребления не превышает 10 мкс, а время установления аналоговой периферии не более 1.5 мкс.
Отдельно стоит упомянуть важную особенность — любой неиспользуемый блок периферии может быть отключен от источника тактирования, и, следовательно, будет потреблять минимум энергии.
Также стоит обратить внимание на одну интересную особенность — среди портов ввода/вывода есть несколько выводов, которые имеют умощненный выходной каскад, позволяющий напрямую подключать нагрузку до 300 мА: обмотки реле, маломощные электродвигатели, мощные светодиоды, затворы мощных полевых транзисторов и т. д.
Еще можно долго перечислять многочисленные встроенные «фишки» и «вкусности», часть которых является стандартом для микроконтроллеров аналогичного класса, а часть — интересными нововведениями: встроенный LDO, супервизор питания и brownout детектор, гибкий делитель тактовых частот вплоть до 128 от любого источника тактирования, аппаратное AES шифрование (128/192/256-битное шифрование), аппаратная поддержка алгоритмов ECB, CBC и CTR, 16/32-бит CRC модуль и многое другое. Микроконтроллеры имеют рабочий температурный диапазон –40 ... +85°С и корпусные исполнения QFN-40, TQFP-64, TQFP-80 и LGA-92…
Дополнительно можно отметить, что микроконтроллеры Precision32 уже поддерживаются такими популярными средами разработки как Keil uVision, IAR и CodeVision. Но специально для того, чтобы максимально полно реализовать возможности микроконтроллеров, компанией Silicon Laboratories разработана среда визуального конфигурирования (Precision32 AppBuilder Rapid Prototyping Utility), конечным продуктом которого является конфигурационный файл для сред Keil uVision, IAR или CodeVision. Кроме работы в вышеперечисленных средах разработки, Silicon Laboratories традиционно предлагает и собственную среду разработки Precision32 Integrated Development Environment, которая обеспечивает полноценное проектирование, не имеет каких-либо ограничений и является полностью бесплатной [8].
Но не это делает микроконтроллеры семейства Precision32 с архитектурой Cortex-M3 от Silicon Laboratories уникальными. По отдельности эти модули уже реализованы в большом количестве различных семейств микроконтроллеров. Уникальными их делает сам факт совмещения такого набора модулей на одном кристалле. Для иллюстрации можно привести небольшую сравнительную таблицу некоторых параметров аналогичных микроконтроллеров различных производителей (табл. 1).
Таблица 1. Сравнительная таблица некоторых параметров высокоэкономичных микроконтроллеров
Параметры
SiLabs
SiM3U1xx
ST
STM32F103
ST
STM32L151
Freescale
Kinetis K20
TI
LM3S5xxx
Максимальная тактовая частота80 МГц72 МГц32 МГц100 МГц80 МГц
Количество выводов в корпусе40, 64, 8064 ... 14448 ... 10080 ... 14464, 100
Потребление тока в активном режиме275 мкА/МГц510 мкА/МГц270 мкА/МГц420 мкА/МГц1125 мкА/МГц
Потребление тока в «спящем» режиме с включенным RTC0.35 мкА24.5 мкА1.9 мкА4 мкА44 мкА
Напряжение питания1.8 ... 5.5 В2.4 ... 3.6 В2.4 ... 3.6 В1.8 ... 3.6 В3.0 ... 3.6 В
АЦП2x12-бит2x12-бит1x12-бит2x12-бит2x10-бит
DNL (тип./макс.)±0.7/±1.8±1/±2±1/±2±0.7/±1.9–/±3
INL (тип./макс.)±1/±1.9±1.5/±3±1.7/±3±1/±2.7–/±3
Как видно из приведенной выше таблицы, многие из микроконтроллеров с архитектурой Cortex-M3 различных производителей обладают отдельными параметрами, приближающимися к аналогичным параметрам микроконтроллеров семейства Precision32. Это очень хорошие микроконтроллеры и они занимают достойное место на рынке. Но именно сочетание высокой производительности, отличной экономичности и высококачественной аналоговой периферии на одном кристалле и есть то основное отличие, которое делает новое семейство 32-разрядных микроконтроллеров от Silicon Laboratories очень перспективным элементом рынка встраиваемых систем.

Павел Вовк.
Статья опубликована в журнале "CHIP NEWS Украина" в №2 за 2012г., стр.60-62


Литература:
1. Павел Вовк. «Введение в архитектуру Cortex-M3. Часть 1». Chip News № 7, 2007, стр. 72.
2. Павел Вовк. «Введение в архитектуру Cortex-M3. Часть 2». Chip News № 8, 2007, стр. 58.
3. Павел Вовк. «Введение в архитектуру Cortex-M3. Часть 3». Chip News № 9, 2007, стр. 59.



Назад в раздел