Что такое микроконтроллеры STM32. Какие у них особенности и преимущества. Чем отличаются от Arduino. Как программировать STM32. На какие задачи ориентированы эти микроконтроллеры.
Основные характеристики микроконтроллеров STM32
Микроконтроллеры STM32 — это семейство 32-битных микроконтроллеров на базе ядра ARM Cortex-M, разработанное компанией STMicroelectronics. Вот их ключевые характеристики:
- 32-битная архитектура ARM Cortex-M (M0, M0+, M3, M4, M7)
- Тактовая частота от 32 МГц до 480 МГц
- Объем флэш-памяти от 16 КБ до 2 МБ
- Объем ОЗУ от 4 КБ до 1 МБ
- Большой набор периферийных устройств — таймеры, АЦП, ЦАП, интерфейсы и др.
- Низкое энергопотребление и различные режимы энергосбережения
- Корпуса от 32 до 216 выводов
STM32 отличаются высокой производительностью, широкими возможностями и при этом доступной ценой. Это делает их популярным выбором для многих встраиваемых систем.
Ключевые преимущества микроконтроллеров STM32
Микроконтроллеры STM32 имеют ряд важных преимуществ по сравнению с другими платформами:

- Высокая производительность благодаря 32-битной архитектуре ARM
- Большой объем встроенной памяти
- Богатый набор периферийных устройств
- Низкое энергопотребление
- Широкий выбор моделей для разных задач
- Доступная цена
- Хорошая поддержка и экосистема разработки
Это позволяет создавать на базе STM32 сложные и функциональные устройства при сравнительно невысокой стоимости разработки.
Основные отличия STM32 от платформы Arduino
При выборе между STM32 и Arduino важно понимать ключевые различия этих платформ:
- STM32 имеет более высокую производительность за счет 32-битной архитектуры
- У STM32 больше встроенной памяти (флэш и ОЗУ)
- STM32 обладает более широким набором периферии
- Arduino проще в освоении для начинающих
- Для Arduino доступно больше готовых библиотек и примеров кода
- STM32 требует более глубоких знаний программирования микроконтроллеров
- Arduino дороже при массовом производстве устройств
В целом STM32 больше подходит для сложных проектов, требующих высокой производительности. Arduino удобнее для быстрого прототипирования и обучения.

Программирование микроконтроллеров STM32
Для программирования STM32 можно использовать несколько подходов:
- Программирование на C/C++ с использованием библиотек от ST (HAL, LL)
- Использование генератора кода STM32CubeMX
- Программирование с помощью Arduino IDE (для некоторых плат)
- Применение RTOS вроде FreeRTOS
- Использование высокоуровневых фреймворков типа mbed
Наиболее распространенный подход — это программирование на C с использованием HAL. Это дает полный контроль над микроконтроллером и максимальную производительность.
Типичные области применения микроконтроллеров STM32
Благодаря своим характеристикам, STM32 находят применение во многих сферах:
- Промышленная автоматика и управление
- Медицинское оборудование
- Автомобильная электроника
- Бытовая техника
- Системы «умного дома»
- Робототехника
- Портативные устройства
- Измерительное оборудование
STM32 особенно хорошо подходят для задач, требующих высокой производительности, работы с большими объемами данных или сложных вычислений в реальном времени.

Выбор оптимальной модели STM32 под конкретную задачу
При выборе конкретной модели STM32 следует учитывать несколько факторов:
- Требуемая вычислительная мощность
- Необходимый объем памяти
- Набор периферийных устройств
- Энергопотребление
- Физические размеры и тип корпуса
- Стоимость
Компания ST предлагает удобный онлайн-инструмент STM32CubeMX, который помогает подобрать оптимальную модель под конкретные требования проекта. Это значительно упрощает процесс выбора микроконтроллера.
Особенности отладки программ для STM32
Отладка программ для STM32 имеет свои особенности:
- Использование интерфейса SWD для прошивки и отладки
- Аппаратные отладчики ST-Link, J-Link и др.
- Встроенные средства трассировки (ETM, ITM)
- Возможность отладки через UART
- Поддержка отладки в реальном времени
- Расширенные возможности точек останова
Современные среды разработки (например, STM32CubeIDE) предоставляют удобные инструменты для отладки, включая просмотр регистров периферии, анализ потребления и т.д. Это упрощает процесс поиска и устранения ошибок в программе.

Перспективы развития платформы STM32
- Увеличение производительности и объема памяти
- Снижение энергопотребления
- Интеграция беспроводных интерфейсов (BLE, WiFi)
- Расширение возможностей машинного обучения
- Улучшение средств защиты и криптографии
- Развитие экосистемы разработки
Компания ST продолжает инвестировать в развитие платформы STM32, что делает её перспективным выбором для долгосрочных проектов. Ожидается, что STM32 останется одной из ведущих платформ для встраиваемых систем в ближайшие годы.
Новое поступление микроконтроллеров STM32
STMicroelectronics — европейский производитель электроники и микроэлектроники, входящий в число мировых лидеров индустрии по объёму продаж. Штаб-квартира STM располагается в швейцарской Женеве (причём холдинговая компания — в Амстердаме), но исторически сложилось так, что одними из приоритетных рынков для STM являются Франция и Италия. Само название STMictoelectronics образовали из Thomson Semiconducteurs (Франция) и SGS Microelettronica (Италия) при их слиянии в 1987 г. Основные производственные мощности компании по-прежнему располагаются в этих двух странах, однако дизайн-центры существуют во всех частях света.
Категории продукции STMicroelectronics можно перечислять долго: это и диоды, и динисторы, и симисторы, транзисторы, аналоговые ключи и многое другое. Но, пожалуй, наиболее известными являются микроконтроллеры семейств STM8 и STM32. Поскольку на склад Промэлектроники привезли новую партию STM32, расскажем поподробнее именно об этой линейке.
- STM32 — 32-битные микроконтроллер, основанные на лицензированных ядрах ARM Cortex-M.
- STM выбирает конфигурацию и добавляет к готовой архитектуре ядер периферию собственной разработки — реализацию в кремнии стандартных интерфейсов I2C, USART/UART и т.д.
- Ядра Cortex-M разнятся от относительно высокопроизводительных Cortex-M7F (в STM32 H7 серии) с максимальной частотой до 480 МГц до энергоэффективных Cortex-M0 и Cortex-M0+ с частотой до 48 МГц в сериях STM32 F0 и G0 соответственно.
- Разрядность процессора в 32 бита означает возможность оперировать большими числами и адресовать больше памяти в сравнении с 8- и 16-битными микроконтроллерами, что позволяет задать больше функций на один чип. Кроме того, многие модели STM32 оборудованы также отдельным FPU (floating point unit, модулем вычислений с плавающей запятой), что значительно повышает точность и скорость вычислений на микроконтроллере.
Карточки микроконтроллеров STM32 из новой партии доступны в таблице ниже. Присутствуют как наиболее экономичные модели на Cortex-M0+, так и наиболее мощные микроконтроллеры на Cortex-M7.
Все микроконтроллеры STM в каталоге Промэлектроники.
Наименование
К продажеЦена от
Наличие:
500 шт.Под заказ:
0 шт.STM32 | Записки программиста
После изготовления нескольких сравнительно простых трансиверов (первый, второй, третий) мне захотелось сделать что-то более основательное. Что-то похожее на uBITX, только с работающим УНЧ, телеграфным фильтром, а также АРУ, S-метром и что еще удастся уместить. Чтобы как-то отличать проект от других моих поделок, было выбрано обозначение HBR, от «HomeBrew Radio».
Согласно даташиту [PDF] на STM32F103, микроконтроллер имеет два АЦП. Означает ли это, что МК способен считывать напряжение только на двух пинах? Оказывается, что нет. АЦП может переключаться между несколькими пинами, поочередно считывая напряжение на каждом из них. Давайте разберемся, как этим пользоваться.
Небольшое дополнение к посту Микроконтроллеры STM32: работа с экранчиком 1602 по I2C. HD44780-совместимые ЖК-индикаторы позволяют определить до восьми собственных символов 5x8 точек. Вот как этим пользоваться.
Подержав в руках QCX, мне захотелось сделать что-то похожее. Основным недостатком QCX для меня является тот факт, что трансивер работает только в одном диапазоне. Мне же хотелось иметь трансивер по крайней мере на два диапазона, 20 и 40 метров. Так началась работа над трансивером AYN. Название расшифровывается как «All You Need». Все, что нужно для счастья — это 5 Вт, телеграф и два диапазона.
Ранее мы изучили конструкцию простого супергетеродинного приемника с одной ПЧ на диапазон 40 метров. Данный приемник был доработан до SSB-трансивера с выходной мощностью 5 Вт. Рассмотрим его устройство.
Недавно мы познакомились с устройством приемника прямого преобразования. Хоть приемник и работает, он имеет ряд недостатков, некоторые из которых не так-то просто исправить. Поэтому большинство современных приемников являются супергетеродинами. Давайте же рассмотрим устройство таких приемников на конкретном примере.
Si5351 — это управляемый по I2C генератор частот от 8 кГц до 160 МГц. Чип имеет три канала с выходным импедансом 50 Ом. Уровень сигнала может регулироваться примерно от 2 до 11 dBm. За счет сочетания цены и качества Si5351 очень популярен среди радиолюбителей. В частности, он используется в КВ-трансиверах uBITX и QCX, антенных анализаторах EU1KY и NanoVNA. Сегодня мы познакомимся с данным генератором поближе, а также поймем, как он может быть использован с микроконтроллерами STM32.
В очередном проекте было решено использовать STM32F103 (плату Blue Pill) и роторный энкодер в качестве одного из элементов управления. Благодаря заметке Микроконтроллеры STM32: основы использования таймеров, прерываний и ШИМ нам известно, что в мире STM32 эта задача решается при помощи таймеров. Однако само решение продемонстрировано не было. Давайте заполним этот пробел.
Помимо обычного режима, отображающего зависимость напряжения от времени, многие осциллографы имеют режим X-Y. В этом режиме рисуется кривая на плоскости. Координаты X и Y точек, принадлежащих кривой, определяются входом с двух каналов осциллографа. Режим X-Y многим знаком по фигурам Лиссажу. Но при желании можно нарисовать и что-то поинтересней. Этим мы сегодня и займемся.
Курс «Штурмуем STM32»
Курс «Штурмуем STM32»Данный курс является рефлексией и логическим завершением двухлетнего руководство кружком электроники на ИРИТ-РтФ, УрФУ (HEC – Hardware Engineering Club, позже IMEN – I Am an Engineer). Курс в был прочитан студентам 3-го курса Радиотехнического Факультета УрФУ в весеннем семестре 2016 года (отчёт), а также в осеннем семестре 2016 года школьникам СУНЦ УрФУ (отчёт). После курс был значительно переделан, добавлены новые темы, видоизменено устройство и опробован на десятиклассниках СУНЦ УрФУ осенью-зимой 2018 года. Заказать набор (3000 ₽ + доставка) можно связавшись с автором по электронной почте. В дальнейшем появится магазин.
Цель и задачи курса
Главной целью курса является попытка продемонстрировать весь жизненный цикл цифрового устройства: от первоначальной идеи до реализации и управления продуктом. Основными задачами являются: научить работать с технической документацией; показать основы программирования микроконтроллерной техники; объяснить, как проектировалось устройство (от идеи и схемотехнической реализации до конечной реализации и эксплуатации устройства).
Требования
Минимальный уровень компетенций, при котором можно начинать прохождение курса, подразумевает умение писать несложные программы на языке Си с использованием арифметических, логических и побитовых операций. Умение пользоваться циклами и условиями. Умение писать функции. Понимание процедурного и модульного программирования. Понимание законов Ома, Кирхгофа. Умение анализировать несложные электрические схемы. Полноценное прохождение курса требует наличие набора.
Поддержать
Знания должны быть свободными©. По этой причине все материалы находится в открытом доступе. Однако, была проделана не малая работа и потрачено очень много времени, чтобы изложить все в сжатой, но информативной форме. Маржа с набора не такая большая (меньше стоимости среднестатистического сертификата на coursera), а область весьма специфична и не популярна. Я буду рад любой поддержки данного сайта: вы можете купить набор, приобретя текст курса в виде книги (появится чуть позже), докупив книжку «Си для встраиваемых систем» или пожертвовать средства напряму. Все эти средства пойдут на еду, мотивацию создавать больше интересного материала и поддержания сайта (хостинг и домен стоят денег).
План курса
Введение
- Мотивация. Почему стоит заниматься электроникой и встраиваемыми системами в частности?
- Обзор набора. На чём вам придётся учиться?
- Рекомендации по сборке устройства. Пайка — это отдельный навык. Нужно не просто научиться прикладывать жало к нужным местам, нужно понимать что ты делаешь. К тому же в некоторых случаях стоит соблюдать порядок пайки.
- Стоковая прошивка. Описание возможностей стоковой прошивки, которая идёт в комплекте с набором.
Теория
Инструменты
Программирование
- Простейшая программа. С чего начать программирование? Рассмотрим простейшую программу.
- Оформление кода. Код не стоит писать, как попало. Вводим некоторые соглашения.
- Структура проекта. В устройстве много функций, проводим декомпозицию, разбиваем программу на модули.
- Система тактирования МК. Заводим микроконтроллер от внутреннего генератора (HSI) и пропускаем частоту через умножитель PLL. Поверхностно рассматриваем блок RCC.
- Порты ввода/вывода общего назначения. Для управления внешними цепочками нужно использовать порты ввода/вывода. Как они устроены и как их настроить на нужную функциональность.
- Мигаем светодиодом. Применяем знания, полученные о модуле GPIO, мигаем светодиодом.
- Прерывания, события и NVIC. Некоторые события происходят асинхронно к выполнению программы. Знакомимся с понятием прерывание.
- Обработка нажатия кнопки. Настраиваем ножку на вход, настраиваем блок EXTI, отвечающий за внешние прерывания.
- Таймеры. Обзор. Что такое таймеры и что они умеют?
- Системный таймер — SysTick. В ядро Cortex-M3 входит системный таймер. Настроим прерывание по переполнению, организуем задержку.
- Работа с SysTick без прерывания. Для более коротких задержек, можно реагировать не на прерывание, а на флаг события. Переписываем задержку под нужны датчика температуры.
- Интерфейсы передачи данных. Что такое интерфейсы передачи данных? Какие они бывают?
- Датчик температуры DS18B20. Пишем драйвер для датчика температуры, работающего по протоколу 1-Wire.
- Таймеры общего назначения. Переполнение. Кроме системного таймера в stm32 предусмотрены и другие. Настраиваем базовый таймер.
- Длительное удержание кнопки. Усложняем поведение кнопки, вешаем несколько действий на одну кнопку.
- Работа с энкодером. Простое использование. Настраиваем таймер для работы с инкрементальным энкодером.
- Работа с энкодером. Указатель на функцию. Улучшаем работу с энкодером, добавляем возможность работать с разными переменными, через указатель на функцию.
- Широтно-импульсная модуляция. Таймер может формировать широтно-импульсную модуляции. Как это сделать и для чего это нужно? Димирование светодиода.
- Пьезоэлектрический излучатель. Тестирование. Как работает пьезоэлектрический излучатель? Какие частоты он может воспроизвести?
- Пьезоэлектрический излучатель. Мелодия. Мелодия это не только звуки определённой частоты, а ещё и паузы между ними. Как организовать мелодию?
- Пьезоэлектрический излучатель. Синхронизация таймеров. Улучшаем работу динамика, используем два таймера в и синхронизируем их между собой.
- Часы реального времени. Рассмотрим ещё один специализированный таймер. Делаем время более или менее точным.
- Аналого-цифровой преобразователь. Как преобразовать аналоговый сигнал в цифровой вид?
- Датчик освещённости. Если светодиодная матрица будет светить максимально ярко в ночное время, то она будет мешать спать. Используем АЦП для работы с фоторезистором.
- Интерфейс SPI. Как устроен интерфейс SPI, какие параметры важны в нашем устройстве? Рассматриваем возможные топологии.
- Драйвер микросхемы MAX7219. Настало время попробовать что-то вывести на светодиодные матрицы. Напишем драйвер для микросхемы MAX7219.
- Драйвер дисплея. Драйвера микросхемы недостаточно для вывода нужной нам информации на дисплей. Повышаем уровень абстракции.
- Машина состояний. Для организации прошивки в единую программу прибегнем к так называемой машине состояний.
Дополнительные главы
Данные главы не приоритетные, и будут писаться постепенно.
- Прямой доступ к памяти. Копировать значения из одного адреса в памяти в другой занимает процессорное время. Данную операцию можно переложить на специальный модуль.
- Виды памяти. Какие виды памяти бывают, в чём их особенности?
- Внутренняя flash-память. Что делать, когда нет EEPROM? Где можно хранить настройки устройства?
- Идентификатор устройства. Откуда взять идентификатор устройства?
- Защита прошивки от копирования. Что нужно сделать, чтобы ваше устройство не скопировали?
- Загрузчик. Когда устройство уже у потребителя, а в прошивке обнаружилась ошибка, единственный правильный способ сохранить лицо — это дать пользователю возможность прошить устройство без программатора.
- Контрольная сумма CRC32. Об аппаратном модуле подсчёта контрольной суммы.
- Сторожевой таймер. Что если ваша программа зависнет? Устройство превратится в кирпич… что же делать, как быть?
- Внутренние каналы АЦП. Во всех МК stm32 есть встроенный датчик температуры. Какие у него особенности и как им пользоваться?
- Калибровка часов реального времени. Погрешность в любом случае будет, но как же её нивелировать?
- Интерфейс UART. Что из себя представляет интерфейс UART, и как с ним лучше работать?
- Режим низкого энергопотребления. Конкретно в нашем устройстве вопроса автономности не стоит, однако рассмотреть режим низкого энергопотребления МК и даже применить его нам ничего не мешает.
- Ошибки в железе. Как и в ваших программах, в микроконтроллере могут быть ошибки на уровне железа.
- Игра змейка. Подсказки, как реализовать игру.
Создание
- Как проектировалось устройство? Пора разобраться в том, как именно проектировалось устройство!
- Идея. Почему в качестве устройства в курсе были выбраны часы?
- Проектирование. Настало время разобраться как было спроектировано устройство. Какие критерии были поставлены, как выбирались компоненты и т.д.
- Разводка печатной платы. Мало того, что устройство спроектировано на бумаге, его нужно оформить в виде печатной платы. Делать это нужно с умом, поэтому давайте разберёмся с этим вопросом?
- Автоматизация проектирования. Раньше печатные платы рисовали руками (печатные дорожки, контактные площадки) в прямом смысле этого слова. К счастью XX век нам подарил компьютер, и задача немного упростилась. Какое программное обеспечение можно использовать?
При написании данного курса использовались следующие программные продукты: Sublime Text 3, Typora, KiCAD, InkScape.
STM32—32-разрядные микроконтроллеры на основе ядра ARM Cortex-M3 — Компоненты и технологии
Приборы нового семейства, получившего название STM32, предоставили
разработчикам расширенные возможности архитектуры Cortex-M3, при ведущем в отрасли малом энергопотреблении.
Низкое энергопотребление микроконтроллеров семейства STM32 в рабочем режиме
в еще большей мере снижается за счет использования ряда режимов энергосбережения, что способствует оптимизации рабочих
характеристик таких применений, как промышленное оборудование, контроллеры обслуживания зданий, медицинская аппаратура, периферия компьютеров и т. п.
Ядро процессора Cortex-M3 построено с использованием Гарвардской архитектуры
с 3-уровневым конвейером, в сочетании с рядом расширенных функций, включая одноцикловый умножитель и аппаратный делитель, обеспечивающие исключительно высокую производительность в 1,25 DMIPS/МГц.
Процессор Cortex-M3 работает также с новой
системой команд Thumb-2, которая, в сочетании с такими функциями, как хранение невыровненных данных и побитовая обработка, обеспечивает 32-разрядную производительность при стоимости, эквивалентной стоимости современных 8- и 16-разрядных микроконтроллеров.
В семейство STM32 входят две линейки
приборов:
- Access (F101xx): частота тактирования
36 МГц, от 32 до 128 кбайт флэш-памяти,
от 6 до 16 кбайт SRAM, до 7 коммуникационных интерфейсов. Линейка Access разработана с тем, чтобы внедрить 32-разрядную
схемотехнику в критичные к стоимости
применения или в 16-разрядные проекты. - Performance (F103xx): частота тактирования 72 МГц, от 256 до 512 кбайт флэш-памяти, до 64 кбайт SRAM, контроллер статической памяти с поддержкой Compact
Flash, SRAM, PSRAM, NOR и NAND памяти, с поддержкой LCD параллельного интерфейса (F103Vx). Микроконтроллеры
имеют до 13 коммуникационных интерфейсов, в том числе USB и CAN. Линейка
микроконтроллеров Performance ориентирована на применения, которым необходимы одновременно и повышенная производительность обработки, и экономичная работа.
В текущем году семейство STM32 значительно расширилось: добавлено еще 28 новых микроконтроллеров, включая недорогие
приборы, размещенные в 36-выводных корпусах, и приборы более высокого класса, размещенные в 144-выводных корпусах.
Новые микроконтроллеры, пополнившие
номенклатуру семейства, располагают увеличенным объемом (256, 384 и 512 кбайт)
встроенной Flash-памяти, обеспечивающей
хранение как программ, так и данных. Увеличение объема памяти предоставляет разработчикам возможность реализовать новые
функции и расширить возможности существующих базовых платформ продуктов. Объем встроенной SRAM-памяти также был увеличен до 64 кбайт у 72-МГц контроллеров линейки Performance и до 48 кбайт у 36-МГц
контроллеров линейки Access.
Дополнительная периферия, встроенная
в микроконтроллеры с Flash-памятью емкостью 256 кбайт и более, включает контроллер внешней статической памяти (Flexible
Static-Memory Controller, FSMC), поддерживающий микросхемы NOR, NAND и Compact
Flash-памяти и, кроме того, SRAM-память.
FSMC-контроллер поддерживает также режимы 8080 (Intel) и 6800 (Motorola) для организации параллельного интерфейса с LCD-контроллерами.
Кроме того, новые микроконтроллеры располагают контроллером для сменных носителей памяти, включая SD (Secure Digital),
SDIO (Secure Digital Input/Output) и MMC
(Multi-Media Card), которые соответствуют
требованиям спецификаций MultiMediaCard
System Specification 4.42 для 8-разрядных пересылок данных на частоте 48 МГц.
На рис. 1 показана блок-схема микроконтроллера семейства STM32, представляющая
организацию шин и подключение к ним памяти и периферии.
Рис. 1. Блок-схема микроконтроллера семейства STM32
Все представители семейства STM32 оснащены стандартным портом JTAG с встроенной отладочной системой.
Порт I2S поддерживает режимы ведущего
и ведомого, добавлена выборка аудиосигнала с частотами от 8 до 48 кГц и, кроме того,
добавлены 2-канальный 12-разрядный DAC
и встроенная макро-ячейка трассировки
(Embedded Trace Macrocell, ETM), улучшающая возможности отладки. Введена и дополнительная стандартная периферия, включающая до пяти UART/USART (до 4,5 Мбит/с), три
SPI (18 МГц) и два I2C (400 кГц) интерфейса.
Такое сочетание периферийных устройств
позволяет ориентировать микроконтроллеры
семейства STM32 на новые рынки, которым
необходимы надежная коммуникация и дополнительные возможности управления.
Новые микроконтроллеры линейки Performance
с объемом памяти свыше 256 кбайт оснащены, кроме того, двумя PWM-таймерами с семью выходами и возможностью управления временем запирания (dead-time).
Эти таймеры могут быть объединены с четырьмя стандартными 16-разрядными таймерами, что позволяет поддерживать до двадцати восьми PWM-сигналов. Все представители семейства оснащены 12-разрядными
АЦП с частотой преобразования 1 МГц с возможностью функции тройной выборки/хранения. Число каналов АЦП в микроконтроллерах линейки Access составляет 10 или 16
(один модуль АЦП), микроконтроллеры линейки Performance имеют два независимых
модуля АЦП с общим числом аналоговых
входов 2×10 или 2×16.
Такой набор модулей PWM и АЦП позволяет реализовать одновременное управление
сразу двумя 3-фазными бесколлекторными
двигателями.
Все микроконтроллеры линейки Performance
имеют в своем составе контроллеры коммуникационных интерфейсов последовательной передачи по стандарту CAN и USB
(12 Мбит/с).
Новые микроконтроллеры семейства
STM32 поставляются в корпусах LQFP64,
LQFP/BGA100 и LQFP144/BGA144. Версии
с объемом флэш-памяти в 32 или 64 кбайт
размещены в новом компактном корпусе
QFN36 (6Q6 мм).
Рис. 2. Матрица номенклатуры микроконтроллеров семейства STM32
На данный момент номенклатура микроконтроллеров семейства STM32 (рис. 2), в целом, состоит из 46 устройств линеек Access
и Performance. Основные характеристики
этих микроконтроллеров представлены в таблице.
Таблица. Характеристики 32-разрядных микроконтроллеров на основе ядра CORTEX M3
Тип прибора | F такт, МГц | Осн. гене- ратор такт., МГц | Встроенные RC-генераторы | Гене- ратор час тоты 32 кГц | Flash-память прог рамм, кбайт | RAM, кбайт | DMA, кана- лов | ADC, количество (каналов × разрядов) | Таймеров × разрядов (IC/OC/PWM) | 24-разр. счетчик обратн. счта | Прочие таймеры | USART (IrDa/ISO7816) | USB | CAN | Прочие последова- тельные интерфейсы | Прим. | Вывод Vbat | I/O выводов (с большим током) | Диапазон рабоч. темп., °C | Режимов энерго- сбер. | Напряжение питания, В | Корпус |
Линейка Access | ||||||||||||||||||||||
STM32F101T6 | 36 | 4–16 | 8 МГц/ 32 кГц | 32 | 6 | 7 | 1×(10×12) | 2×16 (8/8/8) | + | 2×WDG, RTC | 2 | 1×SPI, 1×I2C | Встроенные функции POR, PDR и PVD | + | –40…85/105 | 3 | 2–3,6 | VFQFPN 36 6×6×1,0 PITCH 0.50 | ||||
STM32F101T8 | 64 | 10 | 3×16 (12/12/12) | |||||||||||||||||||
STM32F101C6 | 36 | 4–16 | 8 МГц/ 32 кГц | + | 32 | 6 | 7 | 1×(10×12) | 2×16 (8/8/8) | 2×WDG, RTC | 2 | 1×SPI, 1×I2C | Встроенные функции POR, PDR и PVD | + | 3 | 2–3,6 | LQFP 48 7×7×1,4 1 | |||||
STM32F101C8 | 64 | 10 | 3×16 (12/12/12) | + | 3 | 2×SPI, 2×I2C | ||||||||||||||||
STM32F101CB | 128 | 16 | 3 | 2–3,6 | LQFP 64 10×10×1,4 1 | |||||||||||||||||
STM32F101R6 | 36 | 4–16 | 8 МГц/ 32 кГц | + | 32 | 6 | 7 | 1×(16×12) | 2×16 (8/8/8) | + | 2×WDG, RTC | 2 | 1×SPI, 1×I2C | Встроенные функции POR, PDR и PVD | + | |||||||
STM32F101R8 | 64 | 10 | 3×16 (12/12/12) | 3 | 2×SPI, 2×I2C | 3 | 2–3,6 | LQFP 100 14×14×1,4 1 | ||||||||||||||
STM32F101RB | 128 | 16 | ||||||||||||||||||||
STM32F101V8 | 36 | 4–16 | 8 МГц/ 32 кГц | + | 64 | 10 | 7 | 1×(16×12) | 3×16 (12/12/12) | + | 2×WDG, RTC | 3 | 2×SPI, 2×I2C | Встроенные функции POR, PDR и PVD | + | |||||||
STM32F101VB | 128 | 16 | ||||||||||||||||||||
Линейка Performance | ||||||||||||||||||||||
STM32F103T6 | 72 | 4–16 | 8 МГц/ 32 кГц | + | 32 | 10 | 12 | 2×(10×12) | 3×16 (12/12/12) | + | 2×WDG, RTC | 1+HS | + | + | 1×SPI, 1×I2C | Встроенные функции POR, PDR и PVD, 1xHS USART 4,5 Мбит/с | + | –40…85/105 | 3 | 2–3,6 | VFQFPN 36 6×6×1,0 PITCH 0.50 | |
STM32F103T8 | 64 | 20 | 4×16 (16/16/18) | |||||||||||||||||||
STM32F103C6 | 72 | 4–16 | 8 МГц/ 32 кГц | + | 32 | 10 | 12 | 2×(10×12) | 3×16 (12/12/14) | + | 2×WDG, RTC | 1+HS | + | + | 1×SPI, 1×I2C | Встроенные функции POR, PDR и PVD, 1xHS USART 4,5 Мбит/с | + | 3 | 2–3,6 | LQFP 48 7×7×1,4 1 | ||
STM32F103C8 | 64 | 20 | 4×16 (16/16/18) | 2×SPI, 2×I2C | ||||||||||||||||||
STM32F103CB | 128 | 20 | 2+HS | 3 | 2–3,6 | LQFP 64 10×10×1,4 1 | ||||||||||||||||
STM32F103R6 | 72 | 4–16 | 8 МГц/ 32 кГц | + | 32 | 10 | 12 | 2×(16×12) | 3×16 (12/12/14) | + | 2×WDG, RTC | 2+HS | + | + | 1×SPI, 1×I2C | Встроенные функции POR, PDR и PVD, 1xHS USART 4,5 Мбит/с | + | 3 | 2–3,6 | LFBGA 100 10×10×1,7 F10x10 0.8, TQFP 100 14×14×1,4 1 | ||
STM32F103R8 | 64 | 20 | 4×16 (16/16/18) | 2×SPI, 2×I2C | ||||||||||||||||||
STM32F103RB | 128 | 20 | ||||||||||||||||||||
STM32F103V8 | 72 | 4–16 | 8 МГц/ 32 кГц | + | 64 | 20 | 12 | 2×(16×12) | 4×16 (16/16/18) | + | 2×WDG, RTC | 2+HS | + | + | 2×SPI, 2×I2C | Встроенные функции POR, PDR и PVD, 1xHS USART 4,5 Мбит/с | + | |||||
STM32F103VB | 128 | 20 |
Среда разработки для микроконтроллеров
семейства STM32 фирмы STMicroelectronics
позволяет строить применения на стандартном ядре с учетом мощного набора программных и аппаратных средств. Другими
популярными интегрированными средами
проектирования, предоставляемыми третьими разработчиками, являются uVision3 (Keil),
EWARM (IAR), RAISONANCE и др.
Фирма STMicroelectronics (www.st.com) для
поддержки своей продукции предоставляет
разработчикам бесплатный набор драйверов
всех стандартных блоков и УВВ, от портов
ввода/вывода и таймеров до блоков CAN, I2C,
внешней шины, SPI, UART, АЦП и др., а также бесплатные библиотеки для векторного
управления электродвигателями, в том числе асинхронными с короткозамкнутым ротором.
В состав средств поддержки разработчиков
входит новая оценочная плата от фирмы ST,
поддерживающая самые последние модели
и стартовые наборы от третьих поставщиков — IAR, KEIL, HITEX, RAISONANCE.
Новая библиотека STM32 | ООО «ДИДЖИКОМ»
Оригинал статьи:
http://www.st.com/stonline/stappl/cms/press/news/year2008/p2336.htm
STMicroelectronics анонсировала новую библиотеку для микроконтроллеров семейства STM32 MCU, открыв новые возможности DSP применений для разработчиков.
DSP библиотека находится в свободном доступе на сайте компании в разделе User Manual: http://www.st.com/mcu/familiesdocs-110.html.
Компания STMicroelectronics, мировой лидер по производству микроконтроллеров, анонсировала новую библиотеку DSP для микроконтроллеров на базе нового ядра ARM Cortex-M3 (семейство STM32). Предлагаемая библиотека, позволяет разработчикам использовать преимущество микроконтроллеров семейства STM32 и осуществлять функции по обработке сигнала и контролю в том же ядре.
DSP библиотека является бесплатной, не требует лицензирования и обладает большим количеством ценных функций, которые могут быть вызваны из приложений написанных на языке Си или на ассемблере.
Данная библиотека включает в себя PID контроллер, функции преобразования Фурье, и широкий выбор цифровых фильтров, таких как 16-бит FIR, IIR прямой формы , и IIR канонической формы. Все функции готовы к использованию, легко интегрируются в систему и являются задокументированными для поддержки надежности ПО и ускорения разработки конечного изделия.
Воспользовавшись преимуществом потенциальных возможностей по обработке сигнала с помощью набора команд на базе усовершенствованного ядра ARM Cortex-M3 , функции библиотеки достигают высокого уровня по скорости выполнения поставленных задач. Такие операции, как умножения с накоплением или аппаратного деления могут быть выполнены за 2 такта. Демонстрация запуска микроконтроллера STM32F103 Performance Line MCU при выполнении преобразования Фурье на 256 точек в 16-ти разрядном блоке radix-4 составляет 362 µs.
Новые библиотеки для DSP применений могут быть использованы обычным инструментарием для STM32,производимым фирмами IAR,Keil и Raisonance.Набор данного инструментария поможет разработчикам снизить затраты и сократить время разработки для таких сложных применений как, цифровое управление преобразованием энергии, использующих солнечную энергию, импульсных источников питания, при обработке аудио и речевого сигналов, цифровая обработка изображения.
В дополнении к подготовке доступа в DSP библиотеку, также для разработчиков являются выгодными встроенные преимущества платформы STM32, такие как низкое энергопотребление и развитая периферия. К развитой периферии относятся 2-х канальные 12-разрядный ЦАП , 12-разрядный АЦП со скоростью выборки 1 МГц и 16-ти разрядный ШИМ контроллер.
На данный момент доступно две линейки микроконтроллеров: линейка “Access Line” с тактовой частотой 36 МГц и линейка “Performance Line” с тактовой частотой 72 МГц. Приборы выпускаются с объемом флэш-памяти от 16Кбайт до 512 Кбайт.
В августе 2008 года, компания STMicroelectronics представила новую линейку контроллеров с USB интерфейсом, которые работают на частоте 48 МГц и имеют объем памяти до 128 Кбайт флэш.
В настоящее время семейство STM32 насчитывает 60 вариантов микроконтроллеров, в большинстве случаев pin-to-pin совместимых, имеющих единую систему команд и необходимый набор инструментов для разработки и отладки. Благодаря этому, можно выбрать необходимый микроконтроллер для решения поставленных задач.
Сравнение микроконтроллеров Arduino и STM32
Все, кто пользуется микроконтроллерами от Ардуино, не понаслышке знакомы с вопросом экономии. Однако покупать китайские платы от неизвестных производителей в надежде, что хоть часть из них будет работать как заявлено, — не лучшая стратегия. Но среди множества бесполезных железок можно найти и достойную дешёвую замену arduino stm32, которая уже стала известной в своих кругах.
Давайте же разберёмся, достойна ли эта плата до 10 долларов с доставкой своей популярности, и что она способна дать пользователю, в сравнении с обычной Ардуино ПРО версии. Для этого проведём разбор обоих микроконтроллеров и составим список всех их достоинств с недостатками, чтобы вы могли ответить самому себе, стоит ли тратить деньги на arduino stm32 ide.
Плата STM32Сравнение технических характеристик
Давайте сравним две платы по их техническим параметрам:
Как мы видим — по многим параметрам ардуино проигрывает стм32. Ниже мы попробуем сравнить платы с разных сторон.
Плюсы и минусы микроконтроллеров Arduino и STM32
Начнём с достоинств преждевременного фаворита – самого ардуино. И главное из них известно всем, кто работал с данным чипом и его собратьями – собственная экосистема. Вы можете найти ответы на все возникающие вопросы в интернете, ведь база знаний и количество пользователей микроконтроллера даже в СНГ сегменте поражает. А это значит, что не придётся искать инструкции на английском, чего не скажешь об stm32f103c8t6 arduino. Большое количество пользователей подразумевает и широкий программный функционал, лишь крупинка которого предоставляется самими производителями.
Фанатская база ежедневно создаёт десятки библиотек, поэтому вы сможете воплотить в жизнь любую свою задумку. Некоторые схемные решения с микроконтроллером stm8s001j3 могут не порадовать новичков в этом деле, ардуино же старается максимально угодить новому пользователю и не предоставляет никаких сложностей.
Отсюда выплывают доступные шилды, простота использования, чем не могут похвастаться микроконтроллеры stm, и простое программирование под Atmel, без необходимости учить все тонкости языка на практике. Ну а более продвинутые оценят EEPROM, идущий с коробки, чем микроконтроллер stm32 не может похвастаться.
Однако, как и везде, есть свои недостатки:
- Низкий порог вхождения предполагает большое количество кривых и неотлаженных библиотек, работающих чуть ли не на последнем издыхании. Наткнувшись пару раз на такой софт и занимаясь его дебагингом в течение пары дней, вы решите, что проще написать собственный.
- Следующее преимущество stm32 ардуино не предоставляет нормальной отладки, из-за чего поиск ошибок в тех же кривых библиотеках и занимает так много времени.
- Нормальная производительность на Атмега – миф, и на деле вам потребуется изворачиваться и отказываться от многих функций продукта, чтобы он работал без подлагиваний. Нормальных планировщиков тоже не найти, а те, что можно подсоединить, съедают слишком много ресурсов. Из-за чего поделки на ардуино славятся кривым и лагающим интерфейсом с долгим временем отклика, если речь идёт о чём-то сложнее, чем электронная щеколда или конструкция из микроконтроллера и датчика движений.
- Множество кривой и откровенно бесполезной продукции на этих платах, в особенности от китайцев, лишь ухудшает имидж Ардуино.
- Нормальных книг по микроконтроллерам stm32, конечно, не найти, но и ардуино не предоставляет много профессиональной информации, помимо форумов, где отладкой занимаются сами пользователи.
- А сама среда разработки софта под неё требует просто невероятной производительности, не сравнимой ни с чем, что есть на рынке. Притом, куда идут все съедаемые ресурсы, не совсем понятно. А соответственно, виной всему – ужасающая оптимизация.
С другой стороны, перед пользователем встаёт arduino stm32f103 и arduino stm8 высокопроизводительный контроллер, упрощающий переход с микроконтроллера stm32 на микроконтроллер миландр и множеством периферии в дополнение.
Вы можете скачать файлы поддержки stm32 плат на Arduino IDE 1.8.x по этой ссылке.Проектировка плат значительно облегчается благодаря свободному ходу ног, стоковая среда разработки – достаточно мощный инструмент, а отладка изначально построена так, чтобы работать без нареканий даже в чужих средах. Вам предоставляют красочные графики и точки, не говоря уже о текстовой информации. Простой перенос кода, возможность запускать отдельные контроллеры в 41 Мбитной развёртке и наличие USB портов практически везде. Всё это может запросто завлечь более продвинутых разработчиков, но им стоит ознакомиться и с рядом недостатков:
- Высокий порог входа, для нормального пользования необходим хороший базис.
- Библиотеки также присутствуют, но большинство из них устарели или же сделаны каждым лично для себя. Проще уже создать собственную. Но если вспомнить о проблемах Ардуино, то вполне вероятно, что вы уже умеете это делать.
- Нижние пробелы и, в целом, некрасивая семантика в сравнении с простыми функциями конкурента.
- С99 это всё же далеко не С++, и вы сразу прочувствуете все сложности перехода. Однако многие утверждают, что спустя время – наоборот, рады такому нюансу.
- В целом, дешевизна плат в сравнении с Ардуино.
Возможности улучшения «юзабильности» STM32 до уровня Arduino
Однако не всё так плохо, как это может выглядеть. Изначально платы СТМ32 могут быть запрограммированы в среде разработки ардуино, хоть это и не лучшее решение. Следует помнить, что таким образом вы урезаете функционал, используете множество костылей и сами себе же стреляете в колено.
Однако, при переходе, это достаточно полезный нюанс, позволяющий более плавно осваивать все прелести. Семантика С99 может не прийтись по душе первые недели, оттого лучше найти транслятор, ибо среда Ардуино полностью уничтожает смысл покупки иного микроконтроллера.
Отладка микроконтроллера STM32
Как уже упоминалось, отладка микроконтроллера достойна отдельных тирад и восторженных откликов. Сразу с коробки вы получаете устройство, что свободно можно отлаживать в любой среде, переменные выводятся в консоль, а удобные графики информации позволяют визуально засечь баг. Это особенно удобно, когда объём кода просто не позволяет пройтись по нему пошагово.
После перехода на STM32 вы со временем и вовсе забудете о выводе данных через консоль, ведь на замену этих шаблонов придут куда более разумные и практичные решения.
В следующем материале мы по шагам как можно сделать так, чтобы использовать Arduino IDE для платы STM32.
STM32-h203
Заголовочная плата для микроконтроллера STM32F103RBT6 CORTEX-M3 https://www.olimex.com/Products/ARM/ST/STM32-h203/Цена | 12,95 EUR |
---|---|
10 — 49 штук | 11,66 EUR |
50 — 10000 штук | 10,36 EUR |
Процессор ARM Cortex-M3 — это последнее поколение процессоров ARM для встраиваемых систем.Он был разработан для обеспечения недорогой платформы, отвечающей потребностям реализации MCU, с уменьшенным количеством выводов и низким энергопотреблением, обеспечивая при этом выдающуюся вычислительную производительность и улучшенную реакцию системы на прерывания. 32-разрядный RISC-процессор ARM Cortex-M3 отличается исключительной эффективностью кода, обеспечивая высокую производительность, ожидаемую от ядра ARM, при объеме памяти, обычно присущем 8- и 16-разрядным устройствам.
Плата имеет внутри STM32F103 средней плотности со встроенным ядром ARM, которое совместимо со всеми инструментами и программным обеспечением ARM.Он сочетает в себе высокопроизводительный процессор ARM Cortex-M3 с широким спектром периферийных функций и расширенными возможностями ввода-вывода. STM32-h203 — это недорогая отладочная плата для новых микроконтроллеров STM32F103RBT6 на базе ST Cortex-M3. Эта плата — идеальное решение для разработки периферийных USB-устройств. Все порты микроконтроллера доступны на разъемах расширения.
ОСОБЕННОСТИ
- MCU: STM32F103RBT6 ARM 32-битный CORTEX M3 ™ с 128 Кбайт программной флеш-памятью, 20 Кбайт RAM, USB, CAN, x2 I2C, x2 ADC 12 бит, x3 UART, x2 SPI, x3 ТАЙМЕРА, работа до 72 МГц
- Стандартный разъем JTAG с разводкой контактов ARM 2×10 для программирования / отладки с помощью ARM-JTAG
- Разъем USB
- Пользовательская кнопка
- Кнопка RESET
- Светодиод состояния
- Блок питания LED
- Бортовой регулятор напряжения 3.3 В с током до 800 мА
Одинарный источник питания: получает питание от USB-порта или контакта удлинителя - Кварцевый генератор 8 МГц
- Кристалл 32768 Гц и разъем резервной батареи RTC
- Разъемы расширения для всех портов uC
- Печатная плата: FR-4, 1,5 мм (0,062 дюйма), паяльная маска, компонентная шелкография
- Размеры: 61 x 34 мм (2,4 x 1,3 дюйма)
- Расстояние между удлинителями: 25,4 мм (1 «)
Модули STM32 Botland — Магазин робототехники
STM32 — одна семья, много возможностей
Каждый микроконтроллер STM32 основан на архитектуре ARM и, таким образом, обеспечивает высокую вычислительную мощность в сочетании с большой гибкостью конструкции и режимами работы с низким энергопотреблением.Помимо самого ядра (которым может быть ARM Cortex-M3, M0, M0 +, M4 или даже M7), MCU также имеет широкий спектр встроенных периферийных устройств, которые влияют на его производительность. Это, например, высококачественные цифровые блоки (16-битные и 32-битные аппаратные таймеры со сложными функциями вывода и синхронизации, контроллеры DMA, графические контроллеры и аппаратные ускорители) и периферийные устройства со смешанными сигналами (включая 12-битные высокоскоростные преобразователи АЦП. , 12-битные преобразователи ЦАП, программно конфигурируемые операционные усилители и быстрые аналоговые компараторы).Некоторые из высокопроизводительных устройств включают также сопроцессор DSP и арифметические блоки с плавающей запятой, что позволяет разработчику выполнять сложные задачи цифровой обработки сигналов в соответствии с потребностями проектирования, связанными с мультимедиа и измерениями (например, обработка звука, цифровая фильтрация или вычисление DFT. ). Семейства STM32 L1, STM32 L4 и STM32 L0 предназначены для приложений со сверхнизким энергопотреблением в области цифровых измерений, носимых устройств или сенсорных сетей с батарейным и безбатарейным питанием.
STM32 Discovery — платы для разработки начального уровня
STM32 Линия продуктов Discovery включает несколько недорогих, простых в использовании плат для различных микроконтроллеров (например, STM32 L1), оснащенных базовыми периферийными устройствами, а также высокопроизводительные многофункциональные платформы разработки для мультимедиа. -ориентированные приложения. Хорошим примером обоих типов плат Discovery являются STM32 F0DISCOVERY и STM32 F746G Discovery. Первый из них основан на популярном микроконтроллере STM32 F051 и включает в себя две кнопки (сброс и кнопку пользователя), четыре светодиодных индикатора (два доступны для пользовательского приложения) и множество выводов GPIO и питания.Вторая — STM32 F746G — представляет собой сложную оценочную плату, оснащенную высокопроизводительной платой
.STM32 F746NGH6 MCU (216 МГц ARM Cortex-M7, 1 МБ флэш-памяти и 340 кБ ОЗУ), встроенная внешняя память (128 МБ Quad SPI Flash и 128 МБ SDRAM), а также огромный набор периферийных устройств ( включая аудиовход и выход, разъем для камеры, стереоусилитель, два микрофона MEMS и слот microSD). Плата также содержит 4,3-дюймовый цветной сенсорный экран 480 x 272 пикселей, позволяющий легко разрабатывать высокоуровневые графические приложения.
STM32 Nucelo — Arduino-совместимые оценочные платы и готовые к использованию модули
Если вы хотите начать разработку своих устройств на базе микроконтроллера STM32 , вы также можете выбрать одну из множества оценочных плат STM32 Nucleo. По сути, они делятся на три продуктовые линейки. Первый содержит модули небольшого форм-фактора (например, STM32 NUCLEO-F031K6) с основными периферийными устройствами, включая три светодиода, кнопку сброса и порт micro USB для программирования и питания.Более продвинутые модули, такие как STM32 NUCLEO-F446RE, также содержат слоты, совместимые с Arduino, которые позволяют использовать экраны Arudino в экосистеме STM32 . Самые продвинутые оценочные платы (например, STM32, NUCLEO-F429ZI) могут также включать в себя набор компьютерных интерфейсов (порт USB для приложений и разъем Ethernet RJ45) и множество заголовков GPIO. Одним из наиболее важных преимуществ плат STM32 Nucleo (а также плат Discovery, описанных ранее) является встроенный ST-Link (обычно ST-Link / V2), доступный в каждом отдельном модуле.Это позволяет вам немедленно начать разработку без необходимости покупать какие-либо внешние программисты / отладчики.
STM32 RTOS | SAFERTOS для процессоров ST
Безопасное обновление прошивки
РешениеST для безопасной загрузки (SB) и безопасного обновления прошивки (SFU) позволяет обновлять встроенную программу микроконтроллера STM32 новыми версиями прошивки. Процесс обновления выполняется безопасным способом, чтобы предотвратить несанкционированные обновления и доступ к конфиденциальным данным на устройстве.
Кроме того, безопасная загрузка ST (службы корневого доступа) проверяет и активирует механизмы безопасности STM32, которые подтверждают подлинность и целостность кода пользовательского приложения перед каждым выполнением, гарантируя невозможность запуска недопустимого или вредоносного кода. Основные характеристики:
- Безопасная загрузка / корень доверия;
- Безопасное и надежное обновление прошивки;
- Схема симметричной криптографии AES-GCM ;.
- Secure Engine Services.
Для получения дополнительной информации перейдите по ссылке http: // www.st.com/stm32trust
STM32 Экосистема куба
STM32CubeMX — это программный инструмент, способный генерировать C-код инициализации для микроконтроллеров STM32 на основе графического пользовательского интерфейса. STM32Cube включает API уровня аппаратной абстракции (HAL) и нижнего уровня (LL) для периферийных устройств STM32, промежуточного программного обеспечения и компонентов RTOS. FreeRTOS предустановлен в STM32Cube, что позволяет автоматически создавать проекты встроенного программного обеспечения, использующие FreeRTOS. Эти программные проекты можно легко преобразовать для использования с OPEN RTOS или SAFE RTOS .
STM32Cube состоит из (можно использовать вместе или независимо):
STM32CubeMX, включая:
- Конфигурация Генерация кода C для мультиплексирования контактов, дерева синхронизации, настройки периферийных устройств и промежуточного программного обеспечения с помощью графических мастеров
- Генерация готовых проектов IDE для цепочек инструментов интегрированной среды разработки
- Расчет энергопотребления для заданной пользователем последовательности приложений
- Прямой импорт встроенных программных библиотек STM32 Cube из st.com
- Встроенное средство обновления для поддержания актуальности STM32CubeMX
STM32Cube MCU Пакет, включающий:
- Уровень аппаратной абстракции (HAL), обеспечивающий переносимость между различными устройствами STM32 через стандартные вызовы API.
- Низкоуровневые (LL) API, легкий, оптимизированный, ориентированный на экспертов набор API, предназначенный как для повышения производительности, так и для эффективности во время выполнения.
- Набор компонентов промежуточного программного обеспечения, включая FreeRTOS, библиотеку USB, файловую систему, стек TCP / IP, библиотеку датчиков касания или графическую библиотеку (в зависимости от серии MCU).
Для получения дополнительной информации перейдите по ссылке http: // www.st.com/stm32cube
Начало работы с STM32 | СТМ32-базовый проект
Добро пожаловать в первое руководство из серии руководств. Это руководство предназначено для новичков (любителей, студентов), которые хотят начать работу с микроконтроллерами STM32, но не знают, как , как , или , где , чтобы начать работу.
Это руководство дает вам обзор доступного аппаратного и программного обеспечения для работы с микроконтроллерами STM32.Кроме того, он кратко познакомит вас с семейством микроконтроллеров STM32.
Все руководства, кроме этого, предполагают, что вы будете использовать проект на основе STM32. Чтобы следовать приведенным ниже руководствам, вам потребуется базовое понимание языка программирования C. Предварительный опыт работы со встроенной платформой не требуется.
Введение в STM32
STM32 не относится к одному конкретному микроконтроллеру. Это название, которое STMicroelectronics дала семейству микроконтроллеров на базе ARM Cortex-M.Само семейство STM32 можно разделить на несколько групп, которые, в свою очередь, можно разделить на серии.
В настоящее время семейство STM32 состоит из пятнадцати серий. Эти серии сгруппированы в четыре группы: High Performance, Mainstream, Ultra Low Power и Wireless. В следующем списке кратко описывается каждая серия:
- STM32F0 (Mainstream)
На базе процессора Arm Cortex-M0. Оптимизирован для низкой стоимости. Создан для конкуренции с 8-битными и 16-битными платформами. - STM32F1 (Mainstream)
На базе процессора Arm Cortex-M3. Общее назначение. - STM32F2 (высокая производительность)
На основе процессора Arm Cortex-M3. Общее назначение. Оптимизирован для высокой производительности. - STM32F3 (Mainstream)
На основе процессора Arm Cortex-M4 с инструкциями FPU и DSP. Оптимизирован для приложений со смешанными сигналами. - STM32F4 (высокая производительность)
На основе процессора Arm Cortex-M4 с инструкциями FPU и DSP.Оптимизирован для высокой производительности. - STM32F7 (высокая производительность)
На основе процессора Arm Cortex-M7 с инструкциями FPU и DSP. Оптимизирован для высокой производительности. Контактная совместимость с серией STM32F4. - STM32G0 (Mainstream)
На базе процессора Arm Cortex-M0 +. Оптимизирован для повышения эффективности. Создан для конкуренции с 8-битными и 16-битными платформами. - STM32G4 (Mainstream)
На основе процессора Arm Cortex-M4 с инструкциями FPU и DSP.Оптимизирован для приложений со смешанными сигналами. Преемник серии STM32F3. - STM32H7 (высокая производительность)
На основе процессора Arm Cortex-M7 с инструкциями FPU и DSP. Некоторые устройства имеют второй сопроцессор на базе Arm Cortex-M4. - STM32L0 (сверхнизкое энергопотребление)
На базе процессора Arm Cortex-M0 +. Оптимизирован для приложений с низким энергопотреблением. - STM32L1 (сверхнизкое энергопотребление)
На основе процессора Arm Cortex-M3.Оптимизирован для приложений с низким энергопотреблением. - STM32L4 (сверхнизкое энергопотребление)
На основе процессора Arm Cortex-M4 с инструкциями FPU и DSP. Оптимизирован для приложений с низким энергопотреблением. - STM32L4 + (сверхнизкое энергопотребление)
На основе процессора Arm Cortex-M4 с инструкциями FPU и DSP. Оптимизирован для приложений с низким энергопотреблением. Более высокая производительность, чем у серии STM32L4. - STM32L5 (сверхнизкое энергопотребление)
На базе процессора Arm Cortex-M33.Оптимизирован для приложений с низким энергопотреблением. Повышенная безопасность. - STM32WB (беспроводной)
На основе процессора Arm Cortex-M4 с инструкциями FPU и DSP. Имеет второй процессор Arm Cortex-M0 + в качестве сетевого процессора. Поддерживает стандарты беспроводной связи Bluetooth 5 и IEEE 802.15.4.
Оборудование
Для начала вам понадобится хотя бы одна плата разработки. Без платы разработки вы не сможете правильно запускать или отлаживать свой код. Если у вас уже есть макетная плата, вы можете пропустить эту главу.
Микроконтроллеры
Семейство STM32 состоит из множества различных микроконтроллеров. Новичку сложно выбрать один. К счастью, большинство вещей, которые вам нужно изучить в первую очередь, являются общими для всех микроконтроллеров семейства STM32. Это означает, что вы можете начать практически с любого микроконтроллера STM32.
Есть две серии, которые лучше подходят для начинающих, чем другие серии. Серии STM32F1 и STM32F4. А причина проста:
Обе серии существуют уже давно и до сих пор популярны среди любителей.Это означает, что для устройств этой серии доступно много ресурсов. Кроме того, устройства серии STM32F1 не такие сложные, как большинство других частей.
Макетные платы
Большинство плат для разработки предназначены для работы с минимальным количеством компонентов. Они разработаны таким образом, чтобы быть максимально дешевыми и никоим образом не ограничивать пользователя. Есть также платы с дополнительными компонентами, такими как светодиоды, датчики и память.
Большинство контактов, если не все, микроконтроллера открываются через заголовки для облегчения доступа.Также есть как минимум один выделенный заголовок для подключения отладчика.
Макетные платы производятся разными партиями. STMicroelectronics предлагает три различных диапазона плат для разработки:
- Платы Nucleo
Эти платы очень похожи на платы Arduino. В них есть только микроконтроллер и встроенный отладчик ST-Link. Доступны три форм-фактора. - Комплекты Discovery
Все эти платы содержат устройства ввода и вывода в дополнение к микроконтроллеру.Эти платы также поставляются со встроенным отладчиком ST-Link. - Оценочные платы
Эти платы очень обширны и содержат множество дополнительных устройств и интерфейсов в дополнение к микроконтроллеру.
Есть также много плат, которые можно купить на Ebay и AliExpress. Самыми популярными из них являются Blue Pill и Black Pill. Последний является улучшенной версией первого.
Рекомендации
Платы Nucleo и Discovery очень хорошо подходят для абсолютных новичков.Они гарантированно работают правильно и включают встроенный отладчик. И все это по доступным ценам. Если у вас очень ограниченный бюджет, вы можете купить одну из китайских плат для разработки. Для начинающих рекомендуются следующие доски:
- NUCLEO-F103RB
На этой плате установлено устройство STM32F103RBT6 с 128 КБ флэш-памяти. - STM32F407G-DISC1
На этой плате установлено устройство STM32F407VGT6 с 1024 КБ флэш-памяти. - Black Pill
На этой плате установлено устройство STM32F103C8T6 с 64 КБ флэш-памяти.Не забудьте также купить клон ST-Link для отладки и прошивки.
Программное обеспечение
Если вы хотите начать работу с проектом на базе STM32, вам не нужно делать много выбора со стороны программного обеспечения. Проект на базе STM32 разработан для использования с GNU Arm Embedded Toolchain. STM32-base можно использовать с любимым редактором кода. Рекомендация для редактора — Visual Studio Code.
Другое программное обеспечение, обсуждаемое в этой главе, можно использовать, если вы не хотите использовать проект на основе STM32.Другое программное обеспечение обсуждается, чтобы дать вам лучший обзор всего доступного программного обеспечения для микроконтроллеров STM32.
IDE
IDE — это интегрированная среда разработки. Обычно это означает, что после установки IDE готова к использованию без каких-либо дополнительных действий. IDE устанавливают все необходимое программное обеспечение, такое как компиляторы и драйверы, после их установки.
Некоторые IDE бесплатны, для других требуется покупка лицензии. Перечисленные здесь IDE потенциально интересны новичкам и любителям, поскольку они бесплатны.Полный обзор доступных IDE см. На веб-сайте ST.
- Arm Keil MDK — Бесплатно для серий STM32G0, STM32F0 и STM32L0 (Windows)
- PlatformIO IDE — Бесплатная (Windows, Linux, macOS)
- STM32CubeIDE — бесплатно (Windows, Linux, macOS)
- Segger Embedded Studio — бесплатно для некоммерческого использования (Windows, Linux, macOS)
- SW4STM32 — Бесплатно (Windows, Linux, macOS)
Платформы
Платформыпредлагают, помимо IDE, собственный API для управления устройством.Подобные платформы обычно предназначены для создания прототипов. Для микроконтроллеров STM32 доступны две платформы.
Первый — STM32duino. Эта платформа реализует хорошо известный Arduino API для микроконтроллеров STM32. Его можно использовать с Arduino IDE.
Второй — Arm Mbed. Эта платформа поддерживает не только микроконтроллеры STM32. Он поддерживает широкий спектр устройств от разных производителей. Mbed включает ОС, специально разработанную для приложений Интернета вещей.Он имеет как облачную IDE, так и загружаемый вариант.
Другое
ST предлагает CMSIS и HAL для каждой серии устройств. CMSIS содержит все определения регистров и периферии, необходимые для использования доступных периферийных устройств на микроконтроллере. HAL — это библиотека более высокого уровня, которая предлагает переносимость кода между различными сериями. Код CMSIS и HAL распространяется в так называемых пакетах STM32Cube.
Популярная альтернатива официальной CMSIS с открытым исходным кодом — libopencm3.Этот проект направлен на создание библиотеки прошивки с открытым исходным кодом для микроконтроллеров Arm Cortex-M. Поддерживаются не все серии STM32.
ПлатформаSTM32 (STM) — FED4SAE
Эти платформы основаны на семействе процессоров STM32. Семейство 32-разрядных флэш-микроконтроллеров STM32 на базе процессора ARM Cortex ™ -M разработано, чтобы предложить пользователям MCU (микроконтроллеры) новые степени свободы.
Он предлагает 32-разрядную линейку продуктов, которая сочетает в себе высокую производительность, возможности работы в реальном времени, цифровую обработку сигналов и маломощную работу при низком напряжении, сохраняя при этом полную интеграцию и простоту разработки.Беспрецедентный и широкий спектр устройств STM32, основанных на ядре отраслевого стандарта и сопровождаемых обширным набором инструментов и программного обеспечения, делает это семейство продуктов идеальным выбором как для небольших проектов, так и для целых платформенных решений. Для поддержки этого семейства процессоров доступно большое количество плат для оценки и разработки.
Эти платы доступны либо от ST-F, либо от других партнеров из экосистемы STM32.
Платформа STM32 может адресовать следующие области приложений: автоматизация (например,грамм. Человеко-машинный интерфейс, программируемый логический контроллер, решение для управления энергопотреблением для промышленной робототехники или мобильной робототехники), строительная техника (например, управление системами отопления, вентиляции и кондиционирования воздуха, освещением, ставнями, воротами, дверями, приборами, системами безопасности и наблюдения…), коммуникации и сети (например, системы, обеспечивающие более эффективные, быстрые и более безопасные решения для потоков голоса, данных и мультимедиа, основанные на IP и других протоколах), здравоохранение и благополучие (например, клиническая диагностика и терапия, медицинская визуализация…), бытовая техника и питание инструменты (например,грамм. подсистемы управления двигателем) и транспорта (электроника кузова автомобиля, системы активной и пассивной безопасности, решения для рулевого управления и шасси, включая электрическое рулевое управление, адаптивное управление амортизаторами, рекуперацию энергии в электромобилях).
Для получения дополнительной информации о семействе STM32
32-разрядные микроконтроллеры ARM Cortex STM32: http://www.st.com/en/microcontrollers/stm32-32-bit-arm-cortex-mcus.html Микроконтроллеры
: http: // www.st.com/en/microcontrollers.html
STM32 — Проектная документация Zephyr
Обзор
Минимальная плата разработки STM32 — популярный и недорогой макетная коммутационная плата для процессора STM32F103x8. Там два варианта платы:
Синяя доска для таблеток
Черная таблетка
Приложения Zephyr могут использовать доску stm32_min_dev_blue или stm32_min_dev_black конфигурация для использования этих плат.
Минимальная плата разработки STM32
Как следует из названия, эти платы содержат минимум компонентов, необходимых для включите процессор. Для практического использования вам потребуется добавить дополнительные компоненты. и схемы, использующие, например, макетную плату.
Назначение контактов
Этот порт является отправной точкой для ваших собственных настроек, а не полным порт для конкретной платы. Большинство GPIO на SoC STM32 были выставлены во внешнем заголовке с метками шелкографии, соответствующими именам контактов SoC.
У каждого поставщика плат есть свои варианты отображения контактов на своих платах. внешние разъемы и размещение компонентов. Многие производители используют порт PC13 / PB12. для подключения светодиода, поэтому наш порт Zephyr поддерживает только это устройство. Дополнительная поддержка устройств оставлена на усмотрение пользователя.
Более подробная информация о подключении периферийных устройств и длинные статьи могут быть найдено на EmbedJournal.
Распиновку платы STM32 Minimum Development Blue Pill можно увидеть ниже.Один Black Pill похож:
Распиновкадля платы минимальной разработки STM32 Blue Pill Board
Подключение STLinkV2:
Плата может быть прошита с помощью STLinkV2 со следующими подключениями.
Штифт | STLINKv2 |
---|---|
G | ЗЕМЛЯ |
CLK | Часы |
IO | SW IO |
V3 | VCC |
Конфигурация загрузки
Конфигурация загрузки для этой платы настраивается с помощью перемычек на B0 (Boot 0) и B1 (загрузочный 1).Контакты B0 и B1 находятся между линиями логического 0 и 1. В шелкография на печатной плате читает BX- или BX + для обозначения логических линий 0 и 1 для B0 и B1 соответственно.
Пыльник 1 | Загрузочный 0 | Режим загрузки | Наложение |
---|---|---|---|
X | 0 | Основная флэш-память | Основная флеш-память выбрана в качестве загрузочного пространства |
0 | 1 | Системная память | Системная память выбрана в качестве загрузочного пространства |
1 | 1 | Встроенная SRAM | Встроенная SRAM выбрана в качестве загрузочного пространства |
Поддерживаемые функции
Конфигурация платы stm32_min_dev поддерживает следующие аппаратные функции:
Интерфейс | Контроллер | Драйвер / компонент |
---|---|---|
NVIC | на кристалле | вложенные векторные контроллер прерываний |
СИСТИК | на кристалле | системные часы |
UART | на кристалле | последовательный порт |
GPIO | на кристалле | гпио |
I2C | на кристалле | i2c |
ШИМ | на кристалле | ШИМ |
SPI | на кристалле | spi |
USB | на кристалле | USB-устройство |
АЦП | на кристалле | АЦП |
Другие аппаратные функции не поддерживаются ядром Zephyr.
Подключения и вводы / выходы
По умолчанию Zephyr Peripheral Mapping:
UART_1 TX / RX: PA9 / PA10
UART_2 TX / RX: PA2 / PA3
UART_3 TX / RX: PB10 / PB11
I2C_1 SCL / SDA: PB6 / PB7
I2C_2 SCL / SDA: PB10 / PB11
ШИМ_1_Ч2: PA8
SPI_1 NSS_OE / SCK / MISO / MOSI: PA4 / PA5 / PA6 / PA7
SPI_2 NSS_OE / SCK / MISO / MOSI: PB12 / PB13 / PB14 / PB15
USB_DC DM / DP: PA11 / PA12
ADC_1: PA0
Системные часы
Встроенный кристалл 8 МГц используется для создания системных часов 72 МГц с ФАПЧ.
Последовательный порт
Минимальная плата разработкиSTM32 имеет 3 U (S) ART. Вывод консоли Zephyr назначен на UART_1. Настройки по умолчанию: 115200 8N1.
Бортовые светодиоды
На плате есть один встроенный светодиод, который подключен к PB12 / PC13 на черном / синем варианты соответственно.
ОбзорST Microelectronics STM32 — iSYSTEM
STM32, STM32F030x4, STM32F030x6, STM32F030x8, STM32F030xC, STM32F031x4, STM32F031x6, STM32F038x6, STM32F042x4, STM32F042x6, STM32F048x6, STM32F051x4, STM32F051x6, STM32F051x8, STM32F058x8, STM32F070x6, STM32F070xB, STM32F071x8, STM32F071xB, STM32F072x8, STM32F072xB, STM32F078xB, STM32F091xB, STM32F091xC, STM32F098xC , STM32F100C4, STM32F100C6, STM32F100C8, STM32F100CB, STM32F100CD, STM32F100CE, STM32F100R4, STM32F100R6, STM32F100R8, STM32F100RB, STM32F100RC, STM32F100 RD , STM32F100RE, STM32F100V8, STM32F100VB, STM32F100VC, STM32F100VD, STM32F100VE, STM32F100ZC, STM32F100ZD, STM32F100ZE, STM32F101C6, STM32F101C8, STM32F101CB, STM32F101R6, STM32F101R8, STM32F101RB, STM32F101RC, STM32F101 RD , STM32F101RE, STM32F101T6, STM32F101T8, STM32F101V8, STM32F101VB, STM32F101VC, STM32F101VD, STM32F101VE, STM32F101ZC, STM32F101ZD, STM32F101ZE, STM32F103C6, STM32F103C8, STM32F103CB, STM32F103R6, STM32F 103R8, STM32F103RB, STM32F103RC, STM32F103 RD , STM32F103RE, STM32F103RF, STM32F103RG, STM32F103T6, STM32F103T8, STM32F103V8, STM32F103VB, STM32F103VC, STM32F103VD, STM32F103VE, STM32F103VF, STM32F103VG, STM32F103ZC, STM32F103ZD, STM32F103ZE, STM32F103ZF, STM32F103ZG, STM32F105R8, STM32F105RB, STM32F105RC , STM32F105V8, STM32F105VB, STM32F105VC, STM32F107RB, STM32F107RC, STM32F107VB, STM32F107VC, STM32F205RB, STM32F205RC, STM32F205RE, STM32F205RF, STM32F205RG, STM32F205VB, STM32F205VC, STM32F205VE, STM32F205VF, STM32F205VG, STM32F205ZC, STM32F205ZE, STM32F205ZF, STM32F205ZG, STM32F207IC, STM32F207IE, STM32F207IF, STM32F207IG , STM32F207VC, STM32F207VE, STM32F207VF, STM32F207VG, STM32F207ZC, STM32F207ZE, STM32F207ZF, STM32F207ZG, STM32F215RE, STM32F215RG, STM32F215VE, STM32F215VG, STM32F215ZE, STM32F215ZG, STM32F217IE, STM32F217IG, STM32F217VE, STM32F217VG, STM32F217ZE, STM32F217ZG, STM32F301C6, STM32F301C8 , STM32F301K6, STM32F301K8, STM32F301R6, STM32F301R8, STM32F302C6, STM32F302C8, STM32F302CB, STM32F302CC, STM32F302K6, STM32F302K8, STM32F302R6, STM32F302R8, STM32F302RB, STM32F302RC, STM32F302 RD , STM32F302RE, STM32F302VB, STM32F302VC, STM32F302VD, STM32F302VE, STM32F302ZD, STM32F302ZE, STM32F303C6, STM32F303C8, STM32F303CB, STM32F303CC, STM32F303K6, STM32F303K8, STM32F303R6, STM32F303R8, STM32F303RB, STM32F303RC, STM32F303 RD , STM32F303RE, STM32F303VB, STM32F303VC, STM32F303VD, STM32F303VE, STM32F303ZD, STM32F303ZE, STM32F334x4, STM32F334x6, STM32F334x8, STM32F373C8, STM32F373CB, STM32F373CC, STM32F373R8 , STM32F373RB, STM32F373RC, STM32F373V8, STM32F373VB, STM32F373VC, STM32F401xB, STM32F401xC, STM32F401xD, STM32F401xE, STM32F405RG, STM32F405VG, STM32F405ZG, STM32F407IE, STM32F407IG, STM32F407VE, STM32F407VG, STM32F407ZE, STM32F407ZG, STM32F410RB, STM32F411xC, STM32F411xE, STM32F415RG, Стм3 2F415VG, STM32F415ZG, STM32F417IE, STM32F417IG, STM32F417VE, STM32F417VG, STM32F417ZE, STM32F417ZG, STM32F427 * G, STM32F427 * I, STM32F429 * G, STM32F429 * I, STM32F437 * G, STM32F437 * I, STM32F439 * G, STM32F439 * I, STM32F446xC, STM32F446xE, STM32F469AE, STM32F469AG, STM32F469AI, STM32F469BE, STM32F469BG, STM32F469BI, STM32F469IE, STM32F469IG, STM32F469II, STM32F469NE, STM32F469NG, STM32F469NI, STM32F479AG, STM32F479AI, STM32F479BG, STM32F479BI, STM32F479IG, STM32F479II, STM32F479NG, STM32F479NI, STM32F745IE, STM32F745IG, STM32F745VE, STM32F745VG, STM32F745ZE, STM32F745ZG, STM32F746BE, STM32F746BG, STM32F746IE, STM32F746IG, STM32F746NE, STM32F746NG, STM32F746VE, STM32F746VG, STM32F746ZE, STM32F746ZG, STM32F756BG, STM32F756IG, STM32F756NG, STM32F756VG, STM32F756ZG, STM32F765xG, STM32F765xI, STM32F767BG, STM32F767IG, STM32F767II, STM32F767NG, STM32F767VG, STM32F767ZI, STM32F769AI, STM32F769BG, STM32F769BI, STM32F769IG, STM32F769I Я, STM32F769NG, STM32F769NI, STM32F777II, STM32F777NI, STM32F777VI, STM32F777ZI, STM32F778AI, STM32F779AI, STM32F779BI, STM32F779II, STM32F779NI, STM32H743BI, STM32H743II, STM32H743VI, STM32H743XI, STM32H743ZI, STM32L031x4, STM32L031x6, STM32L051x6, STM32L051x8, STM32L052x6, STM32L052x8, STM32L053x6, STM32L053x8, STM32L062x8, STM32L063x8, STM32L100C6, STM32L100R8, STM32L100RB, STM32L100RC, STM32L151C6, STM32L151C8, STM32L151CB, STM32L151CC, STM32L151QD, STM32L151R6, STM32L151R8, STM32L151RB, STM32L151 RD , STM32L151V6, STM32L151V8, STM32L151VB, STM32L151VC, STM32L151VD, STM32L151ZD, STM32L152C6, STM32L152C8, STM32L152CB , STM32L152QD, STM32L152R6, STM32L152R8, STM32L152RB, STM32L152V6, STM32L152V8, STM32L152VB, STM32L152VC, STM32L152VD, STM32L152ZD, STM32L162QD, STM32L162RC, STM32L162 RD , STM32L162RE, STM32L162VC, STM32L162VD, STM32L162VE, STM32L162ZD, STM32L162ZE, STM32L431xB, STM32L431xC, ST M32L432xB, STM32L432xC, STM32L433xB, STM32L433xC, STM32L442xC, STM32L443xC, STM32L471xE, STM32L471xG, STM32L475xC, STM32L475xE, STM32L6M475xC, STM32L475xE, STM32L4GM475xE, STM32L6GM475xE, STM32L6M475xE, STM32L47M475x0 .