Spisu treści:

Niesamowity STM32 L4!: 12 kroków
Niesamowity STM32 L4!: 12 kroków

Wideo: Niesamowity STM32 L4!: 12 kroków

Wideo: Niesamowity STM32 L4!: 12 kroków
Wideo: The Internet of Things by James Whittaker of Microsoft 2024, Lipiec
Anonim
Image
Image
ODKRYCIE STM32F746G
ODKRYCIE STM32F746G

Chcę rozpocząć ten artykuł od wyjaśnienia, że ta litera L (z L4) oznacza niski (lub, w zasadzie, bardzo niski pobór mocy). W ten sposób zużywa mało energii i pokazuje, dlaczego ten STM32 jest niesamowity! Zużywa mikroampery i ma wewnątrz system, który może zidentyfikować koszt każdej części chipa. Pozwala to na bardzo efektywne zarządzanie energią, a przy tym wysoką wydajność.

Mówiłem już o tym mikrokontrolerze w filmie „Najprostszy sposób na zaprogramowanie mikrokontrolera!” Na filmie pokazałem jak programować STM32 L4 za pomocą MBED. Ale badając więcej na ten temat, odkryłem coś, czego producent STMicroelectronics nie ujawnia. Zaimplementował w chipie Core Arduino, który umożliwia programowanie przez Arduino IDE.

Na tym obrazku mamy dwie wersje L4. STM32L432KC jest identyczny z Arduino Nano i STM32L476RG, które mają równoważne IO do Arduino Uno. Tak więc podczas pracy z dwiema wersjami tego potężnego mikrokontrolera pokażę, jak zainstalować Arduino Core w rodzinie STM32. Wyjaśnię również główne cechy zestawów STM32.

Krok 1: Płytki z rdzeniem Arduino

Umieściłem tutaj listę o różnorodności. Jednak będziemy pracować z STM32L432KC i STM32L476RG.

STM32F0

  • Nucleo F030R8
  • Nucleo F091RC
  • 32F0308ODKRYCIE

STM32F1

  • BluePill F103C8 (podstawowa obsługa, bez USB)
  • MapleMini F103CB (podstawowa obsługa, bez USB)
  • Nucleo F103RB
  • STM32VLODKRYWANIE

STM32F2

Nucleo F207ZG

STM32F3

  • Nucleo F302R8
  • Nucleo F303K8
  • Nucleo F303RE

STM32F4

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

STM32F7

STM32F746G-ODKRYCIE

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

Krok 2: ODKRYCIE STM32F746G

Dla zilustrowania przedstawiam szczegóły STM32F746G DISCOVERY, które uważam za bestię. Zamówiłem już ten chip i mam nadzieję, że wkrótce o tym porozmawiam.

Charakterystyka:

Mikrokontroler STM32F746NGH6 z 1 MB pamięci Flash i 340 KB pamięci RAM w obudowie BGA216

  • Wbudowany ST-LINK / V2-1 obsługujący możliwości reenumeracji USB
  • Obsługa Mbed (mbed.org)
  • Funkcje USB: wirtualny port COM, pamięć masowa i port debugowania
  • 4,3-calowy 480x272 kolorowy LCD-TFT z pojemnościowym ekranem dotykowym
  • Złącze kamery
  • Kodek audio SAI
  • Gniazdo wejścia i wyjścia liniowego audio
  • Wyjścia głośnikowe stereo
  • Dwa mikrofony ST MEMS
  • Złącze wejściowe SPDIF RCA
  • Dwa przyciski (użytkownik i reset)
  • 128-Mbitowa pamięć Flash Quad-SPI
  • 128-Mbit SDRAM (dostępne 64 Mbit)
  • Złącze na kartę microSD
  • Złącze płyty głównej RF-EEPROM
  • USB OTG HS ze złączami Micro-AB
  • USB OTG FS ze złączami Micro-AB
  • Złącze Ethernet zgodne z IEEE-802.3-2002
  • Pięć opcji zasilania:

- ST LINK / V2-1

- Złącze USB FS

- złącze USB HS

- VIN ze złącza Arduino

- Zewnętrzne 5 V ze złącza

Wyjście zasilania do zastosowań zewnętrznych:

- 3,3 V lub 5 V

Złącza Arduino Uno V3

Krok 3: Arduino Due X STM NUCLEO-L476RG

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

Oto porównanie z Arduino Due, który jest ARM Cortex-M3. Użyłem tego modelu w filmach: Nema 23 Stepper Motor ze sterownikiem TB6600 z Arduino Due i SpeedTest: Arduinos - ESP32 / 8266s - STM32, z STM NUCLEO-L476RG, który jest ARM Cortex-M4 Ultra Low Power i jest w obraz po prawej stronie.

Z powodu Arduino:

Mikrokontroler: AT91SAM3X8E

Napięcie robocze: 3,3 V

Napięcie wejściowe (zalecane): 7-12 V

Napięcie wejściowe (limity): 6-16V

Cyfrowe piny we/wy: 54 (z czego 12 zapewnia wyjście PWM)

Piny wejścia analogowego: 12

Piny wyjścia analogowego: 2 (DAC)

Całkowity prąd wyjściowy DC na wszystkich liniach we/wy: 130 mA

Prąd DC dla pinu 3,3 V: 800 mA

Prąd DC dla pinu 5 V: 800 mA

Pamięć Flash: 512 KB dostępna dla aplikacji użytkownika

SRAM: 96 KB (dwa banki: 64 KB i 32 KB)

Szybkość zegara: 84 MHz

Długość: 101,52 mm

Szerokość: 53,3 mm

Waga: 36g

STM NUCLEO-L476RG:

STM32L476RGT6 w pakiecie LQFP64

ARM®32-bitowy procesor Cortex®-M4

Adaptacyjny akcelerator czasu rzeczywistego

(ART Accelerator™) umożliwiający wykonanie stanu 0-wait z pamięci Flash

Maksymalna częstotliwość procesora 80 MHz

VDD od 1,71 V do 3,6 V

1 MB Flash

128 KB pamięci SRAM

SPI (3)

I2C (3)

USART (3)

UART (2)

LPUART (1)

GPIO (51) z możliwością przerwania zewnętrznego

Detekcja pojemnościowa z 12 kanałami

12-bitowy ADC (3) z 16 kanałami

12-bitowy przetwornik cyfrowo-analogowy z 2 kanałami

FPU lub jednostka zmiennoprzecinkowa

* Podkreślam tutaj osobny FPU STM NUCLEO-L476RG, co oznacza, że chip wykonuje obliczenia trygonometryczne z niesamowitą szybkością. W przeciwieństwie do Arduino Due, który potrzebuje do tego procesora genetycznego.

Krok 4: Drystone

Drystone
Drystone
Drystone
Drystone

Dhrystone to syntetyczny program komputerowy do testów porównawczych opracowany w 1984 roku przez Reinholda P. Weickera, który ma być reprezentatywny dla programowania systemowego (całkowitego). Dhrystone stał się przedstawicielem ogólnej wydajności procesora (CPU). Nazwa „Dhrystone” to gra słów na temat innego algorytmu porównawczego o nazwie Whetstone. Jest to miara zaczerpnięta z niektórych ogólnych operacji.

Ten program jest tutaj, aby skompilować coś wewnątrz tych mikrokontrolerów w Arduino. A wyniki dwóch testów, które wykonałem, jednego z Dhrystone i drugiego z filmu SpeedTest, są następujące:

Arduino Due: 37,00 USD

Benchmark Dhrystone, wersja 2.1 (język: C)

Rozpoczyna się egzekucja, 300 000 przebiegów przez Dhrystone

Egzekucja się kończy

Mikrosekundy na jeden przebieg przez Dhrystone: 10,70

Dhrystones na sekundę: 93, 431,43

Ocena MIPS VAX = 53,18 DMIPS

Uruchamianie testu Fernandok

Całkowity czas: 2 458 ms

  • Nie ma FPU
  • Oprogramowanie Dhrystone na Arduino

www.saanlima.com/download/dhry21a.zip

STM NUCLEO-L476RG: 23.00 USD

Benchmark Dhrystone, wersja 2.1 (język: C)

Rozpoczyna się egzekucja, 300 000 przebiegów przez Dhrystone

Egzekucja się kończy

Mikrosekundy na jeden przebieg przez Dhrystone: 9,63

Dhrystones na sekundę: 103, 794,59

Ocena MIPS VAX = 59,07 DMIPS

Uruchamianie testu Fernandok

Całkowity czas: 869 ms 2,8x SZYBCIEJ

  • PI do 40Mbit/s, USART 10Mbit/s
  • 2x DMA (14 kanałów)
  • Do 80 MHz / 100 DMIPS z akceleratorem ART

Krok 5: STM32L432KC X Arduino Nano

STM32L432KC X Arduino Nano
STM32L432KC X Arduino Nano

Lewa płytka to STM32L432KC, w której STMicroelectronics umieścił identyczne wyprowadzenia Arduino Nano na zdjęciu po prawej.

Krok 6: STM32L432KC

STM32L432KC
STM32L432KC

Ultra-low power Arm® Cortex®-M4 32-bitowy

MCU + FPU, 100DMIPS, do 256KB Flash, 64KB SRAM, USB FS, analogowe, audio

Do 26 IO szybciej, bardziej tolerancyjny do 5V

  • RTC z kalendarzem sprzętowym, alarmami i kalibracją
  • Do 3 pojemnościowych kanałów detekcji
  • 11x Timery: 1x16-bitowa zaawansowana kontrola silnika

1x 32-bitowe i 2x 16-bitowe ogólnego przeznaczenia, 2x 16-bitowe podstawowe, 2x 16-bitowe timery o niskim poborze mocy (dostępne w trybie Stop), 2x watchdogs, timer SysTick

Pamięć:

-Do 256 KB Flash, zastrzeżona ochrona odczytu kodu

- 64 KB SRAM, w tym 16 KB ze sprzętową kontrolą parzystości

- Interfejs pamięci Quad SPI

Bogate analogowe urządzenia peryferyjne (niezależne zasilanie)

- 1x 12-bit ADC 5 Msps, do 16 bitów ze sprzętowym oversamplingiem, 200 μA / Msps

- 2 kanały 12-bitowego wyjścia DAC, niskie zużycie energii

- 1x wzmacniacz operacyjny z wbudowanym PGA

-2x w porównaniu do interfejsów o bardzo niskim poborze mocy

- 1x UPS (szeregowy interfejs audio)

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

- 3x USART (ISO 7816, LIN, IrDA, modem)

- 1x LPUART (zatrzymaj 2 wybudzanie)

- 2x SPI (i 1x SPI Quad)

- CAN (aktywny 2.0B)

- Jednoprzewodowy master protokołu SWPMI I / F

- IRTIM (interfejs na podczerwień)

  • 14-kanałowy kontroler DMA
  • Generator liczb losowych

Krok 7: Zainstaluj Core Arduino dla kart STM32L4

Zainstaluj rdzeń Arduino dla kart STM32L4
Zainstaluj rdzeń Arduino dla kart STM32L4
  1. Zainstaluj program ST-Link, który nagrywa
  2. Adres Jsona
  3. Tablice: Menedżer kart
  4. Biblioteki: Kierownik Biblioteki

Krok 8: Zainstaluj ST-Link - program, który nagrywa

Zainstaluj ST-Link - program, który nagrywa
Zainstaluj ST-Link - program, który nagrywa

Pobierz plik ze strony https://www.st.com/en/development-tools/stsw-link0…. Wystarczy zarejestrować się, pobrać i zainstalować urządzenie.

Krok 9: Adres Json

Adres Json
Adres Json

Na nieruchomościach podaj następujący adres:

github.com/stm32duino/BoardManagerFiles/ra…

Krok 10: Tablice: Menedżer zarządu

Zarządy: Zarząd Zarząd
Zarządy: Zarząd Zarząd

W Arduino Board Manager zainstaluj STM32 Core, który ma około 40 MB.

Krok 11: Biblioteki: Menedżer biblioteki

Biblioteki: Kierownik Biblioteki
Biblioteki: Kierownik Biblioteki

Na koniec zainstaluj biblioteki.

Osobiście spodobała mi się grupa STM32duino.com, która ma kilka przykładów, z których część zainstalowałem. Pobrałem też FreeRTOS, który bardzo mi się podobał. Znalazłem to szybkie i niezawodne. Zainstalowałem też (ale jeszcze nie testowałem) LRWAN. Wkrótce powiem ci, czy to dobrze, czy nie.

Krok 12: Pobierz PDF

PDF

Zalecana: