Taula de continguts:

L'increïble STM32 L4 !: 12 passos
L'increïble STM32 L4 !: 12 passos

Vídeo: L'increïble STM32 L4 !: 12 passos

Vídeo: L'increïble STM32 L4 !: 12 passos
Vídeo: tinyML Talks: Enabling on-device learning on STM32 microcontrollers 2024, De novembre
Anonim
Image
Image
STM32F746G DESCOBRIMENT
STM32F746G DESCOBRIMENT

Vull començar aquest article explicant que aquesta lletra L (de la L4) significa Baixa (o, bàsicament, Ultra Baixa Potència). Per tant, gasta poca energia i demostra per què aquest STM32 és increïble. Gasta microamplis i té un sistema al seu interior que permet identificar les despeses de cada peça de xip. Això permet una gestió d'energia molt eficient i amb un alt rendiment.

Ja vaig parlar d’aquest microcontrolador al vídeo: “La manera més senzilla de programar un microcontrolador”. Al vídeo, vaig mostrar com programar el STM32 L4 amb MBED. Però mentre investigava més sobre això, vaig descobrir alguna cosa que el fabricant STMicroelectronics no revela. Va implementar el Core Arduino al xip, que permet la programació a través de l’IDE Arduino.

En aquesta imatge, tenim dues versions de L4. El STM32L432KC és idèntic a l’Arduino Nano i al STM32L476RG, que tenen E / S equivalents a l’Arduino Uno. Per tant, mentre treballo amb dues versions d’aquest potent microcontrolador, us mostraré com instal·lar l’Arduino Core a la família STM32. A més, explicaré les característiques principals dels kits STM32.

Pas 1: plaques amb Core Arduino

He posat aquí una llista sobre la diversitat. Tot i això, treballarem amb el STM32L432KC i el STM32L476RG.

STM32F0

  • Nucleo F030R8
  • Nucleo F091RC
  • 32F0308DESCobriment

STM32F1

  • BluePill F103C8 (suport bàsic, sense USB)
  • MapleMini F103CB (suport bàsic, sense 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-DESCOBRIMENT

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

Pas 2: STM32F746G DESCOBRIMENT

Només per il·lustrar-los, mostro els detalls d’un DESCOBRIMENT STM32F746G, que considero una bèstia. Ja he demanat aquest xip i espero parlar-ne aviat.

Característiques:

Microcontrolador STM32F746NGH6 amb 1 Mbytes de memòria Flash i 340 Kbytes de RAM en un paquet BGA216

  • ST-LINK / V2-1 incorporat que admet capacitats de reenumeració USB
  • Habilitat per a Mbed (mbed.org)
  • Funcions USB: port COM virtual, emmagatzematge massiu i port de depuració
  • LCD-TFT en color de 480x272 de 4,3 polzades amb pantalla tàctil capacitiva
  • Connector de càmera
  • Còdec d’àudio SAI
  • Connector d'entrada i sortida d'àudio
  • Sortides d’altaveu estèreo
  • Dos micròfons ST MEMS
  • Connector d'entrada SPDIF RCA
  • Dos polsadors (usuari i restabliment)
  • Memòria Flash Quad-SPI de 128 Mbit
  • SDRAM de 128 Mbit (accessible a 64 Mbits)
  • Connector per a targeta microSD
  • Connector de placa secundària RF-EEPROM
  • USB OTG HS amb connectors Micro-AB
  • USB OTG FS amb connectors Micro-AB
  • Connector Ethernet compatible amb IEEE-802.3-2002
  • Cinc opcions d'alimentació:

- ST LINK / V2-1

- Connector USB FS

- Connector USB HS

- VIN des del connector Arduino

- 5 V externs des del connector

Sortida d'alimentació per a aplicacions externes:

- 3,3 V o 5 V

Connectors Arduino Uno V3

Pas 3: Arduino Due X STM NUCLEO-L476RG

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

Aquí hi ha una comparació amb l’Arduino Due, que és un ARM Cortex-M3. He utilitzat aquest model en vídeos: Motor pas a pas Nema 23 amb controlador TB6600 amb Arduino Due i SpeedTest: Arduinos - ESP32 / 8266s - STM32, amb STM NUCLEO-L476RG, que és un ARM Cortex-M4 Ultra Low Power, i està en la imatge a la part dreta.

Arduino Due:

Microcontrolador: AT91SAM3X8E

Voltatge de funcionament: 3,3 V.

Voltatge d'entrada (recomanat): 7-12V

Voltatge d'entrada (límits): 6-16V

Pins d'E / S digitals: 54 (dels quals 12 proporcionen sortida PWM)

Pins d'entrada analògica: 12

Pins de sortida analògica: 2 (DAC)

Corrent de sortida CC total en totes les línies d'E / S: 130 mA

Corrent continu per a pin de 3,3 V: 800 mA

Corrent continu per pin 5V: 800 mA

Memòria Flash: 512 KB disponibles per a les aplicacions de l'usuari

SRAM: 96 KB (dos bancs: 64 KB i 32 KB)

Velocitat de rellotge: 84 MHz

Llargada: 101,52 mm

Amplada: 53,3 mm

Pes: 36 g

STM NUCLEO-L476RG:

STM32L476RGT6 al paquet LQFP64

CPU ARM® de 32 bits Cortex®-M4

Accelerador adaptatiu en temps real

(ART Accelerator ™) que permet l'execució de l'estat de 0-espera des de la memòria Flash

Freqüència màxima de CPU de 80 MHz

VDD d’1,71 V a 3,6 V

Flash de 1 MB

SRAM de 128 KB

SPI (3)

I2C (3)

USART (3)

UART (2)

LPUART (1)

GPIO (51) amb capacitat d’interrupció externa

Detecció capacitiva amb 12 canals

ADC de 12 bits (3) amb 16 canals

DAC de 12 bits amb 2 canals

FPU o unitat de coma flotant

* Destaco aquí la FPU separada de STM NUCLEO-L476RG, que significa que el xip fa càlculs trigonomètrics amb una velocitat sorprenent. Això és diferent de l’Arduino Due, que necessita un processador genètic per fer-ho.

Pas 4: Dhrystone

Dhrystone
Dhrystone
Dhrystone
Dhrystone

Dhrystone és un programa de referència informàtic sintètic desenvolupat el 1984 per Reinhold P. Weicker, que pretén ser representatiu de la programació (sencera) del sistema. Dhrystone es va convertir en un representant del rendiment general del processador (CPU). El nom "Dhrystone" és un joc de paraules en un algorisme de referència diferent anomenat Whetstone. Es tracta d’una mesura extreta d’algunes operacions genèriques.

Aquest programa és aquí per compilar alguna cosa dins d’aquests microcontroladors a Arduino. I el resultat de dues proves que vaig fer, una amb Dhrystone i una altra del vídeo SpeedTest, són les següents:

Venciment d’Arduino: 37,00 dòlars EUA

Dhrystone Benchmark, versió 2.1 (idioma: C)

Comença l'execució, 300.000 recorren Dhrystone

L’execució finalitza

Microsegons per una tirada a través de Dhrystone: 10,70

Pedres per segon: 93, 431,43

Valoració VAX MIPS = 53,18 DMIPS

Prova de carrera Fernandok

Temps total: 2, 458 ms

  • No té FPU
  • Programari Dhrystone a Arduino

www.saanlima.com/download/dhry21a.zip

STM NUCLEO-L476RG: 23,00 dòlars EUA

Dhrystone Benchmark, versió 2.1 (idioma: C)

Comença l'execució, 300.000 recorren Dhrystone

L'execució finalitza

Microsegons per una tirada a través de Dhrystone: 9,63

Pedres per segon: 103, 794,59

Valoració VAX MIPS = 59,07 DMIPS

Prova de carrera Fernandok

Temps total: 869 ms 2,8x MÉS RÀPID

  • PI fins a 40 Mbits / s, USART 10 Mbits / s
  • 2x DMA (14 canals)
  • Fins a 80 MHz / 100 DMIPS amb accelerador ART

Pas 5: STM32L432KC X Arduino Nano

STM32L432KC X Arduino Nano
STM32L432KC X Arduino Nano

El tauler esquerre és el STM32L432KC, en el qual STMicroelectronics col·loca el pinout Arduino Nano idèntic a la imatge de la dreta.

Pas 6: STM32L432KC

STM32L432KC
STM32L432KC

Arm® Cortex®-M4 de 32 bits de potència ultra baixa

MCU + FPU, 100DMIPS, fins a 256 KB de Flash, 64 KB de SRAM, USB FS, analògic, àudio

Fins a 26 E / S més ràpides, més tolerants a 5V

  • RTC amb calendari HW, alarmes i calibratge
  • Fins a 3 canals de detecció capacitius
  • Temporitzadors 11x: control avançat del motor 1x16 bits

1x 32 bits i 2x 16 bits per a usos generals, 2x 16 bits bàsics, 2x temporitzadors de 16 bits de baixa potència (disponibles en mode Stop), 2x gossos de vigilància, temporitzador SysTick

Memòria:

- Fins a 256 KB Flash, protecció de lectura de codi propietari

- SRAM de 64 KB inclosos 16 KB amb comprovació de la paritat del maquinari

- Interfície de memòria Quad SPI

Perifèrics analògics rics (subministrament independent)

- 1 x ADC de 12 bits de 5 msps, fins a 16 bits amb sobreexplotació de maquinari, 200 μA / msps

- 2 canals de sortida DAC de 12 bits, baix consum d'energia

- 1x amplificador operacional amb PGA integrat

- 2x en comparació amb les interfícies de potència ultra baixa

- 1 SAI (interfície d'àudio en sèrie)

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

- 3x USART (ISO 7816, LIN, IrDA, mòdem)

- 1x LPUART (Stop 2 wake up)

- 2x SPI (i 1x SPI Quad)

- CAN (2.0B actiu)

- Mestre de protocol de fil únic SWPMI I / F

- IRTIM (interfície infraroja)

  • Controlador DMA de 14 canals
  • Generador de números aleatoris

Pas 7: instal·leu Core Arduino per a targetes STM32L4

Instal·leu Core Arduino per a targetes STM32L4
Instal·leu Core Arduino per a targetes STM32L4
  1. Instal·leu el programa ST-Link que enregistra
  2. Adreça Json
  3. Taulers: gestor de targetes
  4. Biblioteques: gestor de biblioteques

Pas 8: Instal·leu ST-Link: programa que registra

Instal·leu ST-Link: programa que registra
Instal·leu ST-Link: programa que registra

Baixeu-vos el fitxer a https://www.st.com/en/development-tools/stsw-link0…. Només cal registrar-se, descarregar-se i instal·lar el dispositiu.

Pas 9: Adreça Json

Direcció Json
Direcció Json

A les propietats, incloeu l'adreça següent:

github.com/stm32duino/BoardManagerFiles/ra…

Pas 10: Juntes: gerent de la junta

Juntes: gerent de la junta
Juntes: gerent de la junta

A Arduino Board Manager, instal·leu el STM32 Core, que és d’uns 40 MB.

Pas 11: Biblioteques: gestor de biblioteques

Biblioteques: gestor de biblioteques
Biblioteques: gestor de biblioteques

Finalment, instal·leu les biblioteques.

Personalment, em va agradar el grup STM32duino.com, que conté diversos exemples, alguns dels quals vaig instal·lar. També he descarregat un FreeRTOS, que m’ha agradat molt. El vaig trobar ràpid i fiable. També he instal·lat (però encara no he provat) LRWAN. Aviat us diré si és bo o no.

Pas 12: descarregueu PDF

PDF

Recomanat: