Использование экосистемы STMicroelectronics: подключение датчиков к STM32G4

2 ноября

потребительская электроникаавтоматизациялабораторные приборыинтернет вещейуниверсальное применениеST Microelectronicsстатьяинтегральные микросхемыCortex-M4МикроконтроллерЭкосистемаCubeIDECubeMXCubeMonitorSTM32+датчики

Святослав Зубарев (г. Смоленск)

В статье описаны основные составляющие экосистемы STMicroelectronics для работы с микроконтроллерами STM32, а также приведен пример ее практического применения: создание проекта на базе STM32G4 с подключением датчиков и использованием отладочной платы NUCLEO-G474RE и платы расширения X-NUCLEO-IKS01A2.

Основные разделы статьи:

Когда речь идет о компании STMicroelectronics, первое, что приходит на ум – это 32-битные микроконтроллеры STM32.

Однако STM – это не только микроконтроллеры и электронные компоненты, но и целая экосистема, включающая в себя все необходимые инструменты для полноценной разработки приложений (рисунок 1):

  • Отладочные платы и платы расширения,
  • Фирменные библиотеки HAL, LL, SPL, middleware и практические примеры их использования,
  • Программаторы ST-LINK,
  • Комплекты документации и примеры программного кода,
  • Вспомогательное ПО,
  • Интегрированная среда разработки (IDE) STM32CubeMX.

Данная статья посвящена практическому применению экосистемы в проекте на базе нового семейства микроконтроллеров общего назначения – STM32G4.

Рис. 1. Экосистема STMicroelectronics

Рис. 1. Экосистема STMicroelectronics

 

Выбор МК и отладочной платы

Прошло более 8 лет с момента выпуска на рынок STM32F3 – первого на тот момент семейства микроконтроллеров со смешанными сигналами на базе ядра Cortex-M4. За это время произошли значительные изменения как в технологии, так и в методах изготовления компонентов. Сейчас STMicroelectronics выпускает различные по специализации семейства микроконтроллеров STM32 (рисунок 2).

Рис. 2. Семейства микроконтроллеров STM32

Рис. 2. Семейства микроконтроллеров STM32

При создании каждого нового семейства используются наиболее удачные решения и функции из предыдущих, а также осваиваются новые техпроцессы. При этом производство старых семейств не останавливается, что гарантирует поддержку уже созданных на их базе изделий. Так, в январе 2020 компания STMicroelectronics еще на 10 лет продлила гарантию выпуска микроконтроллеров STM32F3, начав при этом параллельное производство и выпуск нового, более совершенного семейства микроконтроллеров общего назначения – STM32G4.

Микроконтроллеры STM32G4

Микроконтроллеры семейства STM32G4 построены на базе процессорного ядра ARM Cortex-M4 и способны работать на частоте до 170 МГц, обеспечивая при этом производительность на уровне до 213 DMIPS и 550 CoreMark, что более в чем два раза превышает аналогичные параметры предшествующего семейства STM32F3 с производительностью на уровне 90 DMIPS и 245 CoreMark соответственно. Столь существенный прирост во многом достигается благодаря увеличению частоты работы, что, в свою очередь, стало возможным благодаря применению более совершенного 90 нм техпроцесса. Также стоит отметить степень влияния встроенного аппаратного ускорителя ART, который позволяет пропорционально увеличить производительность при выполнении кода из Flash-памяти.

К другим преимуществам STM32G4 перед STM32F3 можно отнести:

  • Уменьшенное потребление (160 мкA/МГц), что примерно в 2,7 раза ниже, чем в семействе F3,
  • CCM SRAM,
  • 1% RC точность в температурном диапазоне -5…90°C, 2% для всего диапазона,
  • Обновленный ОУ, ЦАП, компаратор,
  • Новый функционал HR-таймера (184 пс),
  • USB type C с функцией Power Delivery, CAN-FD,
  • Два банка Flash,
  • HW криптография AES,
  • Проверка четности SRAM,
  • Новые 128- и 80-выводные корпуса (LQFP).

На сегодняшний день в семейство STM32G4 входят три линейки микроконтроллеров (рисунок 3):

  • STM32G4x1 Access line – стартовая линейка с базовым набором периферии;
  • STM32G4x3 Performance line – линейка с расширенным набором аналоговой и цифровой периферии;
  • STM32G4x4 Hi-resolution line – аналогично предыдущему плюс таймер повышенного разрешения HRTIM.

Рис. 3. Модели микроконтроллеров STM32G4

Рис. 3. Модели микроконтроллеров STM32G4

После того как мы определились с семейством микроконтроллеров, наиболее простым средством подбора конкретной модели и отладочных наборов для знакомства с ее возможностями или создания опытного образца устройства является приложение ST MCU Finder.

ST MCU Finder

ST MCU Finder представляет собой простую мультиплатформенную утилиту, позволяющую подобрать оптимальный контроллер или отладочную плату по заданным критериям. Программа, доступная в виде мобильного приложения в Google Play (ST-MCU-FINDER) в Google Play, а также на сайте STMicroelectronics (ST-MCU-FINDER-PC), оснащена простыми в использовании инструментами для выбора наименований, автоматически обновляющейся документацией и ссылками на профильные сообщества и форумы в сети.

ST-MCU-FINDER позволяет не только подобрать микроконтроллер по заданным параметрам, но и найти все доступные для него отладочные комплекты и расширительные платы. Скажем, для семейства STM32G4 доступны следующие решения (рисунок 4):

Рис. 4. Отладочные и демонстрационные наборы для микроконтроллеров STM32G4

Рис. 4. Отладочные и демонстрационные наборы для микроконтроллеров STM32G4

Отдельно стоит отметить функцию Close selector, позволяющую подобрать аналог микроконтроллера (рисунок 5). Например, для микроконтроллера STM32G431C6Tx ближайшими аналогами являются сосед по семейству STM32G431C6Ux (совпадение 98%) или представитель другого семейства STM32L552CCUx (совпадение 93%).

Рис. 5. Поиск аналогов для STM32G431C6Tx

Рис. 5. Поиск аналогов для STM32G431C6Tx

Доступен и подбор аналогов среди компонентов STM для решений от других производителей: Infineon, Microchip, NXP и так далее. Результаты поиска можно сохранять и загружать из файла или копировать в буфер обмена для вставки в сторонние программные пакеты: как таблицу – в документ Word.

Вернемся к отладочным платам. Если разработчик имеет дело с МК STM32G4, он может выбирать из трех типов фирменных отладочных плат: DISCOVERY, EVAL и NUCLEO, а также из комплекта плат расширения X-NUCLEO.

NUCLEO

Отладочные наборы NUCLEO относятся к типу наиболее простых в использовании и бюджетных у STMicroelectronics. Платы из данных наборов прекрасно подойдут для начального ознакомления с семейством STM32G4 и тестирования его возможностей. Для быстрого старта компания предоставила свободный доступ ко множеству примеров кода, которые поставляются вместе с библиотеками. Такой доступ можно получить напрямую через ссылку на библиотеку или через программу кодогенератора STM32CubeMX. На текущий момент для работы с STM32G4 доступны три набора плат данного типа: NUCLEO-G431KB, NUCLEO-G431RB и NUCLEO-G474RE. Основные характеристики данных решений приведены в таблице 1.

Таблица 1. Характеристики наборов NUCLEO на базе микроконтроллеров STM32G4

Наименование Микроконтроллер Функционал
NUCLEO-G431KB STM32G431 • Поддержка ARDUINO Nano V3
• Программатор/отладчик STLINK-V3E
• Один светодиод пользователя
• Одна кнопка сброса
• 24 МГц кварцевый генератор (HSE)
NUCLEO-G431RB STM32G431RB • Поддержка ARDUINO Uno V3
• ST разъемы расширения Morpho
• Встроенный программатор/отладчик ST-LINK/V2-1
• Один светодиод пользователя, общий с Arduino
• Одна кнопка пользователя и одна кнопка сброса
• Кварцевый генератор 32,768 кГц
NUCLEO-G474RE STM32G474RE • Один светодиод пользователя
• Одна кнопка пользователя и одна кнопка сброса
• Кварцевый генератор 32768 кГц LSE,
• Встроенный на плату генератор 24 МГц HSE
• Поддержка ARDUINO Uno V3
• Встроенный программатор/ отладчик STLINK-V3E

Discovery 

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

Помимо прочего, платы серии Discovery содержат разъемы расширения, которые позволяют взаимодействовать с большинством выводов контроллера и расширять функциональные возможности путем подключения сторонних плат. Если речь идет о STM32G4, разработчику доступны две платы Discovery: B-G474E-DPOW1 и B-G431B-ESC1 (таблица 2).

Таблица 2. Характеристики плат Discovery на базе микроконтроллеров STM32G4

Наименование Микроконтроллер Функционал
B-G474E-DPOW1 STM32G474RET6 • USB Type-C с USB0 FS интерфейсом, совместимым с USB PD3.0
• Мощный RGB-светодиод для яркого освещения
• Мощный цифровой buck-boost-конвертер со встроенными резистивными нагрузками
• Возможности аудиоусилителя класса D
• Четыре светодиода пользователя
• Три светодиода для питания и ST-LINK коммуникаций
• Джойстик: четыре направления и кнопка выбора
• Кнопка сброса
• Встроенный программатор/отладчик STLINK-V3E
B-G431B-ESC1 STM32G431CB • Встроенный программатор/отладчик ST-LINK/V2-1
• Электронный регулятор скорости (ESC), предназначенный для привода одиночного трехфазного бесщеточного двигателя (BLDC/PMSM)
• Потенциометр и кнопка пользователя

Evaluation Boards 

Отладочные комплекты серии Evaluation Boards предназначены для полного и глубокого ознакомления с работой и особенностями различных линеек контроллеров STM32. Если сравнить Discovery и Evaluation Boards, становится ясно, насколько последние превосходят предыдущую серию в разнообразии периферии: если платы Discovery имели в своем составе только стартовый набор, необходимый для начального ознакомления и отладки работы микроконтроллера, то платы Evaluation Boards обладают большим перечнем дополнительных компонентов, в число которых входят дисплеи, построенные по технологиям TFT, E-Ink и ЖКИ; интерфейсы CAN, USB, Ethernet и так далее; различные разъемы для подключения дополнительной периферии; светодиоды; датчики и многое другое. Для линейки STM32G4 доступны две платы семейства Evaluation: STM32G474E-EVAL, STM32G484E-EVAL (таблица 3).

Таблица 3. Характеристики плат Evaluation Boards на базе микроконтроллеров STM32G4

Наименование Микроконтроллер Функционал
STM32G474E-EVAL1 STM32G474 • Цветной TFT LCD с разрешением 240х320
• 16-гигабайтная карта microSD в комплекте
• Встроенная схема измерения тока
• SAI-аудиокодек
• Датчик температуры
• 8-мегабитная SRAM
• Две микросхемы 512-мегабит Quad-SPI NOR Flash памяти
• Четыре светодиода пользователя
• Один светодиод высокой яркости
• Кнопки сброса и пробуждения
• Джойстик: четыре направления и кнопка выбора
• Фоторезистор (LDR)
• Потенциометр
STM32G484E-EVAL STM32G484QE  • 240×320 TFT цветной LCD
• Карта microSD 16 Гбайт в комплекте
• Встроенная схема токоизмерения
• Аудиокодек SAI
• Датчик температуры
• 8-Мбит (512 К x 16 бит) SRAM
• Два 512-Мбит Quad-SPI NOR Flash-памяти
• Четыре цветных светодиода пользователя
• Один светодиод высокой яркости
• Кнопки сброса и пробуждения
• Джойстик: четыре направления и кнопка выбора
• Фоторезистор (LDR)
• Потенциометр

Платы расширения X-Nucleo 

Функционал отладочных плат Nucleo на базе STM32G4 во многом определяется модулями расширения. Компания STMicroelectronics предлагает широкий перечень таких плат (таблица 4).

Таблица 4. Платы расширения X-Nucleo для комплектов отладки Nucleo на базе STM32G4

Наименование Описание Ключевые компоненты
X-NUCLEO-GNSS1A1 Плата расширения с модулем навигации GNSS Teseo-LIV3F
X-NUCLEO-IKS01A3 Оценочная плата на основе MEMS-датчиков:
• трехосевой акселерометр + трехосевой гироскоп,
• трехосевой магнитометр,
• трехосевой линейный акселерометр,
• датчик относительной влажности и температуры,
• датчик абсолютного давления,
• цифровой датчик температуры.
LSM6DSO, LIS2MDL, LIS2DW12, LPS22HH, HTS221, STTS751
X-NUCLEO-IKS01A2

Плата расширения для семейства на основе MEMS-датчиков движения и датчиков состояния окружающей среды:
• трехосевой акселерометр + трехосевой гироскоп,
• трехосевой магнитометр, датчик абсолютного давления,
• датчик относительной влажности и температуры.

LSM6DSL, LSM303AGR, LPS22HB, HTS221
X-NUCLEO-IKS02A1

Плата расширения для семейства на основе MEMS-датчиков:
• трехосевой акселерометр,
• трехосевой гироскоп,
• трехосевой магнитометр,
• цифровой микрофон.

ISM330DHCX, IIS2MDC, IIS2DLPC, IMP34DT05
X-NUCLEO-NFC04A1 Плата расширения для работы с метками NFC/RFID ST25DV04K
X-NUCLEO-S2868A1 Плата расширения для работы с радиосигналами на частоте 868 МГц S2-LP
X-NUCLEO-S2868A2 Плата расширения для работы с радиосигналами на частоте 868 МГц S2-LP
X-NUCLEO-S2915A1 Плата расширения для работы с радиосигналами на частоте 915 МГц S2-LP

Arduino+ Nucleo 

Функционал плат Nucleo можно расширить не только за счет использования фирменных XNucleo-решений, но и путем применения Arduino Shield, что стало возможным благодаря поддержке платами Nucleo модулей Arduino: Nucleo-32 совместимы с Arduino nano, Nucleo-64 и Nucleo-144 способны взаимодействовать с Arduino UnoV3.

Платы Arduino Shield, в свою очередь, можно также разделить на несколько категорий:

Arduino Sensor Shield – платы расширения, позволяющие организовать подключение внешних датчиков. Например, подключение платы, изображенной на рисунке 6, позволяет подключить различные комбинации таких внешних устройств, как датчики, реле, кнопки, потенциометры и так далее.

Рис. 6. Пример платы расширения Arduino Sensor Shield

Рис. 6. Пример платы расширения Arduino Sensor Shield

Arduino Motor Shield дает возможность разработчику подключать к плате обычный двигатель и серводвигатель. Основная задача данного типа плат – обеспечение управления устройствами, потребляющими достаточно высокий для обычной платы Arduino ток. Плата Arduino Motor Shield, в качестве которой выступает Motor Shield L293D, показана на рисунке 7.

Рис. 7. Пример платы расширения Arduino Motor Shield

Рис. 7. Пример платы расширения Arduino Motor Shield

Arduino Ethernet Shield – платы расширения для организации работы с сетью. На рисунке 8 показан пример такой платы – Ethernet Shield W5100. Данная плата позволяет организовать сеть со скоростью передачи данных до 100 Мбит/с.

Рис. 8. Пример платы расширения Arduino Ethernet Shield

Рис. 8. Пример платы расширения Arduino Ethernet Shield

Платы расширения для прототипирования. Данный тип плат служит главным образом для подключения дополнительных дискретных компонентов и имеет простую конструкцию: на платах расположены контактные площадки для монтажа элементов, выведена кнопка сброса и есть возможность подключения внешнего источника питания (рисунок 9).

Рис. 9. Пример платы расширения Arduino для прототипирования

Рис. 9. Пример платы расширения Arduino для прототипирования

Arduino LCD shield и TFT shield. Данный тип плат служит для упрощения процесса настройки и работы с LCD-экранами (рисунок 10).

Рис. 10. Пример платы расширения Arduino LCD shield

Рис. 10. Пример Arduino LCD shield

Arduino Data Logger Shield. Данные платы служат для сохранения данных, полученных с датчиков, с привязкой по времени (рисунок 11).

Рис. 11. Пример платы расширения Arduino Data Logger Shield

Рис. 11. Пример платы расширения Arduino Data Logger Shield

Если в проекте STM32 было принято решение об использовании плат Arduino, следует учитывать, что для связки Nucleo и Arduino необходимо наличие специальных библиотек. С этой целью на GitHub был запущен проект STM32duino, который представляет собой набор библиотек. Для этого на GitHub был запущен проект STM32duino, который представляет собой набор библиотек, выполняющих интеграцию процессоров STM32 в Arduino. В настоящий момент в состав STM32duino входят библиотеки и утилиты, которые можно условно разделить на три группы: ядро, библиотеки плат расширения X-NUCLEO и библиотеки датчиков от STMicroelectronics. Подробнее о работе STM32 совместно с Arduino можно прочитать в статье  «Платы Nucleo на базе STM32G0: чего можно добиться с помощью связки Nucleo и Arduino». 

Конфигурация микроконтроллера и отладочной платы 

STM32CubeMX

С целью упрощения процесса разработки/конфигурации проекта компания STMicroelectronics разработала специальную графическую среду STM32CubeMX (рисунок 12). STM32CubeMX служит для генерации проектов на базе микроконтроллеров STM32 и позволяет автоматически создавать код на языке С и основу программы посредством использования визуальных утилит. Использование STM32CubeMX значительно упрощает и ускоряет процесс написания функций инициализации, однако главный алгоритм работы пользователю по-прежнему необходимо прописывать самостоятельно.

Рис. 12. Структура программной платформы STM32Cube

Рис. 12. Структура программной платформы STM32Cube

STM32CubeMX распространяется бесплатно и поддерживает все существующие модели микроконтроллеров STM32, в том числе STM32G4. STM32CubeMX позволяет настраивать порты ввода-вывода и периферию микроконтроллеров, конфигурировать дерево тактирования, рассчитывать потребление и генерировать проекты с кодом конфигурации для Keil, IAR, STM32CubeIDE, TrueStudio, а также SW4STM32.

Работа с STM32CubeMX состоит из нескольких этапов:

  • Выбор микроконтроллера или отладочной платы,
  • Настройка выводов, конфигурация системной и общей периферии,
  • Настройка дерева тактирования, расчет потребления (если требуется), определение параметров проекта,
  • Генерация кода проекта.

Первое, что необходимо сделать при создании нового проекта в STM32CubeMX – это выбрать микроконтроллер или отладочную плату для начала работы. Выбор осуществляется при помощи виджетов MCU Selector или Board Selector. Возможно начать работу уже с готовым примером (рисунок 13).

Рис. 13. Основное окно программы STM32CubeMX

Рис. 13. Основное окно программы STM32CubeMX

Если проект создается на базе микроконтроллера (без отладочной платы), подбор конкретной модели в STM32CubeMX можно осуществить при помощи фильтров с указанием желаемых параметров, таких как ядро процессора, корпус, семейство, линейка, доступная периферия и так далее (рисунок 14).

Рис. 14. Окно выбора микроконтроллера в STM32CubeMX

Рис. 14. Окно выбора микроконтроллера в STM32CubeMX

После выбора подходящей модели микроконтроллера разработчику необходимо определить назначение выводов и конфигурацию контроллера на соответствующей вкладке Pinout&Configuration (рисунок 15). При этом выводы могут настраиваться как индивидуально с помощью специальной диаграммы, так и с помощью окна периферии.

Рис. 15. Настройка выводов и конфигурации микроконтроллера в STM32CubeMX

Рис. 15. Настройка выводов и конфигурации микроконтроллера в STM32CubeMX

Кроме стандартных блоков периферии, можно добавить в проект дополнительные библиотеки для работы со сторонними устройствами и платами расширения. Например – подключить файловую систему FATFS, операционную систему FreeRTOS и так далее (рисунок 16).

Рис. 16. Подключение к проекту дополнительных библиотек

Рис. 16. Подключение к проекту дополнительных библиотек

Настройка системы тактирования производится с помощью соответствующей вкладки Clock Configuration, при переходе на которою пользователю становится доступно визуализированное дерево тактирования (рисунок 17).

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

Рис. 17. Настройка тактирования в STM32CubeMX

Рис. 17. Настройка тактирования в STM32CubeMX

После настройки выводов и конфигурации контроллера, настройки периферии и тактирования можно переходить непосредственно к разделу генерации кода (Project Manager), в котором необходимо задать имя проекта, его путь расположения, а также IDE, в котором данный код будет обрабатываться далее: EWARM (IAR), MDK-ARM (Keil), SW4STM32, TrueSTUDIO, STM32CubeIDE – или сгенерировать Makefile или GPDSC (рисунок 18).

Рис. 18. Настройка проекта и кодогенератора

Рис. 18. Настройка проекта и кодогенератора

По завершению генерации STM32CubeMX создает С-проект для выбранной IDE. Проект уже содержит весь необходимый код для инициализации выбранной периферии и портов микроконтроллера и готов к дальнейшей работе.

Библиотеки HAL и LL

Выпуск каждого нового семейства микроконтроллеров STMicroelectronics сопровождается поддержкой серии документов и библиотек для работы с ним:

  • STM32Snippets – набор высокооптимизированных примеров кода с использованием CMSIS-совместимых регистровых обращений, позволяющих максимизировать производительность микроконтроллеров STM32 в различных приложениях.
  • SPL (Standard Peripherals Library) – попытка выпустить одну общую библиотеку для объединения всех процессоров и упрощения переноса кода. Данные библиотеки устарели и не поддерживаются большинством современных микроконтроллеров.
  • HAL-драйверы (HAL Drivers) – представляют собой высокоуровневые драйверы, ориентированные главным образом на функциональные возможности периферии. Данные драйверы значительно облегчают работу с периферийными устройствами, упрощая вид их структуры. Немаловажной функцией HAL-драйверов является обеспечение переносимости программного кода между различными линейками микроконтроллеров STM32.
  • LL – драйверы низкого уровня, ориентированные на регистры. Их функции точно отражают структуру периферийных устройств на уровне регистров. Использование LL-драйверов требует глубокого знания периферии. Стоит отметить, что LL-драйверы не поддерживают сложные интерфейсы, такие как USB или Ethernet – в случае необходимости их реализации придется прибегнуть к совместному использованию с HAL.

В таблице 5 приведены преимущества использования того или иного типа библиотек.

Таблица 5. Плюсы и минусы использования библиотек для микроконтроллеров STM32

Библиотеки Переносимость кода Оптимизация (память и производительность) Простота в использовании и освоении Поддержка периферии и интерфейсов
STM32Snippets +++ +
Standard Peripherals Library ++ ++ + +++
STM32Cube HAL +++ + ++ +++
STM32Cube LL + +++ + ++

Библиотеки Middleware 

Отдельно следует отметить библиотеки Middleware, которые представляют собой ПО среднего уровня, такое как ОС FreeRTOS, FatFS, USB Device, USBPD:

  • FreeRTOS – многозадачная операционная система реального времени для встраиваемых систем. FreeRTOS позволяет реализовать установку приоритетов для различных задач, вытесняющую многозадачность, невытесняющую многозадачность, семафоры и очереди. С 2017 года FreeRTOS распространяется под лицензией MIT.
  • FatFs – простая файловая система, совместимая с FatFs реализует поддержку файловых систем FAT и exFAT. Библиотека написана на ANSI C и имеет BSD-подобную лицензию. FatFs работает через uSD, RAMDisk, USBDisk.
  • USB Device – библиотека для работы с USB
  • USBPD – библиотека для работы с USB Power Delivery. В USBPD реализованы:
    • Управление политиками устройств: cоглашение по питанию,
    • Механика политик: согласование параметров питания, обработка ошибок и их сброс,
    • Уровень протокола: формирование и разбор сообщений PD, обработка тайм-аутов и перезапросов.

Разработка ПО 

Несмотря на то, что STMicroelectronics предоставляет пользователям специальный софт STM32CubeMX для генерации кода инициализации, основной код программы по-прежнему необходимо прописывать самостоятельно. Здесь на помощь пользователю приходят специальные среды разработки (IDE), такие как: KEIL, IAR, Atollic, Arduino IDE (когда речь идет об использовании плат Arduino), а также STM32CubeIDE. Рассмотрим данные среды более подробно.

Keil MDK

Keil является наиболее комплексной средой разработки для приложений на базе микроконтроллеров ARM. Keil MDK содержит ARM C/C++ компилятор, операционную систему CMSIS-RTOS RTX и среду разработки uVision с отладчиком. Среда распространяется платно, но существует бесплатная ограниченная версия, которую можно скачать с официального сайта после предварительной регистрации (рисунок 19).

Рис. 19. Окно проекта в среде разработки Keil MDK

Рис. 19. Окно проекта в среде разработки Keil MDK

IAR Workbench

IAR Workbench – многофункциональная среда разработки приложений на языках C, C++ и Assembler . Главные преимущества данной IDE – это достаточно высокая оптимизация генерируемого кода. Пакет IAR включает в себя C/C++ компилятор с поддержкой ANSI, транслятор Assembler, компоновщик, текстовый редактор, настроенный на синтаксис языка Си, симулятор и отладчик в Си и Assembler, менеджер проектов, а также различные дополнительные виджеты. Кроме того, в IAR Embedded Workbench присутствует функция для самостоятельной настройки и оптимизации отдельных модулей проекта, что значительно упрощает процесс отладки, а также позволяет ускорить выполнение программы или уменьшить ее размер (рисунок 20).

Рис. 20 Окно проекта в среде разработки IAR Workbench

Рис. 20 Окно проекта в среде разработки IAR Workbench

Atolic TrueStudio 

Не так давно STMicroelectronics заключила сделку по покупке компании Atolic, занимавшейся разработкой IDE TrueStudio, предназначенной для разработки программного обеспечения микроконтроллеров STM32 (рисунок 21). Интерфейс среды TrueStudio достаточно сильно схож с другой IDE – AC6 System Workbench, созданной единолично STMicroelectronics. Это обусловлено тем, что при разработке обеих IDE использовалась платформа Eclipse. 

Рис. 21. Окно проекта в среде разработки TrueStudio

Рис. 21. Окно проекта в среде разработки TrueStudio

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

Алгоритмы Atolic TrueStudio были широко использованы в другой IDE компании STMicroelectronics – STM32CubeIDE.

В таблице 6 приведены основные особенности TrueStudio и других популярных сред разработки (Keil MDK, IAR Workbench и STM32CubeIDE).

Таблица 6. Основные особенности Keil MDK, IAR Workbench и Atolic TrueStudio

Производитель Среда разработки С/С++ компилятор Ограничение на бесплатную версию Программатор- отладчик Сайт компании
Keil uVision4
(MDK-ARM)
ARM RealView C/C++ 32 Кб по компилируемому коду ULINK-ME ST-LINK http://www.keil.com/
IAR Embedded Workbench IAR С/C++ 32 Кб и полная версия на 30 дней J-LINK ST-LINK http://www.iar.com/
Atollic TrueSTUDIO Eclipse GNU C/C++ Ограничение по функционалу ST-LINK http://www.atollic.com/
STMicroelectronics STM32CubeIDE GNU C/C++ ST-LINK https://www.st.com

Arduino IDE 

Отладочные платы Nucleo-64 и Nucleo-144 могут работать совместно с модулями Arduino, в том числе с платами расширения Arduino Sheild.

При написании программ для Arduino используется бесплатная среда Arduino IDE, которую можно скачать на официальном сайте компании. Кроме того, у пользователей есть возможность работы с онлайн-версией данной среды без необходимости установки на персональный компьютер. Arduino IDE легко устанавливается, имеет простой и удобный интерфейс. Внешний вид стартового окна Arduino IDE представлен на рисунке 22.

Рис. 22. Внешний вид стартового окна Arduino IDE

Рис. 22. Внешний вид стартового окна Arduino IDE

К основным преимуществам использования Arduino IDE стоит отнести следующие:

  • Arduino IDE устанавливается с набором примеров, наглядно показывающих принцип написания кода практически для любых сценариев;
  • Код программы пишется не на ассемблере или Си, а на упрощенном варианте С++, содержащем в своем составе всего три крупных раздела: функции, структуры, переменные и константы. При включении в проект новые библиотеки также добавляют в него новые функции;
  • Упрощенная структура программ. Начальный шаблон проекта состоит всего из двух функций: void setup(), в которой пользователю необходимо провести инициализацию входов/выходов и настроить необходимые интерфейсы, и void loop(), где прописывается основной алгоритм и тело программы;
  • Нет необходимости настраивать периферию, задавать тактирование, формировать стек и так далее.
  • Возможность свободного скачивания нужных библиотек. Если пользователь пытается использовать функцию, которая отсутствует в проекте, Arduino IDE сообщит ему название недостающей библиотеки.

Однако, несмотря на приведенные плюсы, главным минусом Arduino IDE является довольно ограниченный функционал, связанный, в первую очередь, с низкой производительностью данной платформы в целом.

STM32CubeIDE 

Наиболее предпочтительной средой разработки программного кода для микроконтроллеров STM32 является фирменная среда STM32CubeIDE. STM32CubeIDE создана на основе IDE Atollic TrueStudio и STM32CubeMX и сочетает в себе их сильные стороны, а именно – мощный практический функционал первой среды и возможности графической настройки и генерации кода инициализации второй (рисунок 23). STM32CubeIDE дает возможность разработчику сконфигурировать проект, настроить необходимую периферию и задать тактирование микроконтроллера, после чего сгенерировать код инициализации, отредактировать его должным образом, например, добавив несколько функций, и провести компиляцию. Кроме того, среда STM32CubeIDE обладает достаточно продвинутым набором инструментов для отладки и распространяется бесплатно без каких-либо ограничений на использование (в отличии от других IDE, таких как Keil или IAR).

Рис. 23. Стартовое окно программы STM32CubeIDE

Рис. 23. Стартовое окно программы STM32CubeIDE

Ключевые особенности STM32CubeIDE:

  • Интегрированный STM32CubeMX, который, как описывалось ранее, позволяет осуществить выбор микроконтроллера по параметрам, настроить тактирование, периферию или дополнительное программное обеспечение, создать проект и сгенерировать код инициализации,
  • Разработана на базе платформы ECLIPSE/CDT и включает в себя поддержку соответствующих дополнений ECLIPSE, а также компилятор GNU C/C++ и GDB-отладчик,
  • Дополнительные возможности для отладки: просмотр регистров периферии, ядра и памяти, системный анализ и отслеживание в реальном времени (SWV), функции, дающие возможность производить анализ ошибок процессора,
  • Присутствует поддержка ST-LINK и J-Link,
  • Возможность импортирования проектов из Atollic TrueStudio и AC6 System Workbench STM32,
  • Возможность работы на операционных системах Windows, Linux и macOS.

Создание проекта в STM32CubeIDE является несложной задачей, особенно если учесть тот факт, что его первоначальная настройка (генерация кода инициализации) полностью аналогична настройке в среде STM32CubeMX. Кроме того, созданный в STM32CubeMX код можно загрузить напрямую в STM32CubeIDE (конечно, если при создании проекта была выбрана соответствующая IDE).

После создания проекта пользователь может отредактировать его файлы, задав функционал работы микроконтроллера, а также выполнить загрузку и отладку кода, не выходя из среды (рисунок 24). Более подробно работа с STM32CubeIDE будет описана в практическом разделе данной статьи.

Рис 24. Редактирование кода проекта в STM32CubeIDE

Рис 24. Редактирование кода проекта в STM32CubeIDE

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

Прошивка микроконтроллера 

Аппаратная часть 

Для загрузки программного кода на микроконтроллер, а также отладки в режиме реального времени не обойтись без специализированного программатора. Программатор может поставляться отдельно или быть встроенным в отладочную плату. На сегодняшний день доступны три типа программаторов от компании STMicroelectronics: STLINK-V3MINI, STLINK-V3SET и ST-LINK/V2. Рассмотрим их более подробно.

ST-LINK/V2 – внутрисхемный программатор/отладчик для микроконтроллеров серии STM8 и STM32 производства фирмы STMicroelectronics (рисунок 25). Работа ST-LINK/V2 с микроконтроллерами основана на интерфейсах JTAG/SWD или SWIM (актуально только для семейства STM8). Программаторы данного типа встраиваются в некоторые отладочные платы, что позволяет загружать код на микроконтроллер платы без необходимости приобретения дополнительных устройств.

Рис. 25. Внешний вид программатора ST-LINK/V2

Рис. 25. Внешний вид программатора ST-LINK/V2

STLINK-V3SET поддерживает интерфейсы SWIM и JTAG/SWD, а также виртуальный COM порт, который позволяет организовать обмен данными между ПК и целевым микроконтроллером через UART (рисунок 26). Мостовые интерфейсы SPI, I2C, CAN или GPIO можно использовать для программирования устройства с помощью системного загрузчика. Главными преимуществами STLINK-V3SET перед предыдущей версией ST-LINK-V2 являются наличие мультимоста USB к разным интерфейсам и модульная архитектура, дающая возможность расширить базовый функционал. К тому же STLINK-V3SET работает в несколько раз быстрее своего предшественника.

Рис. 26. Внешний вид программатора STLINK-V3SET

Рис. 26. Внешний вид программатора STLINK-V3SET

STLINK-V3MINI – компактный автономный внутрисхемный программатор/ отладчик для микроконтроллеров STM32 (рисунок 27). STLINK-V3MINI строится на базе микроконтроллера STM32F723 в корпусе UFBGA-176, имеет небольшой форм-фактор и обеспечивает высокую производительность. STLINK-V3MINI поддерживает интерфейсы JTAG/ SWD. Кроме того, отладчик предоставляет интерфейс виртуального COM-порта, который позволяет персональному компьютеру взаимодействовать с целевым микроконтроллером через UART.

Рис. 27. Внешний вид программатора STLINK-V3MINI

Рис. 27. Внешний вид программатора STLINK-V3MINI

Программная часть 

Для загрузки и считывания кода с микроконтроллера компания STMicroelectronics предлагает своим клиентам следующие программные пакеты: STM32 ST-LINK Utility и STM32CubeProgrammer.

STM32 ST-LINK Utility – программная среда, представляющая собой полнофункциональный интерфейс для программирования микроконтроллеров STM32. STM32 ST-LINK Utility позволяет производить чтение, запись и верификацию кода микроконтроллера и имеет простой и понятный интерфейс (рисунок 28).

Рис. 28. Внешний вид STM32 ST-LINK Utility

Рис. 28. Внешний вид STM32 ST-LINK Utility

STM32 ST-LINK Utility предлагает разработчику широкий набор возможностей для программирования внутренней памяти STM32 (Flash, RAM, OTP), а также внешней памяти, для проверки программного содержимого (контрольная сумма, верификация во время и после процесса программирования, сравнение кода микроконтроллера с кодом, хранящемся в отдельном файле) и для автоматизации программирования STM32.

К ключевым особенностям STM32 ST-LINK Utility можно отнести:

  • Бесплатное распространение,
  • Поддержку Motorola S19 и Intel HEX,
  • Загрузку, редактирование и сохранение исполняемых файлов и файлов данных, созданных компиляторами Assembler/Linker или C,
  • Удаление, программирование, просмотр и проверку содержимого Flash -памяти устройства,
  • Программирование, стирание и верификацию внешних запоминающих устройств с примерами внешних Flash-загрузчиков,
  • Возможность работы через интерфейс командной строки,
  • Поддержку просмотра состояния памяти и ядра в режиме Live-update.

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

Рис. 29. Внешний вид STM32CubeProgrammer

Рис. 29. Внешний вид STM32CubeProgrammer

Ключевые особенности STM32CubeProgrammer:

  • Возможность стирания, программирования, просмотра и верификации содержимого Flash -памяти устройства,
  • Поддержка Motorola S19 и Intel HEX, ELF,
  • Поддержка ST-LINK (JTAG / SWD) и загрузчика: UART и USB DFU,
  • Возможность стирания, программирования, просмотра и верификации внешней памяти. Содержит примеры внешних Flash-загрузчиков,
  • Автоматическое программирование STM32 (стирание, верификация, программирование, настройка байтов),
  • Возможность OTP-программирования,
  • Выполнение сценариев посредством скриптов через интерфейс командной строки,
  • Обновление прошивки ST-LINK,
  • Безопасное создание прошивки с использованием STM32 Trusted Package Creator tool.

Способы прошивки 

После компиляции и генерации файла машинного кода прошивку необходимо записать в память микроконтроллера. Существует по меньшей мере три способа это сделать:

  • Использовать SWD – технологию отладки при использовании последовательного подключения,
  • Задействовать ST-LINK Mass Storage Feature,
  • Выполнить загрузку через Memory Bootloader.

Рассмотрим данные способы более подробно на примере прошивки микроконтроллера на отладочной плате Nucleo.

SWD

  1. Запустите STM32CubeProgrammer и подключитесь к ST-LINK (рисунок 30).

Рис. 30. Подключение к ST-LINK в STM32CubeProgrammer

Рис. 30. Подключение к ST-LINK в STM32CubeProgrammer

  1. Выполните прошивку микроконтроллера, следуя шагам, показанным на рисунке 31.

Рис. 31. Загрузка кода на микроконтроллер в STM32CubeProgrammer

Рис. 31. Загрузка кода на микроконтроллер в STM32CubeProgrammer

Если запись прошла успешно, вы должны увидеть следующие диалоговые окна (рисунок 32).

Рис. 32. Запись кода прошла успешно

Рис. 32. Запись кода прошла успешно

  1. Выполните отключение программатора (рисунок 33).

Рис. 33. Отключение ST-LINK в STM32CubeProgrammer

Рис. 33. Отключение ST-LINK в STM32CubeProgrammer

  1. Выполните перезагрузку устройства для начала работы загруженного кода прошивки.

ST-LINK Mass Storage Feature

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

  1. Подготовьте копию файла прошивки для записи его на накопитель отладочной платы, выполните подключение платы к компьютеру (рисунок 34).

Рис. 34. Подготовка файла прошивки и отладочной платы NUCLEO

Рис. 34. Подготовка файла прошивки и отладочной платы NUCLEO

  1. Перетащите файл прошивки на накопитель отладочной платы (рисунок 35).

Рис. 35. Копирование файла прошивки на плату NUCLEO

Рис. 35. Копирование файла прошивки на плату NUCLEO

Загружаемый код будет запущен сразу после того, как будет завершен процесс копирования.

Memory Bootloader 

  1. Выполните подключение к ST-LINK при помощи STM32CubeProgrammer (рисунок 36).

Рис. 36. Подключение к ST-LINK через STM32CubeProgrammer

Рис. 36. Подключение к ST-LINK через STM32CubeProgrammer

  1. Измените опционный байт для загрузки из системной памяти (рисунок 37).

Рис. 37. Установка загрузки из System Memory Bootloader

Рис. 37. Установка загрузки из System Memory Bootloader

  1. Отключитесь от ST-LINK и перезагрузите отладочную плату (рисунок 38).

Рис. 38. Отключение ST-LINK в STM32CubeProgrammer

Рис. 38. Отключение ST-LINK в STM32CubeProgrammer

  1. После перезагрузки платы отсоедините и снова подключите USB-кабель отладочной платы к компьютеру.
  1. С помощью STM32 Cube Programmer подключитесь к системной памяти через UART (рисунок 39).

Рис. 39. Подключение к System Memory через UART

Рис. 39. Подключение к System Memory через UART

  1. Выполните запись программного кода аналогично шагам, указанным в первом методе (рисунок 40).

Рис. 40. Загрузка кода на микроконтроллер в STM32CubeProgrammer

Рис. 40. Загрузка кода на микроконтроллер в STM32CubeProgrammer

  1. Снова выполните подключение и восстановите байты опций для загрузки из внутренней Flash-памяти (рисунки 41, 42)

Рис. 41. Подключение к ST-LINK через STM32CubeProgrammer

Рис. 41. Подключение к ST-LINK через STM32CubeProgrammer

Рис. 42. Установка загрузки из Flash-памяти

Рис. 42. Установка загрузки из Flash-памяти

  1. Отключитесь от ST-LINK и перезагрузите плату (рисунок 43).

Рис. 43. Отключение ST-LINK в STM32CubeProgrammer

Рис. 43. Отключение ST-LINK в STM32CubeProgrammer

Мониторинг в STM32CubeMonitor 

STM32CubeMonitor – программная утилита для удобного отображения данных, получаемых с микроконтроллеров семейства STM32. Для работы с STM32CubeMonitor не требуется какого-либо дополнительного оборудования кроме платы с контроллером и программатора. Данная утилита позволяет чрезвычайно быстро и просто выводить данные с контроллера в реальном времени в виде графика, а также осуществлять их постобработку (присутствуют наборы основных математических и тригонометрических функций).

STM32CubeMonitor позволяет точно настраивать и диагностировать приложения STM32 непосредственно во время их выполнения, считывая и визуализируя данные в реальном времени. В дополнение к специализированным версиям (power, RF, USB-PD) STM32CubeMonitor предоставляет графический редактор на основе потоков для простого создания пользовательских панелей мониторинга и быстрого добавления виджетов, таких как датчики, гистограммы и графики (рисунок 44).

Рис. 44. Построение программы мониторинга в STM32CubeMonitor

Рис. 44. Построение программы мониторинга в STM32CubeMonitor

После создания программы для мониторинга пользователю достаточно лишь нажать кнопку START для начала приема данных с микроконтроллера и построения графика в режиме реального времени (рисунок 56).

Рис. 45. Построение графика в STM32CubeMonitor на основе данных микроконтроллера

Рис. 45. Построение графика в STM32CubeMonitor на основе данных микроконтроллера

К ключевым особенностям STM32CubeMonitor можно отнести:

  • Графический потоковый редактор, позволяющий задать алгоритм мониторинга без необходимости написания программного кода,
  • Возможность подключения к любому устройству STM32 через ST-LINK (протоколы SWD или JTAG),
  • Чтение из и запись данных в ОЗУ в режиме реального времени во время работы целевого приложения,
  • Режим прямого захвата или режим моментального снимка,
  • Триггер, позволяющий сосредоточиться на интересующем поведении приложения,
  • Возможность записывать данные в файл и воспроизводить их для исчерпывающего анализа,
  • Поддержка нескольких датчиков для одновременного мониторинга,
  • Удаленный мониторинг с встроенной поддержкой мультиформатных дисплеев (ПК, планшеты, мобильные телефоны),
  • Прямая поддержка сообщества Node-RED.

Пример создания проекта с подключением датчиков на STM32G4

После того как мы подробно разобрали теоретическую часть, касающуюся экосистемы STM, пришло время испробовать ее преимущества на примере создания реального тестового проекта.

Для демонстрации возможностей экосистемы STM создадим тестовый проект на основе отладочной платы NUCLEO-G474RE (базируется на микроконтроллере STM32G474RET6) и платы расширения X-NUCLEO-IKS01A2 – платы на основе MEMS-датчиков движения (гироскоп, акселерометр), магнитометра и датчиков параметров окружающей среды (атмосферное давление, температура, влажность), а также организуем передачу данных с платы расширения на терминал персонального компьютера по интерфейсу UART. Взаимосвязь NUCLEO-G474RE и NUCLEO-IKS01A2 будет организована по I2C.

Первым шагом является создание нового проекта в STM32CubeIDE и выбор отладочной платы. Нужную плату достаточно легко найти, воспользовавшись строкой поиска (рисунок 46).

Рис. 46. Выбор отладочной платы в STM32CubeIDE

Рис. 46. Выбор отладочной платы в STM32CubeIDE

Далее нам необходимо выбрать путь сохранения проекта и задать его имя (рисунок 47).

Рис. 47. Выбор пути расположения и имени проекта в STM32CubeIDE

Рис. 47. Выбор пути расположения и имени проекта в STM32CubeIDE

После создания проекта нам необходимо задействовать необходимые интерфейсы (UART2 и I2C1) и выбрать соответствующие выводы GPIO микроконтроллера: UART2 повесим на PA2, PA3; I2C1 – на PB8, PB9 (рисунок 48).

Рис. 48. Настройка интерфейсов и выводов микроконтроллера в STM32CubeIDE

Рис. 48. Настройка интерфейсов и выводов микроконтроллера в STM32CubeIDE

Так как мы используем плату расширения, то нам необходимо установить в проект соответствующую библиотеку. Для этого перейдем во вкладку Software Packs и выберем раздел Select Components (рисунок 49).

Рис. 49. Раздел Select Components в Software Packs

Рис. 49. Раздел Select Components в Software Packs

В данном разделе вобьем в поиск IKS01A2 – модель используемой платы X-NNUCLEO – и подключим соответствующие библиотеки, отображенные в правой части окна. В разделе Application выберем IKS01A2_DataLogTerminal (рисунок 50).

Рис. 50. Подключение библиотек для работы с платой расширения X-NUCLEO-IKS01A2

Рис. 50. Подключение библиотек для работы с платой расширения X-NUCLEO-IKS01A2

После установки библиотек вернемся в проект и в разделе Software Packs проекта подключим данные библиотеки, а также зададим параметры платформы: IKS01A2 BUS IO driver – I2C1, BSP BUTTON – PC13 [B1 [blue push button]], BSP USART – USART2, BSP LED – PA5 [LED2 [green led]] (рисунок 51).

Рис. 51. Настройка параметров платформы

Рис. 51. Настройка параметров платформы

Сохраним файлы проекта и выполним его построение. Если все было сделано верно, построение выполнится без ошибок (рисунок 52).

Рис. 52. Построение проекта в STM32CubeIDE

Рис. 52. Построение проекта в STM32CubeIDE

Теперь нам необходимо выполнить прошивку микроконтроллера. Для этого выберем один из трех способов, описанных в предыдущих разделах, а именно – простое копирование файла прошивки средствами Windows. Для этого откроем папку расположения проекта и найдем сгенерированный двоичный файл (рисунок 53).

Рис. 53. Расположение файлов проекта STM32CubeIDE

Рис. 53. Расположение файлов проекта STM32CubeIDE

Подключим нашу отладочную плату к компьютеру и выполним копирование сгенерированного файла прошивки. После успешного копирования загорится зеленый светодиод LED1 и начнется работа заданного в коде прошивке алгоритма (рисунок 54).

Рис. 54. Прошивка отладочной платы NUCLEO-G474RE

Рис. 54. Прошивка отладочной платы NUCLEO-G474RE

После прошивки платы нам необходимо получить данные, с этой целью, в том числе, мы активировали передачу по UART. Для работы с UART воспользуемся программой-терминалом Tera Term. Tera Term является открытым проектом и распространяется бесплатно, скачать ее можно на официальном сайте www.teraterm.org.

Выполним запуск программы и выберем подключение по серийному порту. В качестве порта выберем тот, на котором висит наша отладочная плата, в данном случае – COM13 (рисунок 55).

Рис. 55. Выбор COM-порта в Tera Term

Рис. 55. Выбор COM-порта в Tera Term

Далее зайдем в настройки порта и зададим скорость передачи (рисунок 56).

Рис. 56. Настройки порта в Tera Term

Рис. 56. Настройки порта в Tera Term

После этого по UART начнут поступать данные с платы расширения. Данные содержат информацию о текущем положении платы в пространстве, температуре, атмосферном давлении и влажности (рисунок 57).

Рис. 57. Данные с платы расширения X-NUCLEO-IKS01A2

Рис. 57. Данные с платы расширения X-NUCLEO-IKS01A2

В качестве теста можно попробовать изменить положение платы в пространстве и, например, подышать на нее для изменения показателей температуры и влажности (рисунок 58).

Рис. 58. Обновленные данные с платы расширения X-NUCLEO-IKS01A2

Рис. 58. Обновленные данные с платы расширения X-NUCLEO-IKS01A2

Как видно из рисунка 58, после воздействия на плату данные, приходящие с акселерометров и гироскопа, претерпели изменения, также изменились  замеры влажности и температуры. В то же время такой параметр, как атмосферное давление, остался на прежнем уровне (данный параметр не так просто поддается корректировке).

Использование плат расширения X-Nucleo позволяет создавать компактные готовые решения без необходимости трассировки плат и подключения датчиков на аппаратном уровне. В то же время использование среды STM32CubeIDE значительно упрощает создание проекта, давая возможность пользователю разрабатывать несложные приложения, не написав при этом ни одной строки кода.

Заключение 

STM32 – это не только микроконтроллеры, но и экосистема, разработанная STMicroelectronics для упрощения создания приложений на всех этапах их разработки: начиная от поиска и выбора компонентов в MCUFinder и заканчивая созданием готовых проектов без необходимости написания кода в STM32CubeIDE. Выпуск нового микроконтроллера STM всегда сопровождается обновлением библиотек во всех программных продуктах компании, а также выходом отладочных плат для возможности ознакомления с функционалом и построения прототипов будущих приложений. Так произошло и с новым семейством контроллеров общего назначения STM32G4, которое является обновленной и улучшенной версией STM32F3 и может по праву считаться одним из лучших представителей серии 32-битных микроконтроллеров общего назначения STMicroelectronics.

Литература

  1. STM32G4 Online Training
  2. RM Reference manual. STM32G4 advanced Arm®-based 32-bit MCUs. (Rev.4 2020).
  3. STM32G4 mainstream series mixed signal MCU.
  4. Разбор новых уникальных модулей FMAC и CORDIC в микроконтроллерах общего назначения STM32G4 (материалы вебинара)
  5. Системная архитектура и режимы питания
  6. STM32G4 – следующий этап развития семейства STM32F3
•••

Наши информационные каналы

О компании ST Microelectronics

Компания STMicroelectronics является №1 производителем электроники в Европе. Компоненты ST широко представлены в окружающих нас потребительских товарах – от iPhone до автомобилей разных марок. Лидеры индустриального рынка выбирают компоненты ST за их надежность и выдающиеся технические параметры. В компании ST работает 48 000 сотрудников в 35 странах. Производственные мощности расположены в 12 странах мира. Более 11 тысяч сотрудников заняты исследованиями и разработками – инновационное лидерство ...читать далее

Товары
Наименование
NUCLEO-G474RE (ST)
NUCLEO-G431RB (ST)
B-G474E-DPOW1 (ST)
STM32G431C8T6 (ST)
STM32G431C8T6TR (ST)
STM32G431K8T6 (ST)
STM32G441KBU6 (ST)
STM32G473CBU6 (ST)
STM32G473CET6 (ST)
STM32G483VET6 (ST)
STM32G474CBT6TR (ST)
STM32G474CBT6 (ST)
STM32G484CEU6 (ST)