Разберите почти любое встраиваемое устройство или промышленный контроллер — с большой вероятностью на плате найдётся микроконтроллер STM32. У STMicroelectronics одна из самых широких линеек 32-разрядных микроконтроллеров: от недорогих восьмивыводных Cortex-M0+ с частотой 48 МГц до 800-МГц решений на Cortex-M55 и Cortex-M85 для машинного зрения, периферийного ИИ и сложной обработки в реальном времени.
Такой выбор удобен, но фраза «возьмём какой-нибудь STM32» мало помогает на практике. Для реального проекта вопросы должны звучать точнее: какое ядро справится с нагрузкой, в каком семействе есть нужная периферия и какой конкретный артикул подходит по памяти, корпусу, энергопотреблению и распиновке.
Ядро Cortex-M задаёт верхнюю границу возможностей
Обозначение Cortex-M позволяет примерно оценить набор инструкций, архитектуру прерываний, поддержку безопасности и потенциальную производительность в DSP-задачах. При этом оно ничего не говорит о размере Flash, структуре DMA, доступных таймерах или о том, выведены ли нужные сигналы в выбранном корпусе.
| Ядро | Основные особенности | Примеры семейств STM32 | Типичные задачи |
|---|---|---|---|
| Cortex-M0+ | Компактное ядро с невысокой стоимостью и потреблением | STM32C0, G0, U0, WB0 | Простая автоматика, датчики, бытовая техника, массовые изделия |
| Cortex-M3 | Универсальное 32-разрядное управление без акцента на FPU и DSP | STM32F1, F2, L1 | Проверенные промышленные платформы и поддержка существующих проектов |
| Cortex-M4 | DSP-инструкции и, в реализациях STM32, FPU одинарной точности | STM32F3, F4, G4, L4, WB, WL | Электроприводы, аудио, измерительная техника, обработка сигналов |
| Cortex-M33 | Архитектура Armv8-M, поддержка TrustZone, DSP и FPU в зависимости от реализации | STM32C5, H5, U3, U5, WBA | Защищённые подключённые устройства и современные системы управления |
| Cortex-M7 | Высокая производительность, кэш и TCM в реализациях STM32 | STM32F7, H7 | Графика, сети, высокочастотные контуры управления, сложные RTOS-системы |
| Cortex-M55 | Helium для векторной обработки, DSP и машинного обучения | STM32N6 | Машинное зрение, аудиоаналитика, локальный ИИ |
| Cortex-M85 | Более высокая скалярная и векторная производительность, поддержка Helium | STM32V8 | Продвинутая автоматика, промышленное зрение, сложная обработка в реальном времени |
Здесь важно учитывать один нюанс. MPU у Cortex-M0+, а также FPU, DSP-расширения и конфигурация TrustZone у Cortex-M33 могут быть опциональными на уровне ядра Arm. Поэтому возможности двух микроконтроллеров нельзя считать одинаковыми только на основании общего типа Cortex-M — их необходимо проверять по даташиту и Reference Manual конкретной модели.
Более производительное ядро не всегда улучшает систему. Если ограничение связано с памятью, периферией или архитектурой платы, оно лишь увеличит стоимость и энергопотребление.
Основные семейства STM32 и их назначение
ST делит микроконтроллеры прежде всего по инженерным задачам, а не по рынкам. Поэтому одно и то же семейство можно встретить в бытовом устройстве, медицинском приборе и промышленном контроллере.
Бюджетные и массовые устройства
STM32C0 — самая доступная точка входа в современную линейку. В основе лежит Cortex-M0+ с частотой до 48 МГц. Объём Flash составляет от 16 до 256 КБ, RAM — до 36 КБ. Самые компактные модели выпускаются в восьмивыводных корпусах, а отдельные линейки поддерживают USB без внешнего кварца или FDCAN.
Для многих задач C0 способен заменить 8- или 16-разрядный микроконтроллер. Ограничения становятся заметны, когда приложению требуется больше памяти, сложная аналоговая периферия или несколько одновременно работающих интерфейсов.
STM32G0 занимает более широкий сегмент. Это по-прежнему Cortex-M0+, но в семействе больше вариантов по памяти, корпусам и коммуникационным интерфейсам. Если C0 почти подходит, но не хватает UART, таймеров или RAM, следующим логичным кандидатом часто становится G0.
STM32C5 относится уже к другому классу. Он построен на Cortex-M33 с частотой до 144 МГц, обеспечивает до 593 CoreMark и может иметь 1 МБ Flash и 256 КБ RAM. В зависимости от модели доступны Ethernet, FDCAN, I3C, OctoSPI, несколько ADC и аппаратные средства безопасности.
Рассматривать C5 как простой аналог C0 было бы неправильно. Это современная платформа для проектов, которым нужна высокая производительность, но переход к H5 или H7 пока не оправдан.
Системы с низким энергопотреблением
Семейства STM32L давно применяются в устройствах с батарейным питанием. Например, STM32L4 сочетает Cortex-M4 с частотой до 80 МГц, развитые режимы Stop и Standby и зрелую программную экосистему. Для существующих проектов, где его возможностей достаточно, он остаётся разумным выбором.
В новых недорогих устройствах с батарейным питанием чаще стоит начинать сравнение с STM32U0. Он работает на частоте до 56 МГц и в зависимости от линейки содержит от 16 до 256 КБ Flash и от 12 до 40 КБ RAM. В отдельных моделях доступны USB, управление LCD, низкопотребляющие UART, компараторы и операционный усилитель.
STM32U3 располагается между U0 и U5. Cortex-M33 работает на частоте до 96 МГц, а старшие модели предлагают до 2 МБ Flash и 640 КБ RAM. Производительность достигает 117 CoreMark на милливатт. Для некоторых представителей семейства заявлен ток около 2,1 мкА в Stop 3 при сохранении 8 КБ SRAM.
Это хороший вариант, когда U0 уже не хватает по памяти или вычислительной мощности, но устройство по-прежнему большую часть времени проводит в режиме сна.
STM32U5 поднимает планку выше. Частота Cortex-M33 достигает 160 МГц, объём Flash — 4 МБ, а SRAM в отдельных графических моделях — до 3 МБ. Такой микроконтроллер способен обслуживать крупное RTOS-приложение, дисплей, защищённое соединение и сложный программный стек, не переходя при этом в энергетический класс STM32H7.
Универсальные и высокопроизводительные решения
STM32F4 остаётся одним из самых распространённых универсальных семейств. Частота достигает 180 МГц, производительность — 225 DMIPS, объём Flash — 2 МБ, SRAM — до 384 КБ. Экосистема хорошо отработана, поэтому F4 по-прежнему используют в промышленной автоматике, аудио, интерфейсных панелях и модернизации существующих устройств.
STM32F7 переходит на Cortex-M7. Старшие модели работают на 216 МГц и достигают 1082 CoreMark, располагая SRAM объёмом до 512 КБ. Благодаря кэшу и tightly coupled memory разница с F4 заметно больше, чем может показаться при сравнении одних только мегагерц.
В новом защищённом проекте перед автоматическим выбором F4 или F7 стоит оценить STM32H5. Cortex-M33 работает на частоте до 250 МГц и обеспечивает до 1035 CoreMark. В разных линейках доступно до 4 МБ Flash и 1,5 МБ RAM, а также TrustZone, криптография, Ethernet, FDCAN, USB и интерфейсы внешней памяти.
STM32H7 остаётся основной высокопроизводительной платформой для систем реального времени. Современные модели достигают 600 МГц и 3347 CoreMark. В семействе есть как одноядерные решения, так и комбинации Cortex-M7 и Cortex-M4.
При этом обозначения H7 недостаточно для выбора. Архитектура памяти заметно различается даже внутри семейства. Одни модели имеют до 2 МБ внутренней Flash и около 1,4 МБ RAM. У STM32H7R/S пользовательской Flash всего 64 КБ: эти микроконтроллеры рассчитаны на загрузку и выполнение программы из внешней памяти.
STM32F1 и F2 по-прежнему доступны и важны для изделий с длительным жизненным циклом. У STM32F103 огромная установленная база, но это не делает его оптимальным выбором для новой разработки. Современный C0, G0, C5 или H5 может обеспечить лучшую интеграцию, более развитую безопасность и актуальную программную поддержку.
Аналоговые задачи и управление двигателями
STM32G4 и STM32F3 выделяются не столько вычислительной производительностью, сколько составом аналоговой периферии.
В STM32G4 используется Cortex-M4 с частотой до 170 МГц. Объём Flash достигает 512 КБ, SRAM — 128 КБ, производительность — примерно 569 CoreMark. Однако для силовой электроники важнее другое: высокоточные таймеры, быстрые ADC, DAC, компараторы, встроенные операционные усилители и математические ускорители.
На бумаге STM32F4 с частотой 180 МГц может выглядеть быстрее. Но в цифровом источнике питания или приводе G4 нередко оказывается эффективнее, поскольку позволяет отказаться от части внешних компараторов и усилителей, а также точнее связать запуск ADC с PWM и DMA.
Беспроводные семейства
Беспроводные STM32 различаются не только поддерживаемым протоколом, но и внутренней архитектурой.
В STM32WB приложение выполняется на Cortex-M4, а беспроводной стек вынесен на отдельное ядро Cortex-M0+. Поддерживаются Bluetooth LE и протоколы на базе IEEE 802.15.4, включая Thread и Zigbee. На некоторых моделях возможна одновременная работа нескольких стеков.
STM32WB0 — более доступное одноядерное семейство Bluetooth LE на Cortex-M0+. Максимальная частота составляет 64 МГц, объём Flash — до 512 КБ, RAM — до 64 КБ. Такие микроконтроллеры подходят для маячков, трекеров и простых беспроводных датчиков.
STM32WBA построен на Cortex-M33 и ориентирован на современные защищённые многопротокольные устройства. Частота достигает 100 МГц, Flash — 2 МБ, RAM — 512 КБ. Поддержка Bluetooth LE, Thread, Matter и Zigbee зависит от конкретной линейки.
Для дальнобойной связи в диапазоне sub-GHz предназначен STM32WL. В одном корпусе объединены микроконтроллер и радиотракт с поддержкой LoRa, FSK, MSK и других видов модуляции. Доступны одно- и двухъядерные варианты.
Интеграция радиоблока уменьшает число компонентов и площадь платы, но не отменяет радиочастотное проектирование. Антенна, согласующая цепь, структура земли, размещение компонентов и сертификация конечного изделия всё равно остаются задачей разработчика. Сертифицированный программный стек нельзя считать эквивалентом готового радиомодуля с сертифицированной антенной.
Верхняя часть линейки
STM32N6 — не двухъядерный микроконтроллер. В нём используется один Cortex-M55 с частотой 800 МГц, 4,2 МБ непрерывной SRAM и ускоритель Neural-ART с производительностью до 600 GOPS.
Эта архитектура рассчитана на работу с камерами, обработку изображений, аудио и локальный запуск нейронных сетей. Для подобных задач N6 значительно эффективнее обычного Cortex-M7, но применять его в типовой системе управления без вычислительной нагрузки смысла нет.
STM32V8 использует Cortex-M85 с частотой 800 МГц и достигает 5072 CoreMark. Helium позволяет ускорять векторные вычисления, поэтому семейство ориентировано на сложное управление, промышленное зрение, графику и обработку сигналов в реальном времени.
STM32N6 и V8 не должны становиться выбором «по умолчанию». Их стоит рассматривать только после измерений, которые показывают, что M33 или M7 уже не укладываются в требования проекта.
Отдельно стоят STM32MP1 и STM32MP2. Это уже не обычные микроконтроллеры, а микропроцессорные системы с Cortex-A для Linux и Cortex-M для детерминированных задач реального времени. К ним переходят, когда требования по интерфейсу, памяти и программной среде выходят за пределы возможностей MCU.
Пять критериев, которые действительно сокращают выбор
После определения подходящего класса микроконтроллера нужно перейти от маркетингового описания семейства к измеримым требованиям проекта.
1. Начинайте с временных ограничений, а не с мегагерц
До сравнения тактовых частот определите худший допустимый сценарий.
Для контура управления с частотой 20 кГц весь период составляет 50 мкс. За это время система должна выполнить выборку ADC, обработать DMA или прерывание, рассчитать алгоритм управления и обновить PWM. Сюда же попадает влияние других задач и более приоритетных прерываний.
Даже если расчёт алгоритма занимает 15 мкс, система может нарушить дедлайн, когда коммуникационное прерывание добавит ещё 25 мкс. И наоборот, более медленный микроконтроллер иногда справляется лучше благодаря удачной связке таймеров, DMA и аналоговой периферии.
Не стоит рассчитывать загрузку процессора вплотную к 100%. Во многих проектах разумно оставить устойчивый запас и удерживать худшую длительную загрузку в пределах примерно 60–70%. Это не требование ST, а практический инженерный ориентир, который необходимо подтвердить измерениями на реальной прошивке.
2. Рассчитывайте энергопотребление по рабочему циклу
Минимальный ток сна в даташите не показывает, сколько устройство будет потреблять на практике.
Средний ток определяется всеми состояниями:
Предположим, датчик раз в секунду работает 8 мс с током 12 мА, а оставшиеся 992 мс находится в режиме сна с током 3 мкА:
Фактический средний ток составляет около 99 мкА, а не 3 мкА. Идеальная батарея ёмкостью 240 мА·ч обеспечила бы примерно 101 день работы. В реальном устройстве результат будет ниже из-за потерь стабилизатора, саморазряда, температуры и ограничения батареи по импульсному току.
Подходящим оказывается не обязательно самый медленный микроконтроллер. Иногда более производительный STM32 быстрее завершает задачу и раньше возвращается в Stop, поэтому расход энергии за цикл снижается.
Проверяйте также, что именно остаётся активным в выбранном режиме сна. Возможность сохранить SRAM, состояние GPIO, работу RTC, LPUART или LPTIM различается между семействами и режимами.
3. Рассчитывайте память для готового изделия
Flash и RAM нужно оценивать не по первой версии прошивки, а по тому программному обеспечению, которое окажется в серийном устройстве.
В объём Flash входят загрузчик, основное приложение, сетевые стеки, графические ресурсы, файловая система, криптография, диагностика и данные калибровки. Отдельно нужно учитывать механизм обновления.
Приложение размером 420 КБ формально помещается во Flash на 512 КБ. Но после добавления загрузчика и OTA-запаса свободного пространства почти не останется. В таком случае двухбанковая Flash на 1 МБ может оказаться более безопасным выбором.
RAM часто недооценивают ещё сильнее. Помимо переменных приложения, она расходуется на стеки задач RTOS, DMA-буферы, очереди протоколов, heap, кадры дисплея и тензоры нейросети.
Один framebuffer RGB565 с разрешением 480 × 272 занимает:
480×272×2=261120 байт
Это примерно 255 КБ без учёта второго буфера, графической библиотеки, RTOS и основной логики.
Важно не только общее количество RAM, но и её расположение. В STM32H7 память TCM, AXI SRAM, AHB SRAM и внешняя SDRAM различаются по задержкам, кэшированию и доступности для DMA. Цифра в графе «Total RAM» не всегда отражает пригодность памяти для конкретной задачи.
4. Проверяйте конкретный периферийный блок
Сводной страницы семейства недостаточно для выбора микроконтроллера.
Нужно открыть даташит конкретного артикула и корпуса. Проверьте, какие таймеры доступны, есть ли комплементарные PWM-выходы, сколько ADC-каналов выведено наружу и как организованы DMA-запросы.
То же относится к UART, SPI, I²C, I3C, USB, CAN FD, Ethernet и внешней памяти. Иногда в описании указаны три SPI, но в выбранном 48-выводном корпусе невозможно одновременно вывести нужную комбинацию сигналов. Таймер может существовать, но не иметь комплементарных каналов. Ethernet обычно означает наличие MAC, а не встроенного физического уровня.
Полезно собрать распиновку в STM32CubeMX ещё до завершения выбора. Однако критические сигналы всё равно следует сверить с таблицей Alternate Function в даташите. CubeMX помогает проектировать, но не заменяет документацию.
5. Оценивайте стоимость вместе с корпусом и обвязкой
Самый дешёвый микроконтроллер не всегда даёт самую дешёвую плату.
Экономия на MCU может привести к необходимости добавить внешний ADC, операционный усилитель, компаратор, кварц для USB или отдельную память. Иногда более дорогой STM32 уменьшает число компонентов и общую площадь платы.
Корпус тоже влияет на стоимость производства. LQFP проще разводить, контролировать и ремонтировать. BGA даёт больше выводов и удобнее для внешней памяти, но может потребовать дополнительных слоёв, via-in-pad, более точного изготовления и рентгеновского контроля сборки.
Для серийного изделия следует заранее проверить статус жизненного цикла, сроки поставки, доступные температурные исполнения и наличие реалистичной замены. Даже близкие артикулы внутри одного семейства нельзя считать полностью совместимыми без проверки распиновки и периферии.
В заключение
Удачный выбор STM32 определяется не максимальной частотой и не популярностью семейства. Подходящий микроконтроллер должен решать задачу без лишнего усложнения платы и при этом оставлять проекту разумный запас для дальнейшего развития.
Когда выбор сделан, YPCB поможет довести проект до серийного изделия. Мы проверяем конструкцию до производства, изготавливаем печатные платы и выполняем сборку, чтобы возможные проблемы были обнаружены ещё до выпуска первой партии.
Часто задаваемые вопросы
Начните с STM32C0. Если не хватает памяти или интерфейсов, переходите к STM32G0.
Cortex-M4 подходит для DSP и управления двигателями. Cortex-M33 предпочтительнее, когда нужны TrustZone и современная аппаратная безопасность.
Когда F4, G4 или H5 уже не справляются с обработкой данных, графикой, сетью или внешней памятью.
STM32U0 подходит для базовых задач. При большей нагрузке и объёме памяти стоит рассмотреть U3 или U5.
U3 ориентирован на умеренную производительность и длительную автономную работу. U5 рассчитан на более крупную прошивку, безопасность и сложную периферию.
Соберите распиновку в STM32CubeMX и затем проверьте выбранный корпус по даташиту.
Для небольших серий проще модуль. STM32WB выгоднее при больших объёмах и наличии опыта RF-разработки.
Только если совпадают корпус, распиновка, питание и необходимые периферийные блоки.
Критичные функции должны работать на целевой нагрузке с запасом по времени и памяти, а стоимость платы должна оставаться приемлемой.
