Начиная обзор плат серии STM32 Nucleo необходимо обозначить место и роль этой серии в линейке продукции компании STMicroelectronics для полного понимания возможностей и раскрытия огромного потенциала использования этих устройств.
Компания STMicroelectronics является одним из мировых лидеров на рынке полупроводниковых устройств и по состоянию на 2019 год имеет:
• годовую выручку 9,56 млрд долларов США.
• 46 000 сотрудников, из которых 7 800 в НИОКР.
• Более 80 офисов продаж и маркетинга, обслуживающих более 100 000 клиентов по всему миру.
• 11 производственных площадок.
Располагая такой базой, компания ставит перед собой глобальные цели по максимальному присутствию на следующих перспективных рынках:
• автотранспорта и сопутствующей инфраструктуры, в т.ч. систем управления электромобилями;
• энергетическом, в т.ч. в плане повышения эффективности существующих технологий и развития возобновляемой энергетики;
• коммуникаций и связи, в том числе IoT (интернет вещей) и 5G направлений.
STM32 является зарегистрированной торговой маркой STMicroelectronics для 32-битных микроконтроллеров (MCU, microcontroller unit) и микропроцессоров (MPU, microprocessor unit) общего назначения, построенных на базе Arm® Cortex® Cores и включающих в себя более 1000 вариаций их применения для различных целей и назначений.
Общее назначение подразумевает, что системы на базе микроконтроллеров и микропроцессоров предоставляются разработчикам для применения в любых областях техники и автоматизации и не имеют узко специализированного назначения. Данный подход позволяет разработчикам исследовать различные предоставляемые вариации оборудования и находить конфигурации максимально подходящие для реализации их проектов, а также позволяет создавать максимально эффективные с экономической точки зрения устройства полностью задействуя потенциал элементной базы и не тратясь на “лишние” возможности и функционал, повышающие стоимость и не использующиеся в проекте.
Семейство 32-битных микроконтроллеров производства STMicroelectronics группируется в серии, в рамках каждой из которых используется одно и то же 32-битное ядро ARM, например, Cortex-M7F, Cortex-M4F, Cortex-M3, Cortex-M0+ или Cortex-M0. Каждый микроконтроллер состоит из ядра процессора (дизайн ядра ARM имеет множество настраиваемых опций, и компания обладая лицензией на IP процессора ARM от ARM Holdings, выбирает индивидуальную конфигурацию для каждого микроконтроллера, при этом добавляя свои собственные периферийные устройства к ядру микроконтроллера), статической RAM-памяти, флеш-памяти, отладочного и различных периферийных интерфейсов.
Серия STM32 |
Ядро ARM CPU |
L5 |
Cortex-M33 |
F7, H7 |
Cortex-M7F |
F4, F3, L4, J |
Cortex-M4F |
F2, F1, L1, W, J |
Cortex-M3 |
L0, J |
Cortex-M0+ |
F0, J |
Cortex-M0 |
Серия плат микроконтроллеров STM32 Nucleo предназначена для прототипирования различного уровня сложности и разделена на 3 группы устройств по форм-фактору чипа и уровню производительности:
• Nucleo-32 - семейство микроконтроллеров в пакетах LQPF (Low Profile Quad Flat Pack, семейство корпусов микросхем, предназначенных для поверхностного монтажа и имеющих планарные выводы, расположенные по всем четырём сторонам) или QFN (Quad Flat Package, семейство корпусов микросхем, имеющих планарные выводы, расположенные непосредственно под микросхемой по всем четырём сторонам);
LQFP-32
• Nucleo-64 — семейство микроконтроллеров в пакете LQPF-64;
LQFP-64
• Nucleo-128 — семейство микроконтроллеров в пакете LQPF-144
LQFP-144
Вся серия представлена на следующей схеме и на данный момент состоит из 59 плат:
Унифицированный кодификатор позволяет быстро разобраться в названиях и определить принадлежность плат и их возможности:
NUCLEO-XXYY*T-Р(-Q)
Код |
Описание |
XX |
Серия микроконтроллера в STM32 Arm Cortex |
YY |
Линейка микроконтроллера в серии |
* |
Тип пакета: К — для 32 pins LQFP-32 R — для 64 pins LQFP-64 Z — для 128 pins LQFP-128 |
Т |
Объём памяти STM32 Flash: • 4 для 16 Kbytes • 6 для 32 Kbytes • 8 для 64 Kbytes • B для 128 Kbytes • C для 256 Kbytes • E для 512 Kbytes • G для 1 Mbyte • Z для 192 Kbytes • E для 512 Kbytes • G для 1 Mbyte • H для 1.5 Mbytes • I для 2 Mbytes |
-P |
STM32 с функцией внешнего SMPS (Switched Mode Power Supplies, импульсный источник питания с высоким КПД) |
-Q |
STM32 с функцией внутреннего SMPS |
Пример: NUCLEO-L496ZG-P
L4 — серия STM32L4 Series
96 — линейка STM32L496
Z — пакет 144 pins
G — память 1 Mbyte
-P — наличие внешнего SMPS
Серии микроконтроллеров STM32:
MP1 — серия микропроцессоров.
F2, F4, H7, F7 — серии микроконтроллеров с повышенной производительностью.
F0, G0, F1, F3, G4 — основная серия микроконтроллеров широкого применения.
L0, L1, L5, L4, L4+ — серии микроконтроллеров с ультранизким энергопотреблением.
WL, WB — серии микроконтроллеров с функцией беспроводной связи.
Основные характеристики серий STM32.
Высокопроизводительные микроконтроллеры:
Название серии |
Ядро ARM |
Макс. частота ядра, |
CoreMark |
Объем |
Объем RAM (кБайт) |
Особенности |
F2 |
Cortex-M3 |
120 |
398 |
128-1024 |
до 128 |
ART ускоритель, Ethernet MAC, USB 2.0 HS OTG, camera interface, hardware encryption support and external memory interface |
F4 |
Cortex-M4F |
180 |
608 |
64-2056 |
до 384 |
Chrom-ART Accelerator™, dual Quad-SPI, SDRAM interface, Ethernet MAC, camera interface |
F7 |
Cortex-M7F |
216 |
1082 |
64-2056 |
256-512 |
AXI and multi-AHB шины, L1 кэш, Double precision FPU (в некоторых моделях), Chrom-ART ускоритель (в некоторых моделях). Серия F7 pin-to-pin совместима с серий F4. |
H7 |
Cortex-M7F, Cortex-M4F (Dual-core line) |
480, 240 |
3224 |
128 - 2048 |
до 1,4 МБайт |
TFT-LCD, JPEG codec, Ethernet, Chrom-GRC™, optional embedded SMPS, dual Octo-SPI with on-the-fly decryption |
Cortex-M7F(Single-core line) |
480 |
Микроконтроллеры STM32 широкого применения:
Название серии |
Ядро ARM |
Макс. частота ядра, |
CoreMark |
Объем |
Объем RAM (кБайт) |
Особенности |
F0 |
Cortex-M0 |
48 |
106 |
16 - 256 |
4 - 32 |
Для приложений, чувствительных к цене микроконтроллера |
G0 |
Cortex-M0+ |
64 |
142 |
16 - 512 |
до 128 |
Для приложений, чувствительных к цене микроконтроллера |
F1 |
Cortex-M3 |
72 |
117 |
16 - 1024 |
4 - 96 |
Ethernet MAC, CAN and USB 2.0 OTG, motor control |
F3 |
Cortex-M4F |
72 |
245 |
16 - 512 |
16 - 80 |
Серия микроконтроллеров для смешанных сигналов, содержит на кристалле богатый набор компараторов, операционных усилителей, дельта-сигма АЦП, АЦП последовательного приближения и т.д. |
G4 |
Cortex-M4F |
170 |
550 |
32 - 512 |
до 32 |
Серия микроконтроллеров для смешанных сигналов, содержит на кристалле богатый набор компараторов, операционных усилителей, дельта-сигма АЦП, АЦП последовательного приближения и т.д. |
Микроконтроллеры STM32 со сверхнизким энергопотреблением:
Название серии |
Ядро ARM |
Макс. частота ядра, МГц |
CoreMark |
Объем Flash памяти (кБайт) |
Объем RAM (кБайт) |
Особенности |
L0 |
Cortex-M0+ |
32 |
75 |
до 192 |
до 20 |
Динамическое потребление тока (минимальное): 49 µA/MHz (при использовании внешнего DC/DC конвертера) и 76 µA/MHz (при использовании LDO) |
L1 |
Cortex-M3 |
32 |
93 |
32 - 512 |
4 - 80 |
Динамическое потребление тока (минимальное): 177 μA/MHz |
L4 |
Cortex-M4F |
80 |
273 |
64 - 1024 |
40 - 320 |
Динамическое потребление тока (минимальное): 28 μA/MHz |
L4+ |
Cortex-M4F |
120 |
409 |
512 - 2048 |
320 - 640 |
Динамическое потребление тока (минимальное): 41 μA/MHz |
L5 |
Cortex-M33 |
110 |
442 |
256 - 512 |
256 |
Динамическое потребление тока (минимальное): 62 µA/MHz |
Беспроводные микроконтроллеры:
Название серии |
Ядро ARM |
Макс. частота ядра, МГц |
CoreMark |
Объем Flash памяти (кБайт) |
Объем RAM (кБайт) |
Особенности |
WB |
Cortex-M4F, Cortex-M0+ |
64, 32 |
216 |
256 - 1024 |
до 256 |
Встроенный радиотрансивер, поддерживающий протоколы Bluetooth® LE, Zigbee® and Thread® |
WL |
Cortex-M4 |
48 |
161 |
до 256 |
до 64 |
Встроенный радиотрансивер, поддерживающий sub-GHz radio: модуляции – LoRa®, (G)FSK, (G)MSK, BPSK |
Подробные данные представлены производителем в сопровождающей документации.
Стоит отметить, что во все платы встроен отладчик-программатор ST-LINK (в платах доступны следующие версии: ST-LINK V1, ST-LINK V2, ST-LINK V2-1, ST-LINK V2-A, ST-LINK V3E, подробнее — в документации к платам), поэтому процесс отладки не требует подключения дополнительных внешних устройств.
Наличие разнообразных встроенных физических интерфейсов, кнопок, программируемых светодиодов для мониторинга состояния, различные варианты и формы питания плат, разъемов для отладки, сетевые подключения и даже возможность работы с алгоритмами Crypto-HASH (AES, DES/TDES, HMAC, MD5, SHA) предоставляют разработчикам практически неограниченные возможности для творчества.
Все платы микроконтроллеров серии STM32 Nucleo являются расширяемыми.
Платы расширения позволяют максимально быстро собрать и испытать устройства с требуемым функционалом и передать в производство уже отлаженную конфигурацию. Компания ST разработала и выпускает более 60 плат расширения STM32 Nucleo expansion boards добавляющие следующий функционал:
• управление приводами на базе:
- шаговых двигателей,
- двигателей постоянного тока с щеточно-коллекторным узлом,
- биполярных шаговых двигателей,
- бесщеточных двигателей постоянного тока (вентильных двигателей),
- а также рассчитанных на высокое и низкое напряжение питания,
- на трехфазное питание
- управление приводами по двум каналам.
• LoRa™ в диапазонах HF и LF, включая использование как шлюз.
• Bluetooth 5 and 802.15.4
• Датчик расстояния, в том числе по нескольким объектам.
• Датчик приближения ToF.
• Sound Terminal® 2.1-channel высокоэффективная цифровая аудиосистема.
• Интерфейсы I²C и SPI EEPROM.
• Глобальное позиционирование GNSS.
• Bluetooth low energy (BLE), в том числе на BlueNRG и SPBTLE-RF.
• Связь Sub-1GHz RF на частотах 868 MHz и 915 MHz.
• Многофункциональные операционные усилители.
• Датчики движения и окружающего пространства MEMS (Микроэлектромеханические системы — устройства, объединяющие в себе микроэлектронные и микромеханические компоненты).
• Функционал для управления заземленными нагрузками (например, нагревательными элементами, электромагнитным драйвером, светодиодным драйвером, драйвером лампочки, заменой реле насосов и вентиляторами) с напряжением питания 8-36V и током до 42А.
• Управление индикаторными LED светодиодами.
• Управления яркостью светодиодов (0 % - 100 % dimming) сигналами ШИМ или аналоговыми.
• Определение энергопотребления подключаемых плат, как нагрузки.
• Работа с Dynamic NFC/RFID tag IC, в том числе функция кардридера
• Возможности промышленного программируемого логического контроллера (PLC/programmable logic controller, ПЛК) с вводом/выводом.
• Решение для разработки приложений связи на основе связи по линиям электропередач.
• Датчик приближения, жестов и внешнего освещения Ambient light sensor (ALS) на основе технологии FlightSense™ компании ST, Time-of-Flight.
• Цифровые MEMS микрофоны.
• Wi-Fi b/g/n со встроенным усилителем мощности, системой управления питанием и SMD-антенной.
• 3-осевой акселерометр, 3-осевой гироскоп компании STMicroelectronics, 3-осевой магнитометр, датчик влажности и температуры и датчик давления.
Большим плюсом и преимуществом плат STM32 Nucleo является совместимость с платами расширения сторонних производителей благодаря разъемам:
• Arduino™ Nano V3 разъему на Nucleo-32
• Arduino™ Uno V3 и ST morpho на Nucleo-64
• Arduino™ Uno V3, ST Zio (расширяющий возможности Arduino™ Uno V3) и ST morpho на Nucleo-144.
Это повышает уровень использования и интеграции продукции STM для расширения и модернизации уже существующих решений и приложений.
STM32 Nucleo — это не только платы различной производительности. Это целая экосистема Open Development Environment, а также огромное сообщество разработчиков.
Открытая среда разработки STM32 (STM32 ODE) - это открытый, гибкий, простой и доступный способ разработки инновационных устройств и приложений на основе семейства 32-разрядных микроконтроллеров STM32 в сочетании с другими современными компонентами ST, подключенными через платы расширения. Основное назначение STM32 ODE — быстрое создание пользователями прототипов с использованием передовых компонентов и максимально быстрое их преобразование в готовые реализованные проекты.
STM32 ODE включает 5 основных элементов:
• Отладочные платы STM32 Nucleo, обеспечивающие возможность разработки для всех серий микроконтроллеров STM32 с неограниченными унифицированными возможностями расширения и встроенным отладчиком/программатором.
• Платы расширения STM32 Nucleo, предоставляющие дополнительные функции (датчики, системы управления, подключения и питания, звука и т.п.), которые устанавливаются поверх отладочных плат STM32 Nucleo.
• Программное обеспечение STM32Cube, представляющее собой набор бесплатных инструментов и встроенных программных блоков для быстрой и простой разработки на STM32, включая уровень аппаратной абстракции, промежуточное ПО, конфигуратор и генератор кода на базе ПК STM32CubeMX.
• Расширенное программное обеспечение STM32Cube специально для использования с платами расширения STM32 Nucleo — это базовый набор программных компонентов, таких как HAL, LL API, промежуточное ПО и примеры приложений.
• Пакеты функций STM32 ODE, представляющие собой сочетание низкоуровневых драйверов, библиотек промежуточного программного обеспечения и примеров приложений, собранных в единый программный пакет для некоторых из наиболее распространенных приложений, созданных за счет использования модульности и совместимости комплектов разработки STM32 Nucleo и плат расширения X-NUCLEO, а также программного обеспечения STM32Cube и X-CUBE, составляя экосистему открытой среды разработки STM32 (ODE).
Открытая среда разработки STM32 совместима с рядом IDE, включая IAR EWARM, Keil MDK, mbed и среды на основе GCC.
Встроенное программное обеспечение STM32 представляет собой низкоуровневые драйверы, уровни аппаратной абстракции и промежуточное ПО, включая RTOS, USB, TCP / IP и графические стеки, включая:
• Аудио (MP3, WMA, голосовые службы и др.)
• Возможности подключения (USB, TCP / IP, Bluetooth, Zigbee RF4CE и др.)
• Графические интерфейсы
• Криптография (Бесплатная библиотека STM32 с открытым ключом, симметричными и хэш-алгоритмами)
• Управление двигателем и безопасность (IEC 61508 SIL для промышленности, IEC / UL 60335/60730, класс B для приложений бытовой техники)
Традиционно доступны и используются интегрированные среды разработки (IDE, software integrated development environments) с компиляторами C/C++/Pascal/JAVA и отладчиками сторонних поставщиков (доступны бесплатные версии с кодом до 64 Кбайт), а также встроенные программные библиотеки, необходимые для настройки и инициализации микроконтроллера или микропроцессора и отслеживания его поведения во время выполнения операций.
STM32CubeMX — это графический инструмент, используемый для настройки любого устройства STM32. Простой в использовании графический интерфейс пользователя генерирует C-код инициализации для ядер Cortex-M и генерирует дерево устройств Linux для ядер Cortex-A.
STM32CubeIDE — это интегрированная среда разработки. Эта среда IDE, основанная на решениях с открытым исходным кодом, таких как Eclipse или инструментарий GNU C/C++, включает функции отчетов о компиляции и расширенные функции отладки. Он также интегрирует дополнительные функции, присутствующие в других инструментах экосистемы, такие как инициализация HW и SW и генерация кода из STM32CubeMX.
Инструменты визуализации данных STM32CubeMonitor позволяют отслеживать и диагностировать приложения STM32 во время выполнения, считывая и визуализируя их переменные в реальном времени. В дополнение к специализированным версиям (power, RF, USB-PD) универсальный STM32CubeMonitor предоставляет графический редактор на основе потоков для простого создания пользовательских панелей мониторинга и быстрого добавления виджетов, таких как датчики, гистограммы и графики, что помогает визуализировать поведение приложений на хост-устройствах в различных форм-факторах, таких как ПК, планшеты или смартфоны.
STM32CubeProgrammer представляет простую в использовании и эффективную среду для чтения, записи и проверки памяти устройства как через интерфейс отладки (JTAG и SWD), так и через интерфейс загрузчика (UART, USB DFU, I2C, SPI и CAN).
Он предлагает широкий спектр функций для программирования внутренней памяти (например, Flash, RAM и OTP), а также внешней памяти, а также позволяет программировать и загружать опции, проверять содержание программирования и автоматизировать программирование с помощью сценариев.
STM32CubeProgrammer поставляется в версиях GUI (Graphical User Interface, графический пользовательский интерфейс) и CLI (Command Line Interface, интерфейс командной строки) и поддерживает работу различных операционных систем: Windows, Linux, macOS.
Подводя итог рассмотрения серии STM32 Nucleo, хочется отметить рациональный баланс, соблюдаемый производителем — компанией STMicroelectronics, в предоставляемых разработчикам возможностях для создания проектов и огромного потенциала поддержки и развития, с экономической составляющей — стоимостью. Имея такой широкий выбор средств, вполне реально создавать узкоспециализированные приложения, полностью отвечающие своим задачам и максимально использующим весь заложенный технический потенциал.