Оглавление:

Невероятный STM32 L4 !: 12 шагов
Невероятный STM32 L4 !: 12 шагов

Видео: Невероятный STM32 L4 !: 12 шагов

Видео: Невероятный STM32 L4 !: 12 шагов
Видео: STM32. Урок 15. RCC. Reset and Clock Control 2024, Июль
Anonim
Image
Image
ОТКРЫТИЕ STM32F746G
ОТКРЫТИЕ STM32F746G

Я хочу начать эту статью с объяснения того, что эта буква L (из L4) означает низкое (или, в основном, сверхнизкое энергопотребление). Таким образом, он тратит мало энергии и показывает, почему этот STM32 невероятен! Он тратит микроампер и имеет внутри систему, которая может определять стоимость каждой части микросхемы. Это позволяет очень эффективно управлять энергией и с высокой производительностью.

Я уже говорил об этом микроконтроллере в видео «Самый простой способ запрограммировать микроконтроллер!» В видео я показал, как программировать STM32 L4 с MBED. Но, исследуя это подробнее, я обнаружил кое-что, что производитель STMicroelectronics не раскрывает. Он реализовал в чипе ядро Arduino, что позволяет программировать через Arduino IDE.

На этом изображении у нас есть две версии L4. STM32L432KC идентичен Arduino Nano и STM32L476RG, которые имеют эквивалентные входы-выходы Arduino Uno. Итак, работая с двумя версиями этого мощного микроконтроллера, я покажу вам, как установить Arduino Core в семейство STM32. Также я объясню основные характеристики комплектов STM32.

Шаг 1: пластины с ядром Arduino

Я разместил здесь список разнообразия. Однако мы собираемся работать с STM32L432KC и STM32L476RG.

STM32F0

  • Нуклео F030R8
  • Nucleo F091RC
  • 32F0308DISCOVERY

STM32F1

  • BluePill F103C8 (базовая поддержка, без USB)
  • MapleMini F103CB (базовая поддержка, без USB)
  • Нуклео F103RB
  • STM32VLDISCOVERY

STM32F2

Nucleo F207ZG

STM32F3

  • Нуклео F302R8
  • Нуклео F303K8
  • Nucleo F303RE

STM32F4

  • Nucleo F401RE
  • Nucleo F411RE
  • Nucleo F429ZI
  • Nucleo F446RE
  • STM32F407G-DISC1

STM32F7

STM32F746G-ОТКРЫТИЕ

STM32L0

  • Нуклео L031K6
  • Нуклео L053R8
  • B-L072Z-LRWAN1

STM32L1

Nucleo L152RE

STM32L4

  • Нуклео L432KC
  • Нуклео L476RG
  • NUCLEO-L496ZG-P
  • NUCLEO-L496ZG-P
  • B-L475E-IOT01A

Шаг 2: ОБНАРУЖЕНИЕ STM32F746G

Чтобы проиллюстрировать, я показываю детали STM32F746G DISCOVERY, которую я считаю чудовищем. Я уже заказал эту микросхему, надеюсь скоро о ней расскажу.

Характеристики:

Микроконтроллер STM32F746NGH6 с 1 Мбайт флэш-памяти и 340 Кбайт ОЗУ в корпусе BGA216

  • Встроенный ST-LINK / V2-1 с поддержкой повторного перечисления USB
  • Mbed-включен (mbed.org)
  • Функции USB: виртуальный COM-порт, запоминающее устройство и порт отладки
  • 4,3-дюймовый цветной ЖК-TFT с разрешением 480x272 и емкостным сенсорным экраном
  • Разъем камеры
  • Аудиокодек SAI
  • Аудиовход и линейный выход
  • Стерео выходы на динамики
  • Два микрофона ST MEMS
  • Входной разъем SPDIF RCA
  • Две кнопки (пользовательская и сброс)
  • 128-мегабитная флэш-память Quad-SPI
  • 128 Мбит SDRAM (доступно 64 Мбит)
  • Разъем для карты microSD
  • Разъем дочерней платы RF-EEPROM
  • USB OTG HS с разъемами Micro-AB
  • USB OTG FS с разъемами Micro-AB
  • Разъем Ethernet, соответствующий IEEE-802.3-2002
  • Пять вариантов блока питания:

- СТ ЛИНК / V2-1

- Разъем USB FS

- Разъем USB HS

- VIN от разъема Arduino

- Внешний 5 В от разъема

Выход блока питания для внешних приложений:

- 3,3 В или 5 В

Разъемы Arduino Uno V3

Шаг 3: Arduino Due X STM NUCLEO-L476RG

Arduino Due X STM NUCLEO-L476RG
Arduino Due X STM NUCLEO-L476RG

Вот сравнение с Arduino Due, ARM Cortex-M3. Я использовал эту модель в видеороликах: Шаговый двигатель Nema 23 с драйвером TB6600 с Arduino Due и SpeedTest: Arduinos - ESP32 / 8266s - STM32, с STM NUCLEO-L476RG, который представляет собой ARM Cortex-M4 со сверхнизким энергопотреблением и находится в изображение справа.

Arduino Due:

Микроконтроллер: AT91SAM3X8E

Рабочее напряжение: 3,3 В

Входное напряжение (рекомендуемое): 7-12 В

Входное напряжение (пределы): 6-16 В

Цифровые контакты ввода / вывода: 54 (из которых 12 обеспечивают выход ШИМ)

Аналоговые входные контакты: 12

Контакты аналогового выхода: 2 (DAC)

Общий выходной постоянный ток на всех линиях ввода / вывода: 130 мА

Постоянный ток для вывода 3.3 В: 800 мА

Постоянный ток для вывода 5 В: 800 мА

Флэш-память: 512 КБ, все доступно для пользовательских приложений

SRAM: 96 КБ (два банка: 64 КБ и 32 КБ)

Тактовая частота: 84 МГц

Длина: 101,52 мм

Ширина: 53,3 мм

Вес: 36 г

STM NUCLEO-L476RG:

STM32L476RGT6 в пакете LQFP64

ARM®32-битный процессор Cortex®-M4

Адаптивный ускоритель реального времени

(ART Accelerator ™), позволяющий выполнять состояние с нулевым ожиданием из флэш-памяти

Максимальная частота процессора 80 МГц

VDD от 1,71 В до 3,6 В

1 МБ флэш-памяти

128 КБ SRAM

SPI (3)

I2C (3)

USART (3)

UART (2)

LPUART (1)

GPIO (51) с возможностью внешнего прерывания

Емкостное зондирование с 12 каналами

12-битный АЦП (3) с 16 каналами

12-битный ЦАП с 2 каналами

FPU или модуль с плавающей запятой

* Я выделяю здесь отдельный FPU STM NUCLEO-L476RG, что означает, что чип выполняет тригонометрические вычисления с поразительной скоростью. Это не похоже на Arduino Due, которому для этого нужен генетический процессор.

Шаг 4: Дристон

Дристон
Дристон
Дристон
Дристон

Dhrystone - это программа синтетических компьютерных тестов, разработанная в 1984 году Райнхольдом П. Вайкером, которая предназначена для представления (целочисленного) системного программирования. Dhrystone стал представителем общей производительности процессора (CPU). Название «Dhrystone» - это игра слов на другом алгоритме тестирования под названием Whetstone. Это мера, взятая из некоторых общих операций.

Эта программа предназначена для компиляции чего-либо внутри этих микроконтроллеров в Arduino. И результаты двух тестов, которые я провел, один с Dhrystone, а другой из видео SpeedTest, следующие:

Срок оплаты Arduino: 37 долларов США.

Тест Dhrystone, версия 2.1 (язык: C)

Казнь начинается, 300000 пробегов через Dhrystone

Казнь заканчивается

Микросекунды на один проход через Dhrystone: 10,70

Дристонов в секунду: 93, 431,43

Рейтинг VAX MIPS = 53,18 DMIPS.

Беговой тест Фернандок

Общее время: 2, 458 мс

  • Нет FPU
  • Программное обеспечение Dhrystone на Arduino

www.saanlima.com/download/dhry21a.zip

STM NUCLEO-L476RG: 23 доллара США

Тест Dhrystone, версия 2.1 (язык: C)

Казнь начинается, 300000 пробегов Dhrystone

Казнь заканчивается

Микросекунды на один проход через Dhrystone: 9,63

Дристонов в секунду: 103 794,59

Рейтинг VAX MIPS = 59,07 DMIPS

Беговой тест Фернандок

Общее время: 869 мс в 2,8 раза БЫСТРЕЕ

  • PI до 40 Мбит / с, USART 10 Мбит / с
  • 2x DMA (14 каналов)
  • До 80 МГц / 100 DMIPS с ART Accelerator

Шаг 5: STM32L432KC X Arduino Nano

STM32L432KC X Arduino Nano
STM32L432KC X Arduino Nano

Левая плата - это STM32L432KC, в которой STMicroelectronics разместила идентичную распиновку Arduino Nano на картинке справа.

Шаг 6: STM32L432KC

STM32L432KC
STM32L432KC

Сверхнизкое энергопотребление Arm® Cortex®-M4 32-бит

MCU + FPU, 100DMIPS, до 256 КБ флэш-памяти, 64 КБ SRAM, USB FS, аналоговый, аудио

До 26 операций ввода-вывода быстрее, более устойчив к 5 В

  • RTC с HW календарем, сигналами тревоги и калибровкой
  • До 3 емкостных каналов обнаружения
  • 11x таймеров: 1x16-битное расширенное управление двигателем

1x 32-битный и 2x 16-битный общего назначения, 2x 16-битный базовый, 2x маломощных 16-битных таймера (доступны в режиме Stop), 2x сторожевые устройства, таймер SysTick

Объем памяти:

- До 256 КБ Flash, защита от чтения проприетарного кода

- 64 КБ SRAM, включая 16 КБ с аппаратной проверкой четности

- Интерфейс памяти Quad SPI

Богатая аналоговая периферия (независимое питание)

- 1x 12-битный АЦП 5 Msps, до 16 бит с аппаратной передискретизацией, 200 мкA / Msps

- 2 канала 12-битного выхода ЦАП, низкое энергопотребление

- 1x операционный усилитель со встроенным PGA

- в 2 раза по сравнению с интерфейсами со сверхнизким энергопотреблением

- 1x ИБП (последовательный аудиоинтерфейс)

- 2x I2C FM + (1 Мбит / с), SMBus / PMBus

- 3x USART (ISO 7816, LIN, IrDA, модем)

- 1x LPUART (остановка 2, пробуждение)

- 2x SPI (и 1x SPI Quad)

- CAN (2.0B активно)

- Мастер однопроводного протокола SWPMI I / F

- IRTIM (инфракрасный интерфейс)

  • 14-канальный контроллер DMA
  • Генератор случайных чисел

Шаг 7: Установите Core Arduino для карт STM32L4

Установите Core Arduino для карт STM32L4
Установите Core Arduino для карт STM32L4
  1. Установите программу ST-Link, которая записывает
  2. Json-адрес
  3. Доски: Card Manager
  4. Библиотеки: менеджер библиотеки

Шаг 8: Установите ST-Link - Программа, которая записывает

Установите ST-Link - программу, которая записывает
Установите ST-Link - программу, которая записывает

Загрузите файл по адресу https://www.st.com/en/development-tools/stsw-link0…. Просто зарегистрируйтесь, скачайте и установите устройство.

Шаг 9: адрес Json

Адрес Json
Адрес Json

В свойствах укажите следующий адрес:

github.com/stm32duino/BoardManagerFiles/ra…

Шаг 10: Платы: Менеджер Правления

Правления: Менеджер Правления
Правления: Менеджер Правления

В диспетчере плат Arduino установите ядро STM32, размер которого составляет около 40 МБ.

Шаг 11: Библиотеки: Диспетчер библиотек

Библиотеки: менеджер библиотеки
Библиотеки: менеджер библиотеки

Наконец, установите библиотеки.

Мне лично понравилась группа STM32duino.com, в которой есть несколько примеров, некоторые из которых я установил. Я также скачал FreeRTOS, который мне очень понравился. Я нашел это быстрым и надежным. Я также установил (но еще не тестировал) LRWAN. Скоро скажу, хорошо это или нет.

Шаг 12: Загрузите PDF

PDF

Рекомендуемые: