Sommario:

L'incredibile STM32 L4!: 12 passaggi
L'incredibile STM32 L4!: 12 passaggi

Video: L'incredibile STM32 L4!: 12 passaggi

Video: L'incredibile STM32 L4!: 12 passaggi
Video: tinyML Talks: Suitability of Forward-Forward and PEPITA Learning to MLCommons-Tiny benchmarks 2024, Luglio
Anonim
Image
Image
STM32F746G SCOPERTA
STM32F746G SCOPERTA

Voglio iniziare questo articolo spiegando che questa lettera L (della L4) significa Basso (o, fondamentalmente, Ultra Low Power). Quindi, spende poca energia e mostra perché questo STM32 è incredibile! Spende microampere e ha al suo interno un sistema in grado di identificare la spesa di ogni parte del chip. Ciò consente una gestione dell'energia molto efficiente e con prestazioni elevate.

Ho già parlato di questo microcontrollore nel video, "Il modo più semplice per programmare un microcontrollore!" Nel video, ho mostrato come programmare STM32 L4 con MBED. Ma durante la ricerca di più su di esso, ho scoperto qualcosa che il produttore STMicroelectronics non rivela. Ha implementato il Core Arduino nel chip, che consente la programmazione tramite l'IDE Arduino.

In questa immagine abbiamo due versioni di L4. L'STM32L432KC è identico all'Arduino Nano e all'STM32L476RG, che hanno IO equivalenti all'Arduino Uno. Quindi, lavorando con due versioni di questo potente microcontrollore, ti mostrerò come installare Arduino Core nella famiglia STM32. Inoltre, spiegherò le caratteristiche principali dei kit STM32.

Passaggio 1: piastre con Core Arduino

Ho messo qui un elenco sulla diversità. Tuttavia, lavoreremo con STM32L432KC e STM32L476RG.

STM32F0

  • Nucleo F030R8
  • Nucleo F091RC
  • 32F0308SCOPERTA

STM32F1

  • BluePill F103C8 (supporto di base, no USB)
  • MapleMini F103CB (supporto di base, no 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-SCOPERTA

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

Passaggio 2: SCOPERTA STM32F746G

Solo per illustrare, mostro i dettagli di un STM32F746G DISCOVERY, che considero una bestia. Ho già ordinato questo chip e spero di parlarne presto.

Caratteristiche:

Microcontrollore STM32F746NGH6 con 1 Mbyte di memoria Flash e 340 Kbyte di RAM in un pacchetto BGA216

  • ST-LINK / V2-1 integrato che supporta le capacità di re-enumerazione USB
  • Abilitato per Mbed (mbed.org)
  • Funzioni USB: porta COM virtuale, memoria di massa e porta di debug
  • LCD-TFT a colori da 4,3 pollici 480x272 con touch screen capacitivo
  • Connettore della fotocamera
  • Codec audio SAI
  • Ingresso audio e jack di uscita
  • Uscite altoparlanti stereo
  • Due microfoni ST MEMS
  • Connettore di ingresso RCA SPDIF
  • Due pulsanti (utente e reset)
  • Memoria flash Quad-SPI da 128 Mbit
  • SDRAM a 128 Mbit (64 Mbit accessibili)
  • Connettore per scheda microSD
  • Connettore per scheda figlia RF-EEPROM
  • USB OTG HS con connettori Micro-AB
  • USB OTG FS con connettori Micro-AB
  • Connettore Ethernet conforme a IEEE-802.3-2002
  • Cinque opzioni di alimentazione:

- COLLEGAMENTO ST / V2-1

- Connettore USB FS

- Connettore USB HS

- VIN dal connettore Arduino

- Esterno 5 V dal connettore

Uscita alimentazione per applicazioni esterne:

- 3,3 V o 5 V

Connettori Arduino Uno V3

Passaggio 3: Arduino Due X STM NUCLEO-L476RG

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

Ecco un confronto con Arduino Due, che è un ARM Cortex-M3. Ho usato questo modello nei video: Motore passo-passo Nema 23 con driver TB6600 con Arduino Due e SpeedTest: Arduinos - ESP32 / 8266s - STM32, con STM NUCLEO-L476RG, che è un ARM Cortex-M4 Ultra Low Power, ed è in l'immagine a destra.

Arduino dovuto:

Microcontrollore: AT91SAM3X8E

Tensione di esercizio: 3,3 V

Tensione di ingresso (consigliata): 7-12V

Tensione di ingresso (limiti): 6-16 V

Pin I/O digitali: 54 (di cui 12 forniscono uscita PWM)

Pin di ingresso analogico: 12

Pin di uscita analogica: 2 (DAC)

Corrente di uscita CC totale su tutte le linee I/O: 130 mA

Corrente CC per pin da 3,3 V: 800 mA

Corrente CC per pin 5V: 800 mA

Memoria Flash: 512 KB tutti disponibili per le applicazioni utente

SRAM: 96 KB (due banchi: 64 KB e 32 KB)

Velocità di clock: 84 MHz

Lunghezza: 101,52 mm

Larghezza: 53,3 mm

Peso: 36 g

STM NUCLEO-L476RG:

STM32L476RGT6 nel pacchetto LQFP64

ARM®CPU Cortex®-M4 a 32 bit

Acceleratore adattivo in tempo reale

(ART Accelerator ™) che consente l'esecuzione dello stato di attesa 0 dalla memoria Flash

Frequenza massima della CPU 80 MHz

VDD da 1,71 V a 3,6 V

1 MB Flash

128 KB di SRAM

SPI (3)

I2C (3)

USART (3)

UART (2)

LPUART (1)

GPIO (51) con capacità di interruzione esterna

Rilevamento capacitivo con 12 canali

ADC a 12 bit (3) con 16 canali

DAC a 12 bit con 2 canali

FPU o unità in virgola mobile

* Evidenziamo qui queste FPU separate di STM NUCLEO-L476RG, il che significa che il chip esegue calcoli trigonometrici con una velocità sorprendente. Questo è diverso da Arduino Due, che ha bisogno di un processore genetico per farlo.

Passaggio 4: Drystone

Drystone
Drystone
Drystone
Drystone

Dhrystone è un programma di benchmark sintetico per computer sviluppato nel 1984 da Reinhold P. Weicker, che intende essere rappresentativo della programmazione (integer) del sistema. Dhrystone è diventato un rappresentante delle prestazioni complessive del processore (CPU). Il nome "Dhrystone" è un gioco di parole su un diverso algoritmo di benchmark chiamato Whetstone. Questa è una misura presa da alcune operazioni generiche.

Questo programma è qui per compilare qualcosa all'interno di questi microcontrollori in Arduino. E il risultato di due test che ho fatto, uno con Dhrystone e un altro dal video SpeedTest, sono i seguenti:

Arduino dovuto: US $ 37,00

Benchmark Drystone, Versione 2.1 (Lingua: C)

Inizio dell'esecuzione, 300.000 corse attraverso Dhrystone

L'esecuzione termina

Microsecondi per una corsa attraverso Dhrystone: 10.70

Drystones al secondo: 93, 431,43

VAX MIPS rating = 53,18 DMIPS

Prova di corsa Fernandok

Tempo totale: 2,458 ms

  • Non ha FPU
  • Software Drystone su Arduino

www.saanlima.com/download/dhry21a.zip

STM NUCLEO-L476RG: US $ 23,00

Benchmark Drystone, Versione 2.1 (Lingua: C)

Inizio dell'esecuzione, 300.000 corse attraverso Dhrystone

L'esecuzione termina

Microsecondi per una corsa attraverso Dhrystone: 9.63

Drystones al secondo: 103, 794,59

VAX MIPS rating = 59,07 DMIPS

Prova di corsa Fernandok

Tempo totale: 869 ms 2,8 volte PI VELOCE

  • PI fino a 40Mbit/s, USART 10Mbit/s
  • 2x DMA (14 canali)
  • Fino a 80 MHz / 100 DMIPS con ART Accelerator

Passaggio 5: STM32L432KC X Arduino Nano

STM32L432KC X Arduino Nano
STM32L432KC X Arduino Nano

La scheda di sinistra è la STM32L432KC, nella quale STMicroelectronics ha posizionato l'identico pinout Arduino Nano nell'immagine a destra.

Passaggio 6: STM32L432KC

STM32L432KC
STM32L432KC

Arm® Cortex®-M4 a bassissima potenza a 32 bit

MCU + FPU, 100DMIPS, fino a 256KB Flash, 64KB SRAM, USB FS, analogico, audio

Fino a 26 IO più veloci, più tolleranti a 5V

  • RTC con calendario HW, allarmi e calibrazione
  • Fino a 3 canali di rilevamento capacitivo
  • 11x timer: controllo motore avanzato 1x16 bit

1x 32 bit e 2x 16 bit per uso generico, 2x 16 bit di base, 2x timer a 16 bit a bassa potenza (disponibili in modalità Stop), 2x watchdog, timer SysTick

Memoria:

- Fino a 256 KB Flash, protezione dalla lettura del codice proprietario

- 64 KB SRAM di cui 16 KB con controllo di parità hardware

- Interfaccia di memoria Quad SPI

Periferiche analogiche ricche (alimentazione indipendente)

- 1x ADC a 12 bit 5 Msps, fino a 16 bit con sovracampionamento hardware, 200 μA / Msps

- 2 canali di uscita DAC a 12 bit, basso consumo energetico

- 1x amplificatore operazionale con PGA integrato

- 2 volte rispetto alle interfacce a bassissima potenza

- 1x UPS (interfaccia audio seriale)

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

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

- 1x LPUART (Stop 2 sveglia)

- 2x SPI (e 1x Quad SPI)

- CAN (2.0B attivo)

- Master protocollo a filo singolo SWPMI I/F

- IRTIM (interfaccia infrarossi)

  • Controller DMA a 14 canali
  • Generatore di numeri casuali

Passaggio 7: installare Core Arduino per schede STM32L4

Installa Core Arduino per schede STM32L4
Installa Core Arduino per schede STM32L4
  1. Installa il programma ST-Link che registra
  2. Indirizzo Json
  3. Board: Card Manager
  4. Biblioteche: Gestore della Biblioteca

Passaggio 8: installare ST-Link - Programma che registra

Installa ST-Link - Programma che registra
Installa ST-Link - Programma che registra

Scarica il file da https://www.st.com/en/development-tools/stsw-link0…. Basta registrarsi, scaricare e installare il dispositivo.

Passaggio 9: indirizzo Json

Indirizzo Json
Indirizzo Json

Nelle proprietà, includi il seguente indirizzo:

github.com/stm32duino/BoardManagerFiles/ra…

Fase 10: Board: Board Manager

Board: Board Manager
Board: Board Manager

In Arduino Board Manager, installa STM32 Core, che è di circa 40 MB.

Passaggio 11: Biblioteche: Gestore della biblioteca

Biblioteche: Gestore della Biblioteca
Biblioteche: Gestore della Biblioteca

Infine, installa le librerie.

Personalmente mi è piaciuto il gruppo STM32duino.com, che ha diversi esempi, alcuni dei quali ho installato. Ho anche scaricato un FreeRTOS, che mi è piaciuto molto. L'ho trovato veloce e affidabile. Ho anche installato (ma non ho ancora testato) LRWAN. Presto ti dirò se è buono o no.

Passaggio 12: scarica il PDF

PDF

Consigliato: