Cuprins:

Incredibilul STM32 L4 !: 12 pași
Incredibilul STM32 L4 !: 12 pași

Video: Incredibilul STM32 L4 !: 12 pași

Video: Incredibilul STM32 L4 !: 12 pași
Video: The Internet of Things by James Whittaker of Microsoft 2024, Noiembrie
Anonim
Image
Image
STM32F746G DESCOPERIRE
STM32F746G DESCOPERIRE

Vreau să încep acest articol explicând că această literă L (a L4) înseamnă Low (sau, practic, Ultra Low Power). Astfel, cheltuie puțină energie și arată de ce acest STM32 este incredibil! Cheltuie microamperi și are un sistem în interior care poate identifica cheltuielile fiecărei piese de cip. Acest lucru permite un management foarte eficient al energiei și cu performanțe ridicate.

Am vorbit deja despre acest microcontroler în videoclip, „Cel mai simplu mod de a programa un microcontroler!” În videoclip, am arătat cum să programez STM32 L4 cu MBED. Dar, în timp ce cercetam mai multe despre asta, am descoperit ceva ce producătorul STMicroelectronics nu dezvăluie. A implementat Core Arduino în cip, care permite programarea prin Arduino IDE.

În această imagine, avem două versiuni ale L4. STM32L432KC este identic cu Arduino Nano și STM32L476RG, care au IO-uri echivalente cu Arduino Uno. Deci, în timp ce lucrez cu două versiuni ale acestui microcontroler puternic, vă voi arăta cum să instalați Arduino Core în familia STM32. De asemenea, voi explica principalele caracteristici ale kiturilor STM32.

Pasul 1: Plăci cu Core Arduino

Am plasat aici o listă despre diversitate. Cu toate acestea, vom lucra cu STM32L432KC și STM32L476RG.

STM32F0

  • Nucleo F030R8
  • Nucleo F091RC
  • 32F0308DESCOPERIRE

STM32F1

  • BluePill F103C8 (suport de bază, fără USB)
  • MapleMini F103CB (suport de bază, fără 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-DISCOVERY

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

Pasul 2: DESCOPERIRE STM32F746G

Doar pentru a ilustra, arăt detaliile unei STM32F746G DISCOVERY, pe care o consider o bestie. Am comandat deja acest cip și sper să vorbesc despre el în curând.

Caracteristici:

Microcontroler STM32F746NGH6 cu 1 Mbyte de memorie Flash și 340 Kbyte de RAM într-un pachet BGA216

  • ST-LINK / V2-1 la bord care acceptă capacități de reenumerare USB
  • Activat Mbed (mbed.org)
  • Funcții USB: port COM virtual, stocare în masă și port de depanare
  • LCD-TFT color de 4,3 inci 480x272 cu ecran tactil capacitiv
  • Conector cameră
  • Codec audio SAI
  • Mufă de intrare și ieșire audio
  • Iesiri difuzoare stereo
  • Două microfoane ST MEMS
  • Conector de intrare SPDIF RCA
  • Două butoane (utilizator și resetare)
  • Memorie Flash 128-Mbit Quad-SPI
  • SDRAM 128-Mbit (64 Mbits accesibil)
  • Conector pentru card microSD
  • Conector placa de bază RF-EEPROM
  • USB OTG HS cu conectori Micro-AB
  • USB OTG FS cu conectori Micro-AB
  • Conector Ethernet compatibil cu IEEE-802.3-2002
  • Cinci opțiuni de alimentare:

- ST LINK / V2-1

- Conector USB FS

- Conector USB HS

- VIN de la conectorul Arduino

- 5 V extern de la conector

Ieșire sursă de alimentare pentru aplicații externe:

- 3,3 V sau 5 V

Conectori Arduino Uno V3

Pasul 3: Arduino Due X STM NUCLEO-L476RG

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

Iată o comparație cu Arduino Due, care este un ARM Cortex-M3. Am folosit acest model în videoclipuri: Motor pas cu pas Nema 23 cu driver TB6600 cu Arduino Due și SpeedTest: Arduinos - ESP32 / 8266s - STM32, cu STM NUCLEO-L476RG, care este un ARM Cortex-M4 Ultra Low Power, și este în imaginea din partea dreaptă.

Arduino datorat:

Microcontroler: AT91SAM3X8E

Tensiune de operare: 3.3V

Tensiunea de intrare (recomandată): 7-12V

Tensiunea de intrare (limite): 6-16V

Pin I / O digitale: 54 (din care 12 furnizează ieșire PWM)

Pinii de intrare analogici: 12

Pinii de ieșire analogici: 2 (DAC)

Curent total de ieșire DC pe toate liniile I / O: 130 mA

Curent continuu pentru pin 3.3V: 800 mA

Curent continuu pentru pin 5V: 800 mA

Memorie Flash: 512 KB, toate disponibile pentru aplicațiile utilizatorului

SRAM: 96 KB (două bănci: 64 KB și 32 KB)

Viteza de ceas: 84 MHz

Lungime: 101,52 mm

Lățime: 53,3 mm

Greutate: 36 g

STM NUCLEO-L476RG:

STM32L476RGT6 în pachetul LQFP64

CPU ARM®32-bit Cortex®-M4

Accelerator adaptiv în timp real

(ART Accelerator ™) care permite executarea stării 0-așteptare din memoria Flash

Frecvența procesorului maxim 80 MHz

VDD de la 1,71 V la 3,6 V

1 MB Flash

128 KB SRAM

SPI (3)

I2C (3)

USART (3)

UART (2)

LPUART (1)

GPIO (51) cu capacitate de întrerupere externă

Detecție capacitivă cu 12 canale

ADC pe 12 biți (3) cu 16 canale

DAC pe 12 biți cu 2 canale

FPU sau unitate cu virgulă mobilă

* Pun în evidență aici FPU-ul separat al STM NUCLEO-L476RG, ceea ce înseamnă că cipul face calcule trigonometrice cu o viteză uimitoare. Acest lucru este diferit de Arduino Due, care are nevoie de un procesor genetic pentru a face acest lucru.

Pasul 4: Dhrystone

Dhrystone
Dhrystone
Dhrystone
Dhrystone

Dhrystone este un program de referință pentru calculatoare sintetice dezvoltat în 1984 de Reinhold P. Weicker, care este destinat să fie reprezentativ pentru programarea sistemului (întreg). Dhrystone a devenit un reprezentant al performanței generale a procesorului (CPU). Numele „Dhrystone” este un joc de cuvinte pe un alt algoritm de referință numit Whetstone. Aceasta este o măsură luată din unele operații generice.

Acest program este aici pentru a compila ceva în aceste microcontrolere în Arduino. Iar rezultatul a două teste pe care le-am făcut, unul cu Dhrystone și altul din videoclipul SpeedTest, sunt după cum urmează:

Arduino Due: 37,00 USD

Dhrystone Benchmark, versiunea 2.1 (limbă: C)

Începe execuția, 300.000 trec prin Dhrystone

Execuția se termină

Microsecunde pentru o singură trecere prin Dhrystone: 10.70

Pietre pe secundă: 93, 431,43

Evaluarea VAX MIPS = 53,18 DMIPS

Test de alergare Fernandok

Timp total: 2, 458 ms

  • Nu are FPU
  • Software Dhrystone pe Arduino

www.saanlima.com/download/dhry21a.zip

STM NUCLEO-L476RG: 23,00 USD

Dhrystone Benchmark, versiunea 2.1 (limbă: C)

Începe execuția, 300.000 trec prin Dhrystone

Execuția se încheie

Microsecunde pentru o singură trecere prin Dhrystone: 9,63

Pietre pe secundă: 103, 794,59

Evaluarea VAX MIPS = 59,07 DMIPS

Test de alergare Fernandok

Timp total: 869 ms 2,8x MAI RAPID

  • PI până la 40Mbit / s, USART 10Mbit / s
  • 2x DMA (14 canale)
  • Până la 80 MHz / 100 DMIPS cu accelerator ART

Pasul 5: STM32L432KC X Arduino Nano

STM32L432KC X Arduino Nano
STM32L432KC X Arduino Nano

Placa din stânga este STM32L432KC, în care STMicroelectronics a plasat pinout-ul identic Arduino Nano în imaginea din dreapta.

Pasul 6: STM32L432KC

STM32L432KC
STM32L432KC

Arm® Cortex®-M4 pe 32 de biți cu putere foarte redusă

MCU + FPU, 100DMIPS, până la 256KB Flash, 64KB SRAM, USB FS, analogic, audio

Până la 26 IO-uri mai rapide, mai tolerante la 5V

  • RTC cu calendar HW, alarme și calibrare
  • Până la 3 canale de detectare capacitive
  • 11x Cronometre: 1x16 biți control avansat al motorului

1x 32 de biți și 2x 16 biți de uz general, 2x 16 biți de bază, 2x temporizatoare de 16 biți cu putere redusă (disponibile în modul Stop), 2x câini de pază, temporizator SysTick

Memorie:

- Până la 256 KB Flash, protecție proprietară pentru citirea codului

- 64 KB SRAM inclusiv 16 KB cu verificare paritate hardware

- Interfață de memorie Quad SPI

Periferice analogice bogate (alimentare independentă)

- 1x ADC pe 12 biți 5 Msps, până la 16 biți cu supra-eșantionare hardware, 200 μA / Msps

- 2 canale de ieșire DAC pe 12 biți, consum redus de energie

- 1x amplificator operațional cu PGA încorporat

- 2x comparativ cu interfețele de putere ultra-redusă

- 1x UPS (interfață audio serial)

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

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

- 1x LPUART (Stop 2 trezire)

- 2x SPI (și 1x SPI Quad)

- CAN (2.0B activ)

- Master SWPMI I / F de protocol cu un singur fir

- IRTIM (interfață cu infraroșu)

  • Controler DMA cu 14 canale
  • Generator de numere aleatorii

Pasul 7: Instalați Core Arduino pentru carduri STM32L4

Instalați Core Arduino pentru carduri STM32L4
Instalați Core Arduino pentru carduri STM32L4
  1. Instalați programul ST-Link care înregistrează
  2. Adresa Json
  3. Panouri: Manager card
  4. Biblioteci: Manager bibliotecă

Pasul 8: Instalați ST-Link - Program care înregistrează

Instalați ST-Link - Program care înregistrează
Instalați ST-Link - Program care înregistrează

Descărcați fișierul de la https://www.st.com/en/development-tools/stsw-link0…. Doar înregistrați-vă, descărcați și instalați dispozitivul.

Pasul 9: Adresați-vă lui Json

Adresa lui Json
Adresa lui Json

În proprietăți, includeți următoarea adresă:

github.com/stm32duino/BoardManagerFiles/ra…

Pasul 10: Consilii: Director de consiliu

Consilii de administrație: Director de consiliu
Consilii de administrație: Director de consiliu

În Arduino Board Manager, instalați STM32 Core, care este de aproximativ 40 MB.

Pasul 11: Biblioteci: Manager bibliotecă

Biblioteci: Manager bibliotecă
Biblioteci: Manager bibliotecă

În cele din urmă, instalați bibliotecile.

Mi-a plăcut personal grupul STM32duino.com, care are mai multe exemple, dintre care unele le-am instalat. Am descărcat și un FreeRTOS, care mi-a plăcut mult. Mi s-a părut rapid și de încredere. De asemenea, am instalat (dar nu am testat încă) LRWAN. În curând îți voi spune dacă este bine sau nu.

Pasul 12: Descărcați PDF

PDF

Recomandat: