Ваш город: Москва
+7 (495) 221-78-04
+7 (812) 327-327-1
Терраэлектроника

AN2945. Руководство по безболезненному переходу между 8-32-битными линейками микроконтроллеров STM8S и STM32

STMicroelectronics

Одновременно с выпуском на рынок весьма удачных микроконтроллеров STM32™, компания STMicroelectronics продолжает обновлять 8-битное семейство STM8. При этом значительные усилия тратятся на оптимизацию и унификацию портфолио микроконтроллеров в целом. В частности, чтобы упростить пользователям переход от микроконтроллеров одного семейства к микроконтроллерам другого и обратно, используются сходные периферийные блоки и программные инструменты.

Важным критерием при выборе новых микроконтроллеров являются затраты времени и денег на их освоение командой разработчиков. При этом большим преимуществом будет, если модельный ряд контроллеров окажется максимально богатым. Совместное портфолио 8-битного семейства STM8S и 32-битного STM32 предоставляет разработчикам доступ к моделям с числом выводов от 20 до 144, с объемом памяти от 2 до 512 кБайт. Если в процессе разработки окажется, что производительности STM8S не хватает, то можно с легкостью перейти на STM32. Если же требуется добиться минимальной стоимости, можно без проблем совершить переход от STM32 к STM8S.

Данная статья рассматривает общие черты STM8S и STM32, а также поясняет, почему так легко можно переходить от одного семейства к другому.

Ядро

Процессоры STM8™ строятся по запатентованной архитектуре, которая была создана на базе более раннего фирменного ядра ST7. При этом STM8 демонстрируют прорывные для 8-битных процессоров показатели производительности и плотности кода. Микроконтроллеры STM32 построены на 32-битном ядре ARM® Cortex™-M3 и отличаются дополнительным преимуществом в виде законченной экосистемы, которая включает богатый набор средств разработки и отладки для процессоров ARM.

Может показаться, что процессорные ядра STM8 и ARM® Cortex™-M3 радикально различаются, однако, на самом деле, у них есть много общих черт, которые обобщены в таблице 1.

Таблица 1. Сравнение ядер микроконтроллеров STM8 и Cortex-M3

Параметр

STM8

Cortex-M3

Разрядность

8-бит

32-бит

Производительность (Drhystone) млн. операций в с (0WS)

0,29

1,22

Архитектура

Гарвардская

Гарвардская

Конвейер

Есть, трехступенчатый

Есть, трехступенчатый

Набор команд

CISC

RISC

Разрядность шины данных

32-бит

32-бит

Буфер предвыборки

есть, 2 × 32-бит

есть, 2 × 64-бит

Средняя длина команд

2 байта

2 байта

Тип прерываний
Задержки

векторный
9 циклов, с построением очереди прерываний

векторный
12 циклов, с построением очереди прерываний

Режимы пониженного потребления

Slow, Wait for Event, Wait for interrupts, Halt, Halt on exit

Slow, Sleep (Wait for event или
Interrupt), Sleep on exit, Deep sleep

Отладочный интерфейс

1-проводной (SWIM)

2-проводной или JTAG

Оба ядра построены по гарвардской архитектуре и используют трехступенчатый конвейер, что минимизирует время выполнения кода. Однако микроконтроллеры STM8S работают на частотах до 24 МГц, а STM32F1 на частотах до 72 МГц.

STM8S и STM32 разрабатывались с учетом необходимости достижения высокой энергоэфективности, для чего были созданы различные режимы пониженного потребления. Процессоры также характеризуются тем, что разрядность их шинных интерфейсов с памятью (32- и 64- бита, соответственно) превышает среднюю длину используемых команд. Это сокращает число циклов обращения к памяти, а также уменьшает потребление, связанное с переключениями транзисторов логических элементов и ячеек памяти. Очередь прерываний и режимы Halt/ Sleep также снижает число обращений к стеку.

В заключение хочется отметить высокую плотность размещения кода, которую демонстрирует 8-битный набор CISC команд STM8S и набор 16-битных инструкций Thumb-2, используемый в микроконтроллерах семейства STM32F1.

Даже это краткое сравнение показывает, что оба процессора являются образцовыми примерами реализации микроэлектронных архитектур. STM8 не уступает устаревшим сериям 16-битных процессоров. В это же время ядро Cortex-M3 отвечает всем требованиям тех приложений, которые сейчас используют 32-битные и производительные 16-битные микроконтроллеры. По этой причине комбинация STM8 и STM32 образует общую непрерывную унифицированную платформу, которая имеет поддержку в виде средств разработки, в том числе и от сторонних разработчиков.

Периферия

Периферийный блоки микроконтроллеров (IP-ядра) – это еще один пример взаимозаменяемости между моделями 8-битных и 32-битных линеек. Большинство IP-ядер периферийных модулей определены и реализованы таким образом, чтобы их можно было легко портировать из одного семейства в другое. В результате значительно упрощается переход от привычной 8-битной периферии в мир 32-битных возможностей. Это приводит к отличным ценовым показателям, высокой энергоэфективности, простоте освоения новых ресурсов, что на системном уровне дополняется увеличенной разрядностью шин и наличием контроллера прямого доступа к данным (DMA), который требуется для достижения повышенной производительности. Так как принцип работы периферийных блоков STM8S и STM32 одинаков, это позволяет максимально быстро переходить с одной платформы на другую.

Упрощенная структурная схема периферийных блоков

Рис. 1. Упрощенная структурная схема периферийных блоков

Любой периферийный модуль может быть представлен в виде двух функциональных блоков. Первый блок – интеллектуальное ядро, которое содержит автомат состояний, счетчики, комбинационную логику, словом все то, что требуется для выполнения тех задач и функций, от которых необходимо освободить процессор. Это может быть: низкоуровневый обмен данными, работа с аналоговыми сигналами, задание и отсчет временных интервалов и т. д. Очень часто ядро периферийного модуля взаимодействует с внешним миром с помощью выводов микроконтроллера. Это могут быть как отдельные порты ввода-вывода, так и целые шинные интерфейсы.

Периферийный модуль, настраивается и управляется пользовательской программой с помощью регистров, которые подключаются к шинному интерфейсу микроконтроллера. В 8-битных системах процессор напрямую записывает и считывает значения регистров. В 32-битных контроллерах общение идет через специализированные шинные мосты. Таким образом, основное отличие между семействами 8-битных и 32-битных контроллеров заключается в организации шин. Это объясняет, почему STM8S и STM32 могут использовать одинаковые периферийные модули: они построены на одинаковых ядрах и отличаются только шинными интерфейсами. Процессоры Cortex-M3 и их периферийные блоки используют шинную архитектуру AMBA с 32-битной шиной данных, в то время как STM8S работают с менее эффективной 8-битной шиной. С функциональной точки зрения периферийные модули отличаются:

  • разрядностью регистров: 8 бит у STM8S, 16/32 бита у STM32;
  • максимальной рабочей частотой, которая зависит от частоты ядра;
  • наличием DMA, который позволяет разгрузить процессор и увеличить скорость при обмене данными;
  • некоторыми специфичными функциями, например, управлением портами ввода-вывода.

Рассмотрим реализацию блоков SPI в STM8S и STM32 (рис. 2). На первый взгляд они кажутся практически идентичными, за исключением некоторых различий, выделенных красным. Это, например, касается наличия функций DMA.

Реализация блоков SPI в STM32 и STM8

Рис. 2. Реализация блоков SPI в STM32 и STM8

Если рассматривать карту памяти этого периферийного блока, мы увидим ту же картину: регистры и битовые поля имеют сходные названия и положение в адресном пространстве, за исключением некоторых отдельных битов и разрядности самих регистров(таблицы 1 и 2).

Таблица 2. Набор регистров периферийного блока SPI в микроконтроллерах STM32

Набор регистров периферийного блока SPI в микроконтроллерах STM32

Таблица 3. Набор регистров периферийного блока SPI в микроконтроллерах STM8

Набор регистров периферийного блока SPI в микроконтроллерах STM8

В таблице 4 приведено соответствие периферийных блоков в STM32 и STM8, что еще больше подчеркивает совместимость микроконтроллеров даже на уровне регистров и битов.

Таблица 4. Общая периферия микроконтроллеров STM32 и STM8

Периферийные блоки

STM32

STM8

Независимый сторожевой таймер (IWDG)

Оконный сторожевой таймер (WWDG)

Последовательный интерфейс SPI

Интерфейс I2C

Универсальный синхронный/асинхронный приемопередатчик (USART)

Таймеры с расширенным функционалом (Advanced-control timers)

16-битный таймер с расширенным функционалом

Таймеры общего назначения (General-purpose timer)

16-битный таймер общего назначения

Базовый таймер

Базовый 8-битный таймер

Несмотря на то, что таймеры имеют различную конфигурацию, их архитектура оказывается примерно одинаковой. По сути это одна и та же архитектура. Отличие заключается только в количестве каналов и блоков захвата, а также в наличии или отсутствии некоторых специализированных функций, таких, например, как управление электродвигателями.

Заключение

Данное руководство разъясняет, почему возможен простой и безболезненный переход от 8-битных микроконтроллеров STM8S к 32-битным STM32 и обратно. Данные семейства образуют общую производительную платформу и имеют множество общих черт. На уровне периферийных блоков это выражается в использовании одинаковых периферийных ядер, таких как таймеры и коммуникационные интерфейсы и т. д. На системном уровне семейства также оказываются достаточно близкими, за исключением некоторых функциональных особенностей (системы тактирования и сброса, особенности безопасности и др.).  

Все перечисленные общие черты дополняются набором схожих программных библиотек, которые позволяют быстро начать новую разработку. Библиотеки служат надежным основанием для унификации при написании общего аппаратно-независимого ПО как для 8-битных, так и для 32-битных микроконтроллеров.

Схожесть аппаратной реализации STM8S и STM32, а также близость программных библиотек позволяют повторно использовать ранее разработанные решения и значительно сократить время вывода устройств на рынок, в особенности, если приложение было разработано с учетом требований к вычислительной мощности, наличию коммуникационных каналов и функциональных особенностей.


Производитель: STMicroelectronics
STM32F050F4P6 STM32F050F4P6 Цена, руб. Срок поставки Запросить
условия
поставки
Микроконтроллер - [TSSOP-20]; Ядро: ARM Cortex-M0, 32-бит; FLASH: 16 КБайт; RAM: 4 КБайт; АЦПканалов: 10; АЦПразр: 12; Fcore: 48 МГц По запросу
STM32F051C4T6 STM32F051C4T6 Цена, руб. Срок поставки Укажите
кол-во:

Микроконтроллер - [LQFP-48]; Примечание: LQFP 48 7X7X1.4 1UFQFN32, 16K FLASH , 2K RAM, 1X
123,00 r
от 29 шт. 105,00 q
от 62 шт. 96,00 q
На складе: 79 шт.
STM32F051C8T6 STM32F051C8T6 Цена, руб. Срок поставки Запросить
условия
поставки
Микроконтроллер - Примечание: Entry-level ARM Cortex-M0 MCU with 64 Kbytes Flash, 48 MHz CPU, motor control and CEC functions По запросу
STM32F051C6T6 STM32F051C6T6 Цена, руб. Срок поставки Укажите
кол-во:

Микроконтроллер - Примечание: LQFP 48 7X7X1.4 1LQFP4832K FLASH , 8K RAM, 1X AD
127,00 r
от 28 шт. 109,00 q
от 59 шт. 99,50 q
На складе: 6586 шт.
STM32F100C4T6B STM32F100C4T6B Цена, руб. Срок поставки Укажите
кол-во:

Микроконтроллер - [LQFP-48]; Ядро: ARM Cortex-M3, 32-бит; FLASH: 16 КБайт; RAM: 4 КБайт; АЦПканалов: 10; АЦПразр: 12; АЦПскорость: 833 кГц
174,00 r
от 20 шт. 150,00 q
от 43 шт. 137,00 q
На складе: 2196 шт.
STM8S003F3P6 STM8S003F3P6 Цена, руб. Срок поставки Укажите
кол-во:

Микроконтроллер - [TSSOP-20]; Ядро: STM8, 8-бит; FLASH: 8 КБайт; EEPROM: 128 Байт; RAM: 1 КБайт; АЦПканалов: 5; АЦПразр: 10
35,90 r
от 96 шт. 30,80 q
от 222 шт. 28,30 q
На складе: 29335 шт.
STM8S003K3T6C STM8S003K3T6C Цена, руб. Срок поставки Укажите
кол-во:

Микроконтроллер - [LQFP-32]; Ядро: STM8, 8-бит; FLASH: 8 КБайт; EEPROM: 128 Байт; RAM: 1 КБайт; АЦПканалов: 4; АЦПразр: 10
46,30 r
от 75 шт. 39,70 q
от 162 шт. 36,40 q
На складе: 16725 шт.
STM8S103K3T6C STM8S103K3T6C Цена, руб. Срок поставки Укажите
кол-во:

Микроконтроллер - [LQFP-32]; Ядро: STM8, 8-бит; FLASH: 8 КБайт; EEPROM: 640 Байт; RAM: 1 КБайт; АЦПканалов: 5; АЦПразр: 10
86,00 r
от 40 шт. 73,50 q
от 87 шт. 67,50 q
На складе: 1332 шт.
STM8S105C4T6 STM8S105C4T6 Цена, руб. Срок поставки Укажите
кол-во:

Микроконтроллер - [LQFP-48]; Ядро: STM8, 8-бит; FLASH: 16 КБайт; EEPROM: 1 КБайт; RAM: 2 КБайт; АЦПканалов: 10; АЦПразр: 10
46,20 r
На складе: 930 шт.
Версия для печати версия для печати

Заметили ошибку в работе сайта?
Скажите нам об этом