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
Наименование
Производитель
Описание Корпус/
Изображение
Цена, руб. Наличие
STM8S103K3T6C
STM8S103K3T6C
STMicroelectronics
Арт.: 328745 ИНФО PDF RD
Доступно: 20789 шт. от: 97 руб.
Микроконтроллер - [LQFP-32]; Ядро: STM8, 8-бит; FLASH: 8 КБайт; EEPROM: 640 Байт; RAM: 1 КБайт; АЦПканалов: 5; АЦПразр: 10
STM8S103K3T6C 97,00 от 35 шт. 83,00 от 76 шт. 76,00
1182 шт.
(на складе)
19607 шт.
(под заказ)
STM8S105C4T6
STM8S105C4T6
STMicroelectronics
Арт.: 328747 ИНФО PDF RD
Доступно: 6986 шт.
Выбрать
условия
поставки
Микроконтроллер - [LQFP-48]; Ядро: STM8, 8-бит; FLASH: 16 КБайт; EEPROM: 1 КБайт; RAM: 2 КБайт; АЦПканалов: 10; АЦПразр: 10
STM8S105C4T6
6986 шт.
(под заказ)
Выбрать
условия
поставки
STM32F100C4T6B
STM32F100C4T6B
STMicroelectronics
Арт.: 567456 ИНФО PDF AN RD
Доступно: 26714 шт. от: 175 руб.
Микроконтроллер - [LQFP-48]; Ядро: ARM Cortex-M3, 32-бит; FLASH: 16 КБайт; RAM: 4 КБайт; АЦПканалов: 10; АЦПразр: 12; АЦПскорость: 833 кГц
STM32F100C4T6B 175,00 от 20 шт. 150,00 от 43 шт. 138,00
3817 шт.
(на складе)
22897 шт.
(под заказ)
STM8S003K3T6C
STM8S003K3T6C
STMicroelectronics
Арт.: 884044 ИНФО PDF RD
Доступно: 22905 шт.
Выбрать
условия
поставки
Микроконтроллер - [LQFP-32]; Ядро: STM8, 8-бит; FLASH: 8 КБайт; EEPROM: 128 Байт; RAM: 1 КБайт; АЦПканалов: 4; АЦПразр: 10
STM8S003K3T6C
22905 шт.
(под заказ)
Выбрать
условия
поставки
STM8S003F3P6
STM8S003F3P6
STMicroelectronics
Арт.: 884046 ИНФО PDF RD
Доступно: 19190 шт. от: 37.5 руб.
Микроконтроллер - [TSSOP-20]; Ядро: STM8, 8-бит; FLASH: 8 КБайт; EEPROM: 128 Байт; RAM: 1 КБайт; АЦПканалов: 5; АЦПразр: 10
STM8S003F3P6 37,50 от 74 шт. 32,20 от 222 шт. 29,50
5979 шт.
(на складе)
13211 шт.
(под заказ)
STM32F051C4T6
STM32F051C4T6
STMicroelectronics
Арт.: 1048187 ИНФО PDF AN RD
Доступно: 22959 шт. от: 117 руб.
Микроконтроллер - [LQFP-48]; Примечание: LQFP 48 7X7X1.4 1UFQFN32, 16K FLASH , 2K RAM, 1X
STM32F051C4T6 117,00 от 29 шт. 99,50 от 64 шт. 91,50
79 шт.
(на складе)
22880 шт.
(под заказ)
STM32F051C6T6
STM32F051C6T6
STMicroelectronics
Арт.: 1048188 ИНФО PDF AN RD
Доступно: 14975 шт. от: 133 руб.
Микроконтроллер - Примечание: LQFP 48 7X7X1.4 1LQFP4832K FLASH , 8K RAM, 1X AD
STM32F051C6T6 133,00 от 26 шт. 114,00 от 56 шт. 104,00
4737 шт.
(на складе)
10238 шт.
(под заказ)
STM32F051C8T6
STM32F051C8T6
STMicroelectronics
Арт.: 1048189 ИНФО PDF AN RD
Доступно: 18593 шт.
Выбрать
условия
поставки
Микроконтроллер - Примечание: Entry-level ARM Cortex-M0 MCU with 64 Kbytes Flash, 48 MHz CPU, motor control and CEC functions
STM32F051C8T6
18593 шт.
(под заказ)
Выбрать
условия
поставки
STM32F050F4P6
STM32F050F4P6
STMicroelectronics
Арт.: 1112562 ИНФО PDF RD OBS
Поиск
предложений
Микроконтроллер - [TSSOP-20]; Ядро: ARM Cortex-M0, 32-бит; FLASH: 16 КБайт; RAM: 4 КБайт; АЦПканалов: 10; АЦПразр: 12; Fcore: 48 МГц
STM32F050F4P6
-
Поиск
предложений