Журнал "Новости Электроники", номер 8, 2008 год.

Журнал "Новости Электроники", номер 8, 2008 год. STM32 - универсальное решение на ARM-ядре Александр Бородулин (STMicroelectronics) Выпустив на рынок семейство микроконтроллеров STM32 на ARM-ядре CORTEX-M3 с высоким соотношением "производительность/цена", компания STMicroelectronics стала пионером внедрения 32-разрядной ARM-архитектуры в массовые разработки, где ранее применялись, в основном, 8-разрядные микроконтроллеры. Статья подробно рассказывает о преимуществах новых контроллеров и особенностях их применения.

Вступление

Микроконтроллеры 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).

Ответственный за направление в КОМПЭЛе - Александр Райхман

Вернуться к содержанию номера







Рекомендуемый контент




Copyright © 2010-2019 housea.ru. Контакты: info@housea.ru При использовании материалов веб-сайта Домашнее Радио, гиперссылка на источник обязательна.