Съдържание:

Невероятният STM32 L4!: 12 стъпки
Невероятният STM32 L4!: 12 стъпки

Видео: Невероятният STM32 L4!: 12 стъпки

Видео: Невероятният STM32 L4!: 12 стъпки
Видео: STM32. CMSIS #12. Практическая настройка TIM2 и DMA для PWM WS2812B. Практика 2024, Юли
Anonim
Image
Image
STM32F746G ОТКРИТИЕ
STM32F746G ОТКРИТИЕ

Искам да започна тази статия, като обясня, че тази буква L (от L4) означава ниска (или по принцип ултра ниска мощност). По този начин той изразходва малко енергия и показва защо този STM32 е невероятен! Той изразходва микроампери и има вътрешна система, която може да идентифицира разходите за всяка част от чипа. Това позволява много ефективно управление на енергията и с висока производителност.

Вече говорих за този микроконтролер във видеото „Най -лесният начин да програмирате микроконтролер!“Във видеото показах как да програмирате STM32 L4 с MBED. Но докато изследвах повече за това, открих нещо, което производителят STMicroelectronics не разкрива. Той внедри Core Arduino в чипа, който позволява програмиране чрез Arduino IDE.

В това изображение имаме две версии на L4. STM32L432KC е идентичен с Arduino Nano и STM32L476RG, които имат еквивалентни IO на Arduino Uno. Така че, докато работите с две версии на този мощен микроконтролер, ще ви покажа как да инсталирате Arduino Core в семейството на STM32. Също така ще обясня основните характеристики на комплектите STM32.

Стъпка 1: Плочи с Core Arduino

Поставих тук списък за разнообразието. Все пак ще работим със STM32L432KC и STM32L476RG.

STM32F0

  • Nucleo F030R8
  • Nucleo F091RC
  • 32F0308 ОТКРИТИЕ

STM32F1

  • BluePill F103C8 (Основна поддръжка, без USB)
  • MapleMini F103CB (Основна поддръжка, без USB)
  • Nucleo F103RB
  • STM32VLDISCOVERY

STM32F2

Nucleo F207ZG

STM32F3

  • Nucleo F302R8
  • Nucleo F303K8
  • Nucleo F303RE

STM32F4

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

STM32F7

STM32F746G-ОТКРИТИЕ

STM32L0

  • Nucleo L031K6
  • Nucleo L053R8
  • B-L072Z-LRWAN1

STM32L1

Nucleo L152RE

STM32L4

  • Nucleo L432KC
  • Nucleo L476RG
  • NUCLEO-L496ZG-P
  • NUCLEO-L496ZG-P
  • B-L475E-IOT01A

Стъпка 2: STM32F746G ОТКРИТИЕ

Само за илюстрация показвам детайлите на STM32F746G ОТКРИТИЕ, което смятам за звяр. Вече поръчах този чип и се надявам скоро да поговорим за него.

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

STM32F746NGH6 микроконтролер с 1 Mbytes флаш памет и 340 Kbytes RAM в пакет BGA216

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

- ST LINK / V2-1

- USB FS конектор

- USB HS конектор

- VIN от конектора на Arduino

- Външни 5 V от конектора

Изход за захранване на външни приложения:

- 3.3 V или 5 V

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 Ultra Low Power и е в изображението от дясната страна.

Arduino дължи:

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

Работно напрежение: 3.3V

Входно напрежение (препоръчително): 7-12V

Входно напрежение (граници): 6-16V

Цифрови входно -изходни щифтове: 54 (от които 12 осигуряват ШИМ изход)

Пинове за аналогов вход: 12

Изводи за аналогов изход: 2 (DAC)

Общ DC изходен ток на всички входно / изходни линии: 130 mA

DC ток за 3.3V Pin: 800 mA

DC ток за 5V Pin: 800 mA

Флаш памет: 512 KB всички налични за потребителските приложения

SRAM: 96 KB (две банки: 64KB и 32KB)

Тактова честота: 84 MHz

Дължина: 101,52 мм

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

Тегло: 36 g

STM NUCLEO-L476RG:

STM32L476RGT6 в пакет LQFP64

ARM® 32-битов процесор Cortex®-M4

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

(ART Accelerator ™) позволява изпълнение на състояние с 0 изчаквания от Flash памет

80 MHz максимална честота на процесора

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

1 MB флаш

128 KB SRAM

SPI (3)

I2C (3)

USART (3)

UART (2)

LPUART (1)

GPIO (51) с възможност за външно прекъсване

Капацитивно измерване с 12 канала

12-битов ADC (3) с 16 канала

12-битов DAC с 2 канала

FPU или единица с плаваща запетая

* Подчертавам тук тези отделни FPU на STM NUCLEO-L476RG, което означава, че чипът прави тригонометрични изчисления с невероятна скорост. Това е различно от Arduino Due, който се нуждае от генетичен процесор, за да направи това.

Стъпка 4: Dhrystone

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

Dhrystone е синтетична компютърна бенчмарк програма, разработена през 1984 г. от Reinhold P. Weicker, която е предназначена да представи представители на (цяло число) системно програмиране. Dhrystone стана представител на цялостната производителност на процесора (CPU). Името "Dhrystone" е каламбур по различен бенчмарк алгоритъм, наречен Whetstone. Това е мярка, взета от някои общи операции.

Тази програма е тук, за да компилира нещо в тези микроконтролери в Arduino. И резултатът от два теста, които направих, един с Dhrystone и друг от видеото SpeedTest, са следните:

Arduino дължи: US $ 37.00

Dhrystone Benchmark, версия 2.1 (Език: C)

Изпълнението започва, 300 000 преминава през Dhrystone

Изпълнението приключва

Микросекунди за едно движение през Dhrystone: 10.70

Дристони в секунда: 93, 431.43

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

Бягащ тест Fernandok

Общо време: 2, 458 ms

  • Няма FPU
  • Софтуер Dhrystone на Arduino

www.saanlima.com/download/dhry21a.zip

STM NUCLEO-L476RG: 23,00 щ.д.

Dhrystone Benchmark, версия 2.1 (Език: C)

Изпълнението започва, 300 000 преминава през Dhrystone

Изпълнението приключва

Микросекунди за едно движение през Dhrystone: 9.63

Дристони в секунда: 103, 794.59

VAX MIPS рейтинг = 59.07 DMIPS

Бягащ тест Fernandok

Общо време: 869 ms 2.8x БЪРЗО

  • PI до 40Mbit / s, USART 10Mbit / s
  • 2x DMA (14 канала)
  • До 80 MHz / 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, до 256KB Flash, 64KB SRAM, USB FS, аналогов, аудио

До 26 IO по -бързи, по -толерантни към 5V

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

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

Памет:

- До 256 KB Flash, патентована защита при четене на код

- 64 KB SRAM, включително 16 KB с проверка на хардуерния паритет

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

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

- 1x 12-битов ADC 5 Msps, до 16 бита с хардуерно свръхдискретизиране, 200 μA / Msps

- 2 канала с 12-битов DAC изход, ниска консумация на енергия

- 1x операционен усилвател с вграден PGA

- 2x в сравнение с интерфейсите с ултра ниска мощност

- 1x UPS (сериен аудио интерфейс)

- 2x I2C FM + (1 Mbit / s), SMBus / PMBus

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

- 1x LPUART (Stop 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. Табла: Мениджър на карти
  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 Board Manager инсталирайте STM32 Core, което е около 40MB.

Стъпка 11: Библиотеки: Библиотечен мениджър

Библиотеки: Управител на библиотека
Библиотеки: Управител на библиотека

Накрая инсталирайте библиотеките.

Аз лично харесах групата STM32duino.com, която има няколко примера, някои от които инсталирах. Изтеглих и FreeRTOS, който много ми хареса. Намерих го бърз и надежден. Също така инсталирах (но все още не съм тествал) LRWAN. Скоро ще ви кажа дали е добре или не.

Стъпка 12: Изтеглете PDF

PDF

Препоръчано: