Микроконтроллеры
ST Microelectronic >>
Семейство STM32 |
|
STM32 – универсальное
решение на ARM-ядре
|
|
ST
Microelectronic |
|
так же микроконтроллеры
8051 Silicon Labs
AVR ATMEL
ARM ATMEL
MSP430 Texas Instruments
|
|
Выпустив на рынок семейство
микроконтроллеров STM32 на ARM-ядре CORTEX-M3 с высоким соотношением «производительность/цена»,
компания STMicroelectronics стала пионером внедрения 32-разрядной ARM-архитектуры
в массовые разработки, где ранее применялись, в основном, 8-разрядные
микроконтроллеры. Статья подробно рассказывает о преимуществах новых
контроллеров и особенностях их применения. |
|
|
STM32W — 24МГц/30DMIPS МК
для беспроводной связи;
STM32L — 32МГц/33DMIPS МК с
батарейным питанием;
STM32L0 — 32МГц/33DMIPS МК с
батарейным питанием;
STM32F0 — 48МГц/38DMIPS МК
для ультрадешевых приложений;
STM32F1 — 72МГц/61DMIPS МК
общего назначения;
STM32F2 — 120МГц/150DMIPS
высокопроизводительные МК;
STM32F3 — 72МГц/90DMIPS —
МК комбинированных сигналов c DSP и FPU;
STM32F4 — 168МГц/210DMIPS —
высокопроизводительные МК с DSP и FPU.
STM32F7 — 200МГц/428DMIPS —
высокопроизводительные МК с DSP и FPU.
STM32H —
400МГц/856DMIPS — высокопроизводительные МК с ядром Cortex-M7. |
|
|
DISCOVERY NUCLEO
STM32-OPEN |
|
|
Микроконтроллеры STM32 появились осенью
2007 года и сразу получили самую высокую оценку во многих авторитетных
изданиях, а также в среде разработчиков встраиваемых приложений.
Построенные на базе современного ядра ARM CORTEX-M3, микроконтроллеры
STM32 обеспечивают сочетание высокой производительности, низкой
потребляемой мощности и невысокой цены.
Обращает на себя внимание относительная компактность ядра
микроконтроллера на кристалле. Основное место на нем занимает память.
То есть цена STM32 в большей степени зависит от размера встроенной
flash и в несколько меньшей степени - от наличия той или иной
периферии. Компания ST учла этот момент, выпустив две полностью
дополняющие друг друга серии Performance и Access. Серия Access
предназначена для бюджетных приложений, не требующих максимальной
производительности и расширенной периферии. С объемом flash от 16 кБ
до 512 кБ эти микроконтроллеры по соотношению цена-функциональность
оставляют позади большую часть 32- и 16-разрядных микроконтроллеров, и
даже претендуют на использование в 8-разрядных приложениях. Серия
Performance, полностью повторяя серию внешне в части раскладки выводов
корпусов и широты номенклатуры, предлагает больше возможностей, имея
на борту дополнительные АЦП, специальные ШИМ-таймеры, USB 2.0 full
speed и CAN 2.0B . Кроме того, эта серия работает на более высокой
тактовой частоте 72 МГц в отличие от 36 МГц серии Access. При этом
сохраняется совместимость между сериями, то есть для каждого
наименования серии Access существует аналог серии Performance. Серия
Performance доступна также в исполнении для расширенного диапазона
температур -40...105°С.
|
Архитектура
STM32 использует 64-разрядную шину
flash-памяти с двумя 64-разрядными буферами предвыборки, что в
большинстве случаев избавляет от задержек, связанных с тем, что flash,
в отличие от ядра CORTEX M3, не работает на столь высоких скоростях
(72 МГц). Впрочем, эта схема предвыборки может быть отключена по
желанию пользователя. Ограничения скорости flash-памяти можно также
обойти, воспользовавшись тем, что STM32 позволяет выполнять код из
SRAM на максимальной тактовой частоте. Можно использовать SRAM как
некий аналог кэш-памяти, загружая туда критичные к быстродействию
подпрограммы, такие как цикличные алгоритмы DSP и обработка прерываний.
В своей практике разработчики часто сталкиваются со случаями, когда
производительность быстрого ядра сводится на нет медленной периферией,
или случаями, при которых большие объемы данных переносятся в/из
микроконтроллера и занимают шину или отбирают много ресурсов ядра на
их перенос. STM32 свободен от этих ограничений, имея несколько
внутренних шин (см. рисунок 1), а также мощный семиканальный (в новых
STM32 -двенадцатиканальный) DMA-контроллер, разгружающий ядро от
ненужной работы. Линии ввода/вывода STM32 совместимы с 5 В сигналами и
индивидуально настраиваются как входы с опциями притяжки к земле/питанию
или выходы с регулированием крутизны фронтов. Выводы, предназначенные
для работы периферии, могут быть переназначены, позволяя производить
гибкую настройку под конкретное приложение.
Рис. 1. Блок-схема STM32
|
|
Традиционная load/store RISC-архитектура
не всегда удобна для операций над отдельными битами из-за того, что
между загрузкой и сохранением может произойти прерывание. Архитектура
CORTEX-M3 устраняет эти затруднения посредством технологии
«bit-banding», обеспечивающей атомарный доступ к отдельным битам. В
дополнение к этому STM32 содержит теневые «set/reset»-регистры портов
ввода-вывода для случаев, в которых требуется изменение нескольких
битов за раз. Часто в критических с точки зрения безопасности
приложениях, таких как транспортные средства, медицинская техника и
промышленное оборудование, одна единственная линия порта ввода-вывода
несет на себе ответственность за вероятные катастрофические
последствия. STM32 имеет уникальную особенность защиты конфигурации
линий ввода/вывода от непреднамеренных изменений; тем самым
программные сбои изолируются от отказов всей системы. Каждый STM32
содержит SPI- и I2C-порты, а также два USART. При этом микросхемы с
большим количеством памяти несут на себе и большее количество
периферии:
до пяти
USART 4,5Мбит/с с функциями LIN master/slave, ISO7816, IrDa, Modem
Control,
до трех SPI
18МГц master/slave, SD/MMC,
до двух I2C
SMBus/PMBus,
до четырех
16-разрядных таймеров по 4IC/OC/ШИМ каждый,
до двух
расширенных ШИМ-таймеров с выработкой комплементарных ШИМ-сигналов и
генерацией времени задержки включения (dead time) по 4IC/OC или 6
ШИМ-сигналов с разрешением 13,8нс каждый. Дополнены схемой
синхронизации и специальным входом break для мгновенного перевода
выходных сигналов в неактивное или заранее заданное состояние,
до трех АЦП до 21 канала с 12-разрядным разрешением и временем выборки
1мкс. АЦП могут работать в спаренном режиме, производя одновременную
выборку-хранение и поднимая таким образом частоту выборки в два раза.
Функция сканирования двух групп каналов с возможностью прерывания
сканирования одной группы для инжектирования сканирования другой
группы. Функция аналогового сторожа на любом из каналов производит
независимое сравнение значения сигнала с пороговыми величинами. АЦП
может проводить самокалибровку, уменьшая ошибки измерений, связанные с
уходом параметров внутренних конденсаторов от температуры.
ЦАП
двухканальный 12-разрядный.
I2S
master/slave с частотой выборки от 8 до 48кГц.
SDIO-интерфейс для SD(Secure Digital), SDIO(Secure Digital
Input/Output) и MMC (Multi-Media Card).
FSMC- гибкий
контроллер статической памяти. Интерфейс для работы с NOR и NAND
flash, SRAM, Compact flash и 16-разрядными PC картами памяти (PCMCIA).
Поддерживает режимы Intel 8080 и Motorola 6800 для организации
параллельного интерфейса с ЖКИ. Позволяет выполнять код из внешней
памяти.
|
Во все STM32 встроен температурный
датчик и прецезионный источник опорного напряжения. Их сигналы
заведены на два специальных канала АЦП. Для увеличения точности
допускается подача внешнего опорного напряжения.
Приложения управления в реальном масштабе времени требуют большого
количества таймеров. STM32 хорошо вписывается в эти требования,
благодаря:
Таймеру часов реального времени с 1,4мкА потребления при батарейном
питании и возможности подключения внешнего кварцевого резонатора
32768Гц;
Таймеру непрерывного счета «SysTick», который задает базу времени для
операционных систем реального времени;
Двум отдельным сторожевым таймерам.
(Один таймер оконного типа позволяет детектировать отклонения в
нормальной работе программы. Второй таймер управляется независимым RC-генератором
и позволяет отслеживать изменения частоты основного тактового
генератора. Оба таймера запускаются аппаратно в байте опций
микроконтроллера).
четырем 16-разрядным таймерам с функциями IC/OC и ШИМ.
двум расширенным 16-разрядным таймерам управления со специальными
функциями, идеально подходящими для управления трехфазными
электродвигателями.
Универсальность системы увеличивается благодаря имеющейся системе
каскадирования и синхронизации таймеров. На рисунке 2 рассмотрен
пример синхронной работы расширенного ШИМ-таймера с датчиком положения
ротора электродвигателя. STM32 аппаратно отслеживает отношение фаз на
входе и соответствующим образом корректирует накопленные отсчеты.
Рис. 2. Диаграмма синхронной работы
расширенного IШИМ-таймера с датчиком положения ротора э/двигателя
|
|
|
Ядро CORTEX-M3 имеет встроенный
конфигурируемый контроллер вложенных прерываний и реализует технологию
«tail-chaining», позволяющую минимизировать стековые операции и
уменьшить время задержки между прерываниями до 6 циклов. В STM32 можно
сконфигурировать до 19 входов источниками внешних событий или
прерываний. Детекторы фронтов чувствительны к импульсам длительностью
менее 1 цикла.
Гибкая, имеющая множество настроек система тактирования STM32 работает
с несколькими генераторами, позволяя получать частоты вплоть до
максимальной путем умножения:
Основной
кварцевый генератор 4-16МГц;
Внутренний
калиброванный 8МГц ±1% RC-генератор;
Часовой
микропотребляющий кварцевый генератор 32,758кГц;
Дополнительный микропотребляющий RC-генератор 40кГц.
Встроенная
система безопасности автоматически переключает тактирование на
внутренний RC-генератор в случае отказа основного.
|
Применение
В чем преимущество использования STM32 в
системах с батарейным питанием?
Первый и немаловажный факт: потребление в полнофункциональном режиме
составляет 0,5 мА/МГц (или 36 мА при 72 МГц и комнатной температуре).
Выполнение программы из оперативной памяти не только позволяет достичь
максимальной производительности, но и экономит более чем в два раза
электроэнергию (14,4 мА при 72 МГц). Кроме этого каждый блок периферии
имеет свой «выключатель», отключающий тактирование в моменты простоя.
Наряду с присущей ядру CORTEX-M3 высокой производительностью: порядка
1,25 DMIPS/МГц, достигающей 90 DMIPS на 72 МГц - ядро имеет встроенные
механизмы экономии электроэнергии. Здесь можно упомянуть следующий
факт: выход из режима останова с потреблением 14 мкА и сохранением
содержимого SRAM занимает у STM32 всего 5,4 мкс. А выход из дежурного
режима с потреблением около 2 мкА и функционирующими
микропотребляющими таймерами занимает 50 мкс. Доступен режим, в
котором ядро остановлено и работает только периферия. За счет
комбинации высокой производительности и быстрых переходов между
режимами работы STM32, усредненные величины потребления электроэнергии
можно довести в приложении до значений, сравнимыми с показателями
потребления лучших ультранизкопотребляющих микроконтроллеров.
Внутренний стабилизатор напряжения обеспечивает рабочие 1,8 В. При
очень простой организации питания (одно питающее напряжение от 2 до
3,6 В) и надежной системе мониторинга и сброса (допустимая скорость
нарастания питающего напряжения вплоть до бесконечности), контроллеру
STM32 достаточно для запуска всего нескольких фильтрующих
конденсаторов. Предусмотрено батарейное питание для сохранения хода
часов и хранения от 20 до 84 байт оперативной пользовательской
информации (например, ключей шифрования). Специальный вывод защиты от
несанкционированного доступа обеспечивает мгновенное стирание этой
информации в момент поступления внешнего сигнала. Переключение между
основным и батарейным питанием происходит автоматически, значительно
продлевая ресурс батареи.
|
Средства разработки
В системную память микрокроконтроллера
на заводе записывается загрузчик, позволяющий перепрограммировать
Flash-память через последовательный интерфейс USART. Средства
проектирования просты, наглядны и доступны, ведь это ARM-микроконтроллер.
Инженеры, ранее работавшие с ARM7 микроконтроллерами, смогут быстро
перейти на STM32, достаточно только обновить программное обеспечение
средств проектирования.
Заключение
Вполне очевидно, что выпустив на рынок
семейство 32-разрядных микроконтроллеров STM32, компания
STMicroelectronics несколько изменила свойственный ей приоритет работы
с большими ключевыми заказчиками и специализированными продуктами.
Выпустив действительно интересный и конкурентноспособный продукт,
компания вышла на массовый рынок и позволила разработчикам
использовать самые современные технологии и продукты. С уверенностью
можно сказать, что подобная практика продолжится и далее, с выходом
нового 8-разрядного семейства STM8S (уже сейчас доступна автомобильная
версия STM8A).
|
|
|
|
|
|
|
Поставляемые компоненты
|