Фильтр по тематике

Современные 32-разрядные ARM-микроконтроллеры серии STM32: графический генератор кода STM32CubeMX

В статье приведено описание программного инструмента STM32CubeMX визуальной графической подготовки и генерации программного кода на языке Си для 32-разрядных ARM-микроконтроллеров серии STM32 от компании STMicroelectronics.

25.12.2015 699 0
Современные 32-разрядные ARM-микроконтроллеры серии STM32: графический генератор кода STM32CubeMX

Введение

В настоящее время семейство микроконтроллеров STM32 включает в себя достаточно большой набор вариантов ядер: Cortex-M0, Cortex-M0+, Cortex-M3, Cortex-M4. При таком разнообразии микроконтроллеров встаёт вопрос о наличии инструмента для настройки частот тактирования, инициализации периферии микроконтроллеров и генерации кода для них.

Описание генератора кода

С целью облегчения труда программистов и ускорения разработки программ для микроконтроллеров семейства STM32 компания STMicroelectronics [1] создала специальное программное обеспечение под названием STM32CubeMX. Основная идея программного обеспечения STM32CubeMX как раз и заключается в предоставлении универсального инструмента для настройки и создания кода инициализации для микроконтроллеров STM32. Данный продукт позволяет осуществить:

  • назначение выводов с автоматическим разрешением конфликтов;
  • построение дерева тактирования с динамической проверкой конфигурации;
  • инициализацию периферии с проверкой параметров на корректность;
  • инициализацию питания с оценкой результирующего потребления.

Программный инструмент STM32CubeMX постоянно модернизируется. Его возможности расширяются путём обеспечения поддержки всё большего количества моделей микроконтроллеров. Данный программный инструмент и обновления для него всегда можно загрузить с официального сайта STMicroelectronics [1].

STM32CubeMX является частью программной платформы STM32Cube™, которая разработана для облегчения труда разработчика и сокращения времени написания программ для микроконтроллеров семейства STM32. Платформа STM32Cube™ включает в себя десятки примеров базовых программ, поддерживает библиотеки USB, Ethernet, FreeRTOS, FatFS и функцию расчёта энергопотребления микроконтроллеров с батарейным питанием.

С помощью данной платформы пользователь может генерировать проекты для сред разработки IAR Embedded Workbench, Keil uVision и Atollic TrueStudio. Также планируется поддержка GCC и других компиляторов.

Рассмотрим на конкретном примере, как можно применять данный инструмент на практике. На момент написания статьи генератор кода STM32CubeMX имел версию 4.4.0, для которой и приведено описание.

Первым делом необходимо скачать установочный файл генератора кода STM32CubeMX с официального сайта [1] и установить его на персональном компьютере с операционной системой Windows XP (или более новой) путём простого запуска установочного файла.

После установки программы и её запуска на экране монитора откроется окно начала работы.

Версию установленной программы можно посмотреть в меню «Help» с помощью программной кнопки «About» или одновременным нажатием кнопок «Alt» и «A».

С помощью меню «Help» можно также получить справку о программе, нажав клавишу «F1», проверить обновления программы, установить новые библиотеки и настроить процедуру об­новления.

Рассмотрим процедуру генерации нового проекта. Для этого необходимо в меню «File» выбрать «New project…». Через несколько секунд после этого откроется окно (см. рис. 1). Здесь необходимо выбрать серию, тип микроконт­роллера и его корпус (в закладке «MPU Selector») с помощью элементов выбора «Series», «Lines» и «Package» группы «MCU Filters». При необходимости здесь же можно задать минимальное количество выводов «IO» и размер памяти «Flash», «Ram» и «Eeprom» микроконт­роллера.

С помощью закладки «Board Selector», представленной на рисунке 2, можно выбрать используемую в будущем проекте отладочную плату. Например, «Discovery», «Nucleo» или «EvalBoard».

После выбора типа микроконтроллера и нажатия кнопки «Ok», программа STM32CubeMX откроет новое окно, в котором будут приведены все периферийные устройства микроконтроллера и аппаратные блоки в свёрнутом виде. Разворачивая списочный состав этих устройств, нужно отметить галочкой те устройства, которые необходимы в будущем проекте, как это показано на рисунке 3.

Здесь же можно настроить некоторые свойства периферии и порты ввода–вывода. При этом задействованные выводы периферийных устройств на изображении микроконтроллера в центре окна будут автоматически изменять свой цвет на зелёный. Первоначально незадействованные выводы являются неактивными и имеют серый цвет. Выводы питания по умолчанию окрашены в жёлтый цвет.

Нажатие закладки «Clock Configura­tion» откроет окно с архитектурой для настройки частот внутренней синхронизации микроконтроллера (см. рис. 4). В этом окне можно выбирать источники синхронизации и задавать различные коэффициенты деления частот.

В очередной закладке «Configura­tion», изображённой на рисунке 5, можно настроить выбранные ранее и отображённые в графической форме функциональные блоки ADC, DMA, GPIO, NVIC, RCC и другие.

Здесь же можно настроить функционирование периферии. Например, запустить АЦП по переполнению таймера или задать прерывания и связи контроллера прямого доступа к памяти. После выбора на этой закладке контроллера DMA1 или DMA2 программа STM32CubeMX, с учётом выбранной ранее периферии, предложит назначить источник запроса на копирование. Тут же можно указать и другие параметры копирования: циклическое или нормальное, направление копирования, требование инкремента адреса источника и приёмника и так далее.

В этой же закладке простым щелчком мыши можно настроить прерывания, открыв соответствующее окно, показанное на рисунке 6.

Список прерываний также согласован с выбранной ранее периферией. В этом окне можно задать уровень вложенности прерываний и, в соответствии с этим, присвоить разрешённому прерыванию группу и подгруппу. Подобным образом настраиваются блоки ADC, UART и другие.

Следующая закладка «Power Con­sumption Calculator» открывает окно, представленное на рисунке 7. Здесь можно проконтролировать режимы питания микроконтроллера и вычислить его энергопотребление.

Теперь, после всех проделанных манипуляций, можно сгенерировать программный код проекта, нажав на соответствующий элемент «Generate Code» в меню «Project». При этом откроется окно, показанное на рисунке 8, в котором необходимо заполнить название проекта, путь к нему и среду разработки проекта. В качестве среды разработки проекта можно выбрать «EWARM», «Keil MDK-ARM» или «TrueSTUDIO». Кроме того, в закладке «Code Generator» можно настроить опции генератора кода.

Наконец, после нажатия кнопки «Ok», STM32CubeMX приступит к генерации кода программы. При этом из Интернета в автоматическом режиме могут быть загружены недостающие модули и библиотеки.

Нажатие в последнем окне кнопки «Ok» приведёт к открытию среды разработки с программным кодом проекта. В нашем примере это среда разработки «Keil MDK-ARM», изображённая на рисунке 9.

Полученный программный код содержит все необходимые файлы и функции для рабочего проекта. Главный модуль программы находится в файле «main.c». Дополняя этот файл необходимыми для решения конкретной задачи командами, можно успешно завершить создание программы и сгенерировать в среде разработки «Keil MDK-ARM» программный код для загрузки в микроконтроллер.

Заключение

Таким образом, ПО STM32CubeMX позволяет программисту быстро создать заготовку для нового проекта на основе любого микроконтроллера семейства STM32 самым простым путём – с помощью мышки и оконных форм настройки, а не копировать куски программ из папки стандартной библиотеки с последующей доработкой их под свои задачи.

Литература

  1. www.st.com.

Если вам понравился материал, кликните значок — вы поможете нам узнать, каким статьям и новостям следует отдавать предпочтение. Если вы хотите обсудить материал —не стесняйтесь оставлять свои комментарии : возможно, они будут полезны другим нашим читателям!

25.12.2015 699 0
Комментарии
Рекомендуем
Новые усовершенствования аудиоусилителя на базе ОУ LM3886, включённого в мостовом режиме работы

Новые усовершенствования аудиоусилителя на базе ОУ LM3886, включённого в мостовом режиме работы

В статье описан двухканальный аудиоусилитель мощностью 40 Вт на базе четырёх мощных ОУ LM3886T, включённых в мостовом режиме работы, и двухканального предварительного усилителя на двух сдвоенных ОУ OPA1642 (или одного счетверённого ОУ OPA1644), имеющих высокие показатели динамических характеристик (скорость нарастания и полоса пропускания), которые почти на порядок превосходят аналогичные показатели инструментальных усилителей (ИУ) AD8295, применённых в аудиоусилителях, описанных в [1] и [2] и INA2128 в [3]. Благодаря применению ОУ OPA1642/OPA1644 и новым схемным решениям настоящий аудиоусилитель не только воспроизводит синусоидальный сигнал звукового диапазона частот, поданный на его вход с генератора, с малыми искажениями, но и (главное) имеет переходную характеристику, близкую к прямоугольной (без выбросов и последующей затухающей осцилляции), которая существенно повышает качество воспроизведения перкуссионных инструментов. В статье также описан новый и более простой преобразователь однополярного напряжения в двухполярное (или формирователь искусственной «земли») на базе ОУ LM675/TDA2050. Приведены схемы, разводка плат и внешний вид устройств аудиоусилителя, а также описаны результаты его работы и конструкция.
09.12.2025 СЭ №9/2025 26 0
«Трассировка пучка треков» – инструмент для творчества

«Трассировка пучка треков» – инструмент для творчества

Традиционно системы проектирования топологии печатных плат предоставляют разработчикам средства автоматической и интерактивной трассировки. Автоматические трассировщики позволяют получить какой-то вариант трассировки сразу для множества соединений, но разработчик практически не может повлиять на её качество. Интерактивная трассировка обеспечивает максимальный контроль за проводимым соединением, но приходится реализовывать соединения по очереди одно за другим, что, конечно же, замедляет процесс проектирования. Новый инструмент «Трассировка пучка треков» топологического редактора системы «Delta Design» позволяет реализовывать целое семейство соединений в виде пучка треков по маршруту, указанному пользователем в виде линии-эскиза. Таким образом, пользователь с одной стороны имеет возможности контроля за прохождением трасс, с другой – время проектирования сокращается за счёт реализации сразу множества соединений.
08.12.2025 СЭ №9/2025 45 0

ООО «ИнСАТ» ИНН 7734682230 erid = 2SDnjd8zAXZ
ООО «ИнСАТ» ИНН 7734682230 erid = 2SDnjeDFeN3
  Подписывайтесь на наш канал в Telegram и читайте новости раньше всех! Подписаться