Что такое технология stm32 nucleo
Перейти к содержимому

Что такое технология stm32 nucleo

  • автор:

Начало работы с STM32 Nucleo64: руководство для начинающих

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

Внешний вид проекта по началу работы с платой STM32 Nucleo64

Более «продвинутой» по сравнению с платой Arduino в этом плане является плата STM32F103C8 (Blue Pill), достаточно много проектов с которой мы рассмотрели на нашем сайте. Но в этой статье мы рассмотрим начало работы со сравнительно новым продуктом в семействе плат STM32 – платой разработки STM32 Nucleo64. Для понимания основ работы с платой STM32 Nucleo64 вы можете посмотреть обучающее видео по ней от авторов данной статьи (ссылка на источник приведена в конце статьи). Оно на английском языке, но достаточно понятное. В данном видео показана возможность программирования платы STM32 Nucleo64 с помощью платформы ARM Mbed, но в данной статье мы будем использовать вместо нее платформу от компании ST Microelectronics под названием TrueSTUDIO.

Примечание : существует достаточно много разновидностей платы STM32 Nucleo64, в данной статье мы будем использовать плату с обозначением NUCLEO-F030R8, отличающейся невысокой ценой. Но если даже у вас другая разновидность платы STM32 Nucleo64, то большинство моментов, описанных в данной статье, будет подходить и для нее.

Выбор платформы разработки для платы STM32 Nucleo64

Для работы с любым микроконтроллером (платой) необходима специализированная интегрированная среда разработки (Integrated Development Environment, IDE): для плат Arduino это Arduino IDE, для микроконтроллеров AVR – Atmel Studio, для микроконтроллеров PIC – MP Lab и т.д. Для работы с платой STM32 Nucleo64 необходима подходящая для нее IDE. Семейство плат STM32 основано на 32-битных микроконтроллерах и поддерживает следующие IDE и инструментальные средства:

  • IAR Embedded Workbench® for ARM® (EWARM);
  • MDK-ARM Keil;
  • TrueSTUDIO;
  • System Workbench for STM32.

В нашем проекте мы будем использовать платформу TrueSTUDIO для написания программы, ее компиляции и отладки поскольку она бесплатна для скачивания и может даже использоваться для коммерческих проектов без нарушения лицензии. Также мы будем использовать программу STM32CubeMX для облегчения работы с периферийными устройствами (ранее мы использовали данную программу для облегчения работы с платой STM32F103C8). Для загрузки программы (hex файла) в плату STM32 Nucleo64 можно использовать инструмент под названием STM32 ST-LINK, но в нашем проекте вместо него мы будем использовать TrueSTUDIO, которая имеет режим отладки (debug mode) и позволяет загружать hex файл непосредственно в платы STM32. Скачать TrueSTUIO и STM32CubeMX можно по следующим ссылкам:

Необходимые компоненты

  1. Отладочная плата STM32 Nucleo64 (купить на AliExpress).
  2. Резистор 1 кОм (купить на AliExpress).
  3. Светодиод (купить на AliExpress).
  4. Кнопка.
  5. Макетная плата.
  6. Соединительные провода.

Схема проекта

Схема для управления светодиодом с помощью платы STM32 Nucleo64 представлена на следующем рисунке.

Схема для управления светодиодом с помощью платы STM32 Nucleo64

Как вы уже, наверное, знаете, плата STM32 Nucleo64 имеет два набора контактов – по одному на каждой стороне, которые называются контактами ST Morpho.

В нашем проекте нам необходимо подключить светодиод к контакту PA5 порта PORTA, а кнопку – к контакту PC13 порта PORTC. Внешний вид собранной конструкции проекта показан на следующем рисунке.

Внешний вид собранной конструкции проекта

Также вместо внешних светодиода и кнопки можно использовать встроенные в плату светодиод и кнопку. Мы использовали внешние компоненты для большей наглядности.

Начало работы с платой STM32 Nucleo64 с помощью программы STM32CubeMX

Выполните следующую последовательность шагов.

Шаг 1. После установки запустите программу STM32CubeMX, в ней в селекторе плат выберите плату STM32.

Выбор в программе STM32CubeMX платы STM32

Шаг 2. После этого выполните поиск платы STM32 с названием NUCLEO-F030R8 и нажмите на появившуюся картинку платы. Если у вас другая разновидность платы STM32 Nucleo64, то выполните поиск по ее названию. Программа STM32CubeMX поддерживает все виды плат STM32 от компании ST Microelectronics.

Поиск в программе STM32CubeMX платы STM32 с названием NUCLEO-F030R8

Шаг 3. Затем нажмите на «yes» как показано на картинке ниже чтобы инициализировать все контакты платы в режим по умолчанию (default mode). В дальнейшем мы можем изменить их настройки по своему желанию.

Инициализация всех контактов платы STM32 в программе STM32CubeMX в режим по умолчанию

После нажатия на ‘Yes’ вы увидите экран как показано на рисунке ниже. Зеленый цвет контактов свидетельствует о том, что они установлены в режим по умолчанию.

Начало настройки контактов платы STM32 в программе STM32CubeMX

Шаг 4. Затем можно вручную сконфигурировать режим работы необходимых нам контактов. В нашем проекте мы будем включать светодиод с помощью кнопки, поэтому нам необходимо установить режим работы для контакта, к которому подключен светодиод, на вывод данных (output), а для контакта, к которому подключена кнопка – на ввод данных (input).

Для подключения светодиода в нашем проекте мы использовали контакт PA5, поэтому в программе STM32CubeMX мы установим для него режим GPIO_Output как показано на следующем рисунке.

Установка режима GPIO_Output для контакта PA5 в программе STM32CubeMX

Аналогичным образом мы установили для контакта PC13 режим GPIO_Input чтобы на нем можно было считывать состояние кнопки.

Установка режима GPIO_Input для контакта PC13 в программе STM32CubeMX

Также режимы работы контактов можно настроить на вкладке конфигурации (configuration tab) как показано на рисунке ниже.

Настройка режима контактов в программе STM32CubeMX на вкладке конфигурации

Шаг 5. На следующем шаге можно вручную настроить желаемую частоту работы микроконтроллера и контактов платы в зависимости от частоты внешнего или внутреннего генератора. По умолчанию используется внутренний кварцевый генератор на 8 MHz и при режиме PLL эта частота преобразуется в 48MHz. То есть по умолчанию контакты платы STM32 и ее микропроцессор работают на частоте 48MHz.

Настройка частоты работы микроконтроллера платы STM32

Шаг 6. Теперь перейдите в менеджер проектов (project manager), в котором введите имя для своего проекта, укажите его местоположение и выберите необходимые инструментальные средства (toolchain) или IDE. Мы в качестве IDE будем использовать TrueSTUDIO, поэтому выберем ее как показано на рисунке ниже.

Ввод настроек проекта в программе STM32CubeMX

Шаг 7. После этого нажмите на ссылку «Generate Code» (обведена красной линией на следующем рисунке).

Кнопка для генерации кода в программе STM32CubeMX

Шаг 8. После этого вы на экране увидите всплывающее окно, в нем нажмите на кнопку открытия проекта (open project). Но прежде чем выполнять данный шаг убедитесь в том, что вы установили TrueSTUDIO.

Кнопка для открытия проекта в программе STM32CubeMX

Программирование платы STM32 Nucleo64 с помощью TrueSTUDIO

После нажатия на кнопку открытия проекта в предыдущем пункте программа TrueSTUDIO запустится у вас автоматически. Если она запросит у вас местоположение проекта (workspace location) – укажите его, или используйте местоположение по умолчанию.

Указание местоположения проекта в программе TrueSTUDIO

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

Открытие исходных файлов проекта в программе TrueSTUDIO

После этого вы увидите код программы в TrueSTUDIO IDE. На левой стороне в папке ‘src’ вы увидите все файлы программы (с расширением .c), которые были сгенерированы для нас программой STM32Cube. В нашем проекте нам необходимо будет внести изменения только в файл main.c. Полный код данного файла с необходимыми изменениями приведен в конце нашей статьи.

Код файла main.c нашего проекта в программе TrueSTUDIO

Программа управления светодиодом для платы STM32 Nucleo64

Поскольку все необходимые файлы для нашего проекта были сгенерированы программой STM32CubeMX, нам необходимо просто задать для контакта светодиода режим работы на вывод данных, а для контакта кнопки – режим работы на ввод данных. Для этого необходимо отредактировать файл main.c.

Нам нужно дописать код для включения/выключения светодиода с помощью кнопки. Для этого нам необходимо дать осмысленные имена (инициализировать) контактам, к которым подключены кнопка и светодиод. Сначала сконфигурируем контакт 5 порта PORTA, к которому подключен светодиод.

Знакомство с платой NUCLEO STM32F767ZI

Очень рад вам сообщить, что у меня появилась очередная очень интересная отладочная плата — NUCLEO STM32F767ZI.

Данная плата является продуктом компании ST Microelectronics и представляет собой готовое решение для изучения вопросов программирования микроконтроллеров. Ценность плат Nucleo по сравнению с Discovery состоит в том, что данные платы не включают в себя массу различных компонентов кроме контроллера и на них практически ничего нет кроме контроллера и кварцевого резонатора, за исключением разве что некоторых мелочей. Смысл такой платы заклюается в том, что за счет вышеперечисленного у разработчика появляется возможность использовать практически все порты GPIO, так как они все свободны. Второй неоценимый плюс — это её цена. Она гораздо дешевле, чем у равноправных по контроллеру плат Discovery как раз засчёт того, что не приходится платить за отсутствующие дополнительные компоненты. Цена этой платы на данный момент в районе 40$.

Ну давайте посмотрим на данную плату (нажмите на картинку для увеличения)

NUCLEO STM32F401RE

Как мы видим, на плате присутствует очень много наружных конекторов, что позволяет нам активно пользоваться всеми функциями микроконтроллера, а также практически всем портами ввода-вывода, причем номера портов в данной плате в отличии от её предшественников, подписаны. Наружный конектор представляет собой свокупность выведенных наружу ножек контроллера, и на данные ножки по умолчанию не установлены разъёмы, то есть присутствуют пустые отверстия. Мы можем либо распаять удобные для нас любые конекторы с межпинным интервалом 2,54 мм, либо воспользоваться внутренними конекторами в виде разъёма типа ST Zio, который также включает полную поддержку разъёма Arduino-UNO V3 (A0-A5, D0-D15), а также дополнительных сигналов (A6-A8 и D16-D72). Микроконтроллер на плате установлен STM32F767ZIT6U, выполненный на новом ядре ARM Cortex-M7. Ну и также как на всех платах, здесь установлен программатор ST-Link/V2-1, который позволяет нам прошивать и отлаживать наш код в контроллере, а также, как у практически всех плат Nucleo, он позволяет без распайки дополнительной цепи кварцевого резонатора, пользоваться своим тактовым генератором основному микроконтроллеру.

Ну, про уникальные возможности контроллеров построенных на ядре M7 я уже неоднократно рассказывал и, думаю, повторять нет смысла, мы все прекрасно знаем о них. Также возможности или какие-то особенности данной платы мы увидим в будущих уроках в в процессе работы с данной платой, а работы предстоит немало. Это и Quad-SPI, и FMC, и прочие технологии. На Quad-SPI я немного остановлюсь. На данной плате он уникален тем, что мы к нему можем спокойно подключать уже внешние элементы, поддерживающие работу с ним. В плате Discovery F746 у нас такая возможность отсутствовала, так как там на ножки данной шины распаяна тестовая микросхема и использовать наружу мы их не могли. Пины, отвечающие за передачу данных ещё можно куда-то было ремапить, а пин такирования — нет. А без него никуда.

А теперь постепенно перейдём к практическому использованию. Для этого мы подключим данную плату посредством Data-кабеля типа USM Micro B. Так как мой персональный компьютер в своей практике повидал уже не мало плат на контроллерах STM32, то драйвер, соответственно установился автоматически. Если у вас это первая плата, то вам необходимо будет его скачать и установить. Об этом рассказано в предыдущих уроках и сложности никакой данный вопрос не представляет.

Теперь давайте узнаем, нет ли обновлений на прошивку программатора ST-Link. Порой могут приходить платы с немолодой прошивкой, вследствие чего могут быть всевозможные неполадки в программировании и работе платы. Поэтому запустим программу ST-LINK Utility и зайдём в пункт меню ST-LINK -> Firmare Update

image02

Запустится следующий диалог, в котором мы нажимаем пока единственную активную кнопку Device Connect, в результате нажатия на который при удачном соединении с программатором мы получим версию уже присутствующей у нас в нём прошивке, а также чуть ниже версию доступной прошивки

image03

Если у нас версия старее, чем предложенная, то нажимаем кнопку Yes и обновляемся. В нашем случае нам обновлять ничего не нужно. Поэтому просто закроем наш диалог. Также необходимо ни в коем случае не забывать о том, что версия ST-LINK Utility и версия ST-Link Upgrade тоже должна быть последняя. В противном случае её нужно скачать на сайте st.com и обновить. Именно так происходит в видеоуроке, который Вы можете посмотреть и ссылка на который есть в конце статьи.

Теперь давайте посмотрим прошивку самого контроллера, а не программатора. Для этого нажмем пункт меню Target -> Connect

image04

Вот такая вот прошивка

image05

Теперь непосредственно проверим плату в работе. Для этого запустим Cube MX.

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

image06

А подключены они, как мы видим, к ножкам портов PB7 и PB14.

Теперь можно создавать проект и настраивать его. Только выберем мы сегодня не контроллер а плату. Для этого в диалоге создания нового проекта перейдём на закладку Board Selector и, отфильтровав там нашу отладочную плату, выберем её (нажмите на картинку для увеличения)

image07_500

Нажмём ОК. У нас открылся проект и мы видим, что на визуальной схеме контроллера наши светодиоды уже включены на выход и обозначены

image08 image09

Так как тактирование платы осуществляется от генератора, который тактирует контроллер программатор, а в данном генераторе присутствует кварцевый резонатор на 8 МГц, то мы выберем вариант "Bypass Clock Source", так как кварцевый резонатор подключен не к нашему контроллеру и мы пользуемся именно внешним генератором

image10

Перейдём теперь в Clock Configuration и настроим там следующую конфигурацию (в видео сразу было неправильно, но мы поправимся уже на данном этапе, так как я тогда ещё не знал о существовании тактирования от генератора программатора)

image11

Теперь зайдём в Project -> Settings и добавим там следующие настройки и пути

image12

Нажмем ОК, затем сгенерируем и откроем проект в Keil, настроим программатор на авторезет и напишем в бесконечный цикл функции main() следующий исходный код

/* USER CODE BEGIN 3 */
HAL_GPIO_WritePin(GPIOB, LD3_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOB, LD2_Pin, GPIO_PIN_SET);
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOB, LD2_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOB, LD3_Pin, GPIO_PIN_SET);
HAL_Delay(500);

>
/* USER CODE END 3 */

Мы используем такие уникальные переменные для ножек портов, так как именно так они переопределены в Cube. Соберём код и прошьём контроллер платы.

Мы видим, что наши светодиоды попеременно мигают с частотой раз в секунду (суммарная задержка 500+500). Ура! Наша плата работает!

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

STM32 Nucleo

ST разродилось новой ардуинообразной платой Nucleo:

Вернее целой линейкой плат на разных МК:

ST Nucleo F103RB
STM32F103RBT6 microcontroller
ST Nucleo L152RE
STM32L152RET6 microcontroller
ST Nucleo F030R8
STM32F030R8T6 microcontroller
ST Nucleo F401RE
STM32F401RET6 microcontroller

На плате встроен ST-Link/2.

  • +6
  • 17 февраля 2014, 22:05

Комментарии ( 92 )

Так уже привезли 🙂 Уже поигрался… Впечатление пока нормальное. Програмируется очень просто — по подключению к усб появляется диск на который кидаеш бинарик прямо из бровсер ИДЕ… Как дописало — реконект и уже работает 🙂

Живу я часть года в Украине а часть в Чехии… Моментально я по рабочим делам в Чехии.

Интересно, как это будет соотноситься с семейством stm32discovery? Nucleo будем более потребительским вариантом? Потому что пока discovery мощнее и выводов больше.

Одна из проблем stm32discovery — нет единого удобного сайта. От my.st.com кровавые слёзы на глазах — так они и Nucleo тянуть на my.st.com?

Может лучше обратится к официальной документации, а не к комментариям wowa-на.

The ST-LINK/V2-1 makes the STM32 Nucleo boards mbed enabled.
The embedded ST-LINK/V2-1 supports only SWD for STM32 devices.

Features not supported on ST-LINK/V2-1:
–SWIM interface
– Minimum supported application voltage limited to 3 V

There are two different ways to use the embedded ST-LINK/V2-1 depending on the jumper
states:
•Program/debug the MCU on board
•Program/debug an MCU in an external application board using a cable connected to
SWD connector CN4

Обзор серии STM32 Nucleo Boards

Начиная обзор плат серии STM32 Nucleo необходимо обозначить место и роль этой серии в линейке продукции компании STMicroelectronics для полного понимания возможностей и раскрытия огромного потенциала использования этих устройств.

Компания STMicroelectronics является одним из мировых лидеров на рынке полупроводниковых устройств и по состоянию на 2019 год имеет:

годовую выручку 9,56 млрд долларов США.

46 000 сотрудников, из которых 7 800 в НИОКР.

Более 80 офисов продаж и маркетинга, обслуживающих более 100 000 клиентов по всему миру.

11 производственных площадок.

Располагая такой базой, компания ставит перед собой глобальные цели по максимальному присутствию на следующих перспективных рынках:

автотранспорта и сопутствующей инфраструктуры, в т.ч. систем управления электромобилями;

энергетическом, в т.ч. в плане повышения эффективности существующих технологий и развития возобновляемой энергетики;

коммуникаций и связи, в том числе IoT (интернет вещей) и 5G направлений.

STM32 является зарегистрированной торговой маркой STMicroelectronics для 32-битных микроконтроллеров (MCU, microcontroller unit) и микропроцессоров (MPU, microprocessor unit) общего назначения, построенных на базе Arm® Cortex® Cores и включающих в себя более 1000 вариаций их применения для различных целей и назначений.

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

Семейство 32-битных микроконтроллеров производства STMicroelectronics группируется в серии, в рамках каждой из которых используется одно и то же 32-битное ядро ARM, например, Cortex-M7F, Cortex-M4F, Cortex-M3, Cortex-M0+ или Cortex-M0. Каждый микроконтроллер состоит из ядра процессора (дизайн ядра ARM имеет множество настраиваемых опций, и компания обладая лицензией на IP процессора ARM от ARM Holdings, выбирает индивидуальную конфигурацию для каждого микроконтроллера, при этом добавляя свои собственные периферийные устройства к ядру микроконтроллера), статической RAM-памяти, флеш-памяти, отладочного и различных периферийных интерфейсов.

Серия STM32

Ядро ARM CPU

Серия плат микроконтроллеров STM32 Nucleo предназначена для прототипирования различного уровня сложности и разделена на 3 группы устройств по форм-фактору чипа и уровню производительности:

• Nucleo-32 — семейство микроконтроллеров в пакетах LQPF (Low Profile Quad Flat Pack, семейство корпусов микросхем, предназначенных для поверхностного монтажа и имеющих планарные выводы, расположенные по всем четырём сторонам) или QFN (Quad Flat Package, семейство корпусов микросхем, имеющих планарные выводы, расположенные непосредственно под микросхемой по всем четырём сторонам);

LQFP-32

• Nucleo-64 — семейство микроконтроллеров в пакете LQPF-64;

LQFP-64

• Nucleo-128 — семейство микроконтроллеров в пакете LQPF-144

LQFP-144

Вся серия представлена на следующей схеме и на данный момент состоит из 59 плат:

Унифицированный кодификатор позволяет быстро разобраться в названиях и определить принадлежность плат и их возможности:

NUCLEO-XXYY*T-Р(-Q)

Описание

XX

Серия микроконтроллера в STM32 Arm Cortex

YY

Линейка микроконтроллера в серии

К — для 32 pins LQFP-32

R — для 64 pins LQFP-64

Z — для 128 pins LQFP-128

Т

Объём памяти STM32 Flash:

• 4 для 16 Kbytes

• 6 для 32 Kbytes

• 8 для 64 Kbytes

• B для 128 Kbytes

• C для 256 Kbytes

• E для 512 Kbytes

• Z для 192 Kbytes

• E для 512 Kbytes

• H для 1.5 Mbytes

-P

STM32 с функцией внешнего SMPS (Switched Mode Power Supplies, импульсный источник питания с высоким КПД)

-Q

STM32 с функцией внутреннего SMPS

Пример: NUCLEO-L496ZG-P

L4 — серия STM32L4 Series

96 — линейка STM32L496

Z — пакет 144 pins

G — память 1 Mbyte

-P — наличие внешнего SMPS

Серии микроконтроллеров STM32:

MP1 — серия микропроцессоров.

F2, F4, H7, F7 — серии микроконтроллеров с повышенной производительностью.

F0, G0, F1, F3, G4 — основная серия микроконтроллеров широкого применения.

L0, L1, L5, L4, L4+ — серии микроконтроллеров с ультранизким энергопотреблением.

WL, WB — серии микроконтроллеров с функцией беспроводной связи.

Основные характеристики серий STM32.

Высокопроизводительные микроконтроллеры:

Название серии

Ядро ARM

Макс. частота ядра,
МГц

CoreMark

Объем
Flash
памяти (кБайт)

Объем RAM (кБайт)

Особенности

F2

ART ускоритель, Ethernet MAC, USB 2.0 HS OTG, camera interface, hardware encryption support and external memory interface

F4

Chrom-ART Accelerator™, dual Quad-SPI, SDRAM interface, Ethernet MAC, camera interface

F7

AXI and multi-AHB шины, L1 кэш, Double precision FPU (в некоторых моделях), Chrom-ART ускоритель (в некоторых моделях). Серия F7 pin-to-pin совместима с серий F4.

H7

Cortex-M7F, Cortex-M4F (Dual-core line)

TFT-LCD, JPEG codec, Ethernet, Chrom-GRC™, optional embedded SMPS, dual Octo-SPI with on-the-fly decryption

Микроконтроллеры STM32 широкого применения:

Название серии

Ядро ARM

Макс. частота ядра,
МГц

CoreMark

Объем
Flash памяти (кБайт)

Объем RAM (кБайт)

Особенности

F0

Для приложений, чувствительных к цене микроконтроллера

G0

Для приложений, чувствительных к цене микроконтроллера

F1

Ethernet MAC, CAN and USB 2.0 OTG, motor control

F3

Серия микроконтроллеров для смешанных сигналов, содержит на кристалле богатый набор компараторов, операционных усилителей, дельта-сигма АЦП, АЦП последовательного приближения и т.д.

G4

Серия микроконтроллеров для смешанных сигналов, содержит на кристалле богатый набор компараторов, операционных усилителей, дельта-сигма АЦП, АЦП последовательного приближения и т.д.

Микроконтроллеры STM32 со сверхнизким энергопотреблением:

Название серии

Ядро ARM

Макс. частота ядра, МГц

CoreMark

Объем Flash памяти (кБайт)

Объем RAM (кБайт)

Особенности

L0

Динамическое потребление тока (минимальное): 49 µA/MHz (при использовании внешнего DC/DC конвертера) и 76 µA/MHz (при использовании LDO)

L1

Динамическое потребление тока (минимальное): 177 μA/MHz

L4

Динамическое потребление тока (минимальное): 28 μA/MHz

L4+

Динамическое потребление тока (минимальное): 41 μA/MHz

L5

Динамическое потребление тока (минимальное): 62 µA/MHz

Беспроводные микроконтроллеры:

Название серии

Ядро ARM

Макс. частота ядра, МГц

CoreMark

Объем Flash памяти (кБайт)

Объем RAM (кБайт)

Особенности

WB

Встроенный радиотрансивер, поддерживающий протоколы Bluetooth® LE, Zigbee® and Thread®

WL

Встроенный радиотрансивер, поддерживающий sub-GHz radio: модуляции – LoRa®, (G)FSK, (G)MSK, BPSK

Подробные данные представлены производителем в сопровождающей документации.

Стоит отметить, что во все платы встроен отладчик-программатор ST-LINK (в платах доступны следующие версии: ST-LINK V1, ST-LINK V2, ST-LINK V2-1, ST-LINK V2-A, ST-LINK V3E, подробнее — в документации к платам), поэтому процесс отладки не требует подключения дополнительных внешних устройств.

Наличие разнообразных встроенных физических интерфейсов, кнопок, программируемых светодиодов для мониторинга состояния, различные варианты и формы питания плат, разъемов для отладки, сетевые подключения и даже возможность работы с алгоритмами Crypto-HASH (AES, DES/TDES, HMAC, MD5, SHA) предоставляют разработчикам практически неограниченные возможности для творчества.

Все платы микроконтроллеров серии STM32 Nucleo являются расширяемыми.

Платы расширения позволяют максимально быстро собрать и испытать устройства с требуемым функционалом и передать в производство уже отлаженную конфигурацию. Компания ST разработала и выпускает более 60 плат расширения STM32 Nucleo expansion boards добавляющие следующий функционал:

• управление приводами на базе:
— шаговых двигателей,
— двигателей постоянного тока с щеточно-коллекторным узлом,
— биполярных шаговых двигателей,
— бесщеточных двигателей постоянного тока (вентильных двигателей),
— а также рассчитанных на высокое и низкое напряжение питания,
— на трехфазное питание
— управление приводами по двум каналам.

• LoRa™ в диапазонах HF и LF, включая использование как шлюз.

• Bluetooth 5 and 802.15.4

• Датчик расстояния, в том числе по нескольким объектам.

• Датчик приближения ToF.

• Sound Terminal® 2.1-channel высокоэффективная цифровая аудиосистема.

• Интерфейсы I²C и SPI EEPROM.

• Глобальное позиционирование GNSS.

• Bluetooth low energy (BLE), в том числе на BlueNRG и SPBTLE-RF.

• Связь Sub-1GHz RF на частотах 868 MHz и 915 MHz.

• Многофункциональные операционные усилители.

• Датчики движения и окружающего пространства MEMS (Микроэлектромеханические системы — устройства, объединяющие в себе микроэлектронные и микромеханические компоненты).

• Функционал для управления заземленными нагрузками (например, нагревательными элементами, электромагнитным драйвером, светодиодным драйвером, драйвером лампочки, заменой реле насосов и вентиляторами) с напряжением питания 8-36V и током до 42А.

• Управление индикаторными LED светодиодами.

• Управления яркостью светодиодов (0 % — 100 % dimming) сигналами ШИМ или аналоговыми.

• Определение энергопотребления подключаемых плат, как нагрузки.

• Работа с Dynamic NFC/RFID tag IC, в том числе функция кардридера

• Возможности промышленного программируемого логического контроллера (PLC/programmable logic controller, ПЛК) с вводом/выводом.

• Решение для разработки приложений связи на основе связи по линиям электропередач.

• Датчик приближения, жестов и внешнего освещения Ambient light sensor (ALS) на основе технологии FlightSense™ компании ST, Time-of-Flight.

• Цифровые MEMS микрофоны.

• Wi-Fi b/g/n со встроенным усилителем мощности, системой управления питанием и SMD-антенной.

• 3-осевой акселерометр, 3-осевой гироскоп компании STMicroelectronics, 3-осевой магнитометр, датчик влажности и температуры и датчик давления.

Большим плюсом и преимуществом плат STM32 Nucleo является совместимость с платами расширения сторонних производителей благодаря разъемам:

Arduino™ Nano V3 разъему на Nucleo-32

Arduino™ Uno V3 и ST morpho на Nucleo-64

Arduino™ Uno V3, ST Zio (расширяющий возможности Arduino™ Uno V3) и ST morpho на Nucleo-144.

Это повышает уровень использования и интеграции продукции STM для расширения и модернизации уже существующих решений и приложений.

STM32 Nucleo — это не только платы различной производительности. Это целая экосистема Open Development Environment, а также огромное сообщество разработчиков.

Открытая среда разработки STM32 (STM32 ODE) — это открытый, гибкий, простой и доступный способ разработки инновационных устройств и приложений на основе семейства 32-разрядных микроконтроллеров STM32 в сочетании с другими современными компонентами ST, подключенными через платы расширения. Основное назначение STM32 ODE — быстрое создание пользователями прототипов с использованием передовых компонентов и максимально быстрое их преобразование в готовые реализованные проекты.

STM32 ODE включает 5 основных элементов:

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

• Платы расширения STM32 Nucleo, предоставляющие дополнительные функции (датчики, системы управления, подключения и питания, звука и т.п.), которые устанавливаются поверх отладочных плат STM32 Nucleo.

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

• Расширенное программное обеспечение STM32Cube специально для использования с платами расширения STM32 Nucleo — это базовый набор программных компонентов, таких как HAL, LL API, промежуточное ПО и примеры приложений.

• Пакеты функций STM32 ODE, представляющие собой сочетание низкоуровневых драйверов, библиотек промежуточного программного обеспечения и примеров приложений, собранных в единый программный пакет для некоторых из наиболее распространенных приложений, созданных за счет использования модульности и совместимости комплектов разработки STM32 Nucleo и плат расширения X-NUCLEO, а также программного обеспечения STM32Cube и X-CUBE, составляя экосистему открытой среды разработки STM32 (ODE).

Открытая среда разработки STM32 совместима с рядом IDE, включая IAR EWARM, Keil MDK, mbed и среды на основе GCC.

Встроенное программное обеспечение STM32 представляет собой низкоуровневые драйверы, уровни аппаратной абстракции и промежуточное ПО, включая RTOS, USB, TCP / IP и графические стеки, включая:

• Аудио (MP3, WMA, голосовые службы и др.)

• Возможности подключения (USB, TCP / IP, Bluetooth, Zigbee RF4CE и др.)

• Криптография (Бесплатная библиотека STM32 с открытым ключом, симметричными и хэш-алгоритмами)

• Управление двигателем и безопасность (IEC 61508 SIL для промышленности, IEC / UL 60335/60730, класс B для приложений бытовой техники)

Традиционно доступны и используются интегрированные среды разработки (IDE, software integrated development environments) с компиляторами C/C++/Pascal/JAVA и отладчиками сторонних поставщиков (доступны бесплатные версии с кодом до 64 Кбайт), а также встроенные программные библиотеки, необходимые для настройки и инициализации микроконтроллера или микропроцессора и отслеживания его поведения во время выполнения операций.

STM32CubeMX — это графический инструмент, используемый для настройки любого устройства STM32. Простой в использовании графический интерфейс пользователя генерирует C-код инициализации для ядер Cortex-M и генерирует дерево устройств Linux для ядер Cortex-A.

STM32CubeIDE — это интегрированная среда разработки. Эта среда IDE, основанная на решениях с открытым исходным кодом, таких как Eclipse или инструментарий GNU C/C++, включает функции отчетов о компиляции и расширенные функции отладки. Он также интегрирует дополнительные функции, присутствующие в других инструментах экосистемы, такие как инициализация HW и SW и генерация кода из STM32CubeMX.

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

STM32CubeProgrammer представляет простую в использовании и эффективную среду для чтения, записи и проверки памяти устройства как через интерфейс отладки (JTAG и SWD), так и через интерфейс загрузчика (UART, USB DFU, I2C, SPI и CAN).

Он предлагает широкий спектр функций для программирования внутренней памяти (например, Flash, RAM и OTP), а также внешней памяти, а также позволяет программировать и загружать опции, проверять содержание программирования и автоматизировать программирование с помощью сценариев.

STM32CubeProgrammer поставляется в версиях GUI (Graphical User Interface, графический пользовательский интерфейс) и CLI (Command Line Interface, интерфейс командной строки) и поддерживает работу различных операционных систем: Windows, Linux, macOS.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *