Inhoudsopgave:

De ongelooflijke STM32 L4!: 12 stappen
De ongelooflijke STM32 L4!: 12 stappen

Video: De ongelooflijke STM32 L4!: 12 stappen

Video: De ongelooflijke STM32 L4!: 12 stappen
Video: EINDE van een TIJDPERK | De Ongelooflijke Podcast (Live) met Beatrice de Graaf en Stefan Paas | EO 2024, November
Anonim
Image
Image
STM32F746G ONTDEKKING
STM32F746G ONTDEKKING

Ik wil dit artikel beginnen met uit te leggen dat deze letter L (van de L4) Laag (of eigenlijk Ultra Low Power) betekent. Het kost dus weinig energie en laat zien waarom deze STM32 ongelooflijk is! Het besteedt microampères en heeft een systeem binnenin dat de kosten van elk chiponderdeel kan identificeren. Dit zorgt voor een zeer efficiënt energiebeheer en met hoge prestaties.

Ik had het al over deze microcontroller in de video, "De eenvoudigste manier om een microcontroller te programmeren!" In de video liet ik zien hoe je de STM32 L4 programmeert met MBED. Maar terwijl ik er meer over zocht, ontdekte ik iets dat de fabrikant STMicroelectronics niet onthult. Het implementeerde de Core Arduino in de chip, die programmeren via de Arduino IDE mogelijk maakt.

In deze afbeelding hebben we twee versies van L4. De STM32L432KC is identiek aan de Arduino Nano en de STM32L476RG, die gelijkwaardige IO's hebben als de Arduino Uno. Dus, terwijl ik met twee versies van deze krachtige microcontroller werk, laat ik je zien hoe je de Arduino Core in de STM32-familie installeert. Ook zal ik de belangrijkste kenmerken van de STM32-kits uitleggen.

Stap 1: platen met Core Arduino

Ik heb hier een lijst geplaatst over de diversiteit. We gaan echter aan de slag met de STM32L432KC en de STM32L476RG.

STM32F0

  • Nucleo F030R8
  • Nucleo F091RC
  • 32F0308ONTDEKKING

STM32F1

  • BluePill F103C8 (basisondersteuning, geen USB)
  • MapleMini F103CB (basisondersteuning, geen USB)
  • Nucleo F103RB
  • STM32VLONTDEKKING

STM32F2

Nucleo F207ZG

STM32F3

  • Nucleo F302R8
  • Nucleo F303K8
  • Nucleo F303RE

STM32F4

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

STM32F7

STM32F746G-ONTDEKKING:

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:

Stap 2: STM32F746G ONTDEKKING

Ter illustratie laat ik de details zien van een STM32F746G DISCOVERY, die ik als een beest beschouw. Ik heb deze chip al besteld en ik hoop er binnenkort over te praten.

Kenmerken:

STM32F746NGH6-microcontroller met 1 Mbyte Flash-geheugen en 340 Kbyte RAM in een BGA216-pakket

  • Ingebouwde ST-LINK / V2-1 met ondersteuning voor USB-hertellingsfuncties
  • Mbed-enabled (mbed.org)
  • USB-functies: virtuele COM-poort, massaopslag en debug-poort
  • 4,3-inch 480x272 kleuren LCD-TFT met capacitief touchscreen
  • Camera-aansluiting
  • SAI audiocodec
  • Audio line in en line out jack
  • Stereo luidsprekeruitgangen
  • Twee ST MEMS-microfoons
  • SPDIF RCA-ingangsconnector
  • Twee drukknoppen (gebruiker en reset)
  • 128-Mbit Quad-SPI Flash-geheugen
  • 128-Mbit SDRAM (64 Mbit toegankelijk)
  • Connector voor microSD-kaart
  • RF-EEPROM-dochterkaartconnector
  • USB OTG HS met Micro-AB-connectoren
  • USB OTG FS met Micro-AB-connectoren
  • Ethernet-connector compatibel met IEEE-802.3-2002
  • Vijf voedingsopties:

- ST LINK / V2-1

- USB FS-connector

- USB HS-connector

- VIN van Arduino-connector

- Externe 5 V van connector

Voedingsuitgang voor externe toepassingen:

- 3,3 V of 5 V

Arduino Uno V3-connectoren

Stap 3: Arduino Due X STM NUCLEO-L476RG

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

Hier is een vergelijking met de Arduino Due, een ARM Cortex-M3. Ik heb dit model in video's gebruikt: Nema 23 stappenmotor met stuurprogramma TB6600 met Arduino Due en SpeedTest: Arduinos - ESP32 / 8266s - STM32, met STM NUCLEO-L476RG, wat een ARM Cortex-M4 Ultra Low Power is, en is in de afbeelding aan de rechterkant.

Arduino vanwege:

Microcontroller: AT91SAM3X8E

Bedrijfsspanning: 3.3V

Ingangsspanning (aanbevolen): 7-12V

Ingangsspanning (limieten): 6-16V

Digitale I/O-pinnen: 54 (waarvan 12 met PWM-uitgang)

Analoge ingangspennen: 12

Analoge uitgangspinnen: 2 (DAC)

Totale DC-uitgangsstroom op alle I/O-lijnen: 130 mA

Gelijkstroom voor 3.3V Pin: 800 mA

Gelijkstroom voor 5V-pin: 800 mA

Flash-geheugen: 512 KB allemaal beschikbaar voor de gebruikerstoepassingen

SRAM: 96 KB (twee banken: 64 KB en 32 KB)

Kloksnelheid: 84 MHz

Lengte: 101,52 mm

Breedte: 53,3 mm

Gewicht: 36 gram

STM NUCLEO-L476RG:

STM32L476RGT6 in LQFP64-pakket

ARM®32-bit Cortex®-M4 CPU

Adaptieve realtime versneller

(ART Accelerator ™) waardoor 0-wachtstatus wordt uitgevoerd vanuit Flash-geheugen

80 MHz maximale CPU-frequentie

VDD van 1,71 V tot 3,6 V

1 MB flitser

128 KB SRAM

SPI (3)

I2C (3)

USART (3)

UART (2)

LPUART (1)

GPIO (51) met externe interruptmogelijkheid

Capacitieve detectie met 12 kanalen

12-bits ADC (3) met 16 kanalen

12-bits DAC met 2 kanalen

FPU of drijvende-komma-eenheid

* Ik benadruk hier de afzonderlijke FPU van STM NUCLEO-L476RG, wat betekent dat de chip met verbazingwekkende snelheid trigonometrische berekeningen maakt. Dit in tegenstelling tot de Arduino Due, die daarvoor een genetische processor nodig heeft.

Stap 4: Drystone

Drystone
Drystone
Drystone
Drystone

Dhrystone is een synthetisch computerbenchmarkprogramma dat in 1984 is ontwikkeld door Reinhold P. Weicker en bedoeld is om representatief te zijn voor (integer) systeemprogrammering. Dhrystone werd een vertegenwoordiger van de algehele processorprestaties (CPU). De naam "Dhrystone" is een woordspeling op een ander benchmark-algoritme genaamd Whetstone. Dit is een maatregel die is afgeleid van enkele generieke bewerkingen.

Dit programma is hier om iets in deze microcontrollers in Arduino te compileren. En het resultaat van twee tests die ik deed, een met Dhrystone en een andere uit de SpeedTest-video, is als volgt:

Arduino verschuldigd: US $ 37,00

Dhrystone Benchmark, versie 2.1 (taal: C)

Uitvoering begint, 300.000 loopt door Dhrystone

Uitvoering eindigt

Microseconden voor één run door Dhrystone: 10,70

Dhrystones per seconde: 93, 431,43

VAX MIPS-classificatie = 53,18 DMIPS

Hardlooptest Fernandok

Totale tijd: 2,458 ms

  • Heeft geen FPU
  • Dhrystone-software op Arduino

www.saanlima.com/download/dhry21a.zip

STM NUCLEO-L476RG: US $ 23,00

Dhrystone Benchmark, versie 2.1 (taal: C)

Uitvoering begint, 300.000 loopt door Dhrystone

Uitvoering eindigt

Microseconden voor één run door Dhrystone: 9,63

Dhrystones per seconde: 103, 794,59

VAX MIPS-classificatie = 59,07 DMIPS

Hardlooptest Fernandok

Totale tijd: 869 ms 2,8x SNELLER

  • PI tot 40Mbit/s, USART 10Mbit/s
  • 2x DMA (14 kanalen)
  • Tot 80 MHz / 100 DMIPS met ART Accelerator

Stap 5: STM32L432KC X Arduino Nano

STM32L432KC X Arduino Nano
STM32L432KC X Arduino Nano

Het linkerbord is de STM32L432KC, waarin STMicroelectronics de identieke Arduino Nano-pinout in de afbeelding rechts heeft geplaatst.

Stap 6: STM32L432KC

STM32L432KC
STM32L432KC

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

MCU + FPU, 100DMIPS, tot 256KB Flash, 64KB SRAM, USB FS, analoog, audio

Tot 26 IO's sneller, toleranter voor 5V

  • RTC met HW-kalender, alarmen en kalibratie
  • Tot 3 capacitieve detectiekanalen
  • 11x Timers: 1x16-bits geavanceerde motorregeling

1x 32-bit en 2x 16-bit voor algemeen gebruik, 2x 16-bit basic, 2x low-power 16-bit timers (beschikbaar in stopmodus), 2x watchdogs, SysTick-timer

Geheugen:

- Tot 256 KB Flash, eigen bescherming tegen het lezen van codes

- 64 KB SRAM inclusief 16 KB met hardware pariteitscontrole

- Quad SPI-geheugeninterface

Rijke analoge randapparatuur (onafhankelijke voeding)

- 1x 12-bit ADC 5 Msps, tot 16 bits met hardware-oversampling, 200 μA / Msps

- 2 kanalen met 12-bits DAC-uitgang, laag stroomverbruik

- 1x operationele versterker met ingebouwde PGA

- 2x vergeleken met ultra-low power interfaces

- 1x UPS (seriële audio-interface)

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

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

- 1x LPUART (stop 2 wakker worden)

- 2x SPI (en 1x SPI Quad)

- KAN (2.0B actief)

- Single wire protocol master SWPMI I / F

- IRIM (infraroodinterface)

  • 14-kanaals DMA-controller
  • Willekeurig nummer generator

Stap 7: Core Arduino installeren voor STM32L4-kaarten

Installeer Core Arduino voor STM32L4-kaarten
Installeer Core Arduino voor STM32L4-kaarten
  1. Installeer ST-Link-programma dat opneemt
  2. Json-adres
  3. Borden: Kaartmanager
  4. Bibliotheken: Bibliotheekmanager

Stap 8: Installeer ST-Link - Programma dat registreert

Installeer ST-Link - Program That Records
Installeer ST-Link - Program That Records

Download het bestand op https://www.st.com/en/development-tools/stsw-link0…. Registreer, download en installeer het apparaat gewoon.

Stap 9: Adres Json

Adres Json
Adres Json

Neem bij eigenschappen het volgende adres op:

github.com/stm32duino/BoardManagerFiles/ra…

Stap 10: Borden: Bestuursmanager

Bestuur: Bestuursmanager
Bestuur: Bestuursmanager

Installeer in de Arduino Board Manager de STM32 Core, die ongeveer 40 MB groot is.

Stap 11: Bibliotheken: Bibliotheekbeheer

Bibliotheken: Bibliotheekmanager
Bibliotheken: Bibliotheekmanager

Installeer ten slotte de bibliotheken.

Ik vond persoonlijk de groep STM32duino.com leuk, die verschillende voorbeelden heeft, waarvan ik er enkele heb geïnstalleerd. Ik heb ook een FreeRTOS gedownload, wat ik erg leuk vond. Ik vond het snel en betrouwbaar. Ik heb ook LRWAN geïnstalleerd (maar nog niet getest). Ik zal je snel vertellen of het goed is of niet.

Stap 12: PDF downloaden

PDF

Aanbevolen: