Table des matières:

L'incroyable STM32 L4 ! : 12 étapes
L'incroyable STM32 L4 ! : 12 étapes

Vidéo: L'incroyable STM32 L4 ! : 12 étapes

Vidéo: L'incroyable STM32 L4 ! : 12 étapes
Vidéo: «Интернет вещей», Джеймс Уиттакер из Microsoft 2024, Novembre
Anonim
Image
Image
DECOUVERTE STM32F746G
DECOUVERTE STM32F746G

Je veux commencer cet article en expliquant que cette lettre L (du L4) signifie Low (ou, fondamentalement, Ultra Low Power). Ainsi, il dépense peu d'énergie et montre pourquoi ce STM32 est incroyable ! Il dépense des microampères et possède un système à l'intérieur qui peut identifier les dépenses de chaque partie de la puce. Cela permet une gestion très efficace de l'énergie, et avec des performances élevées.

J'ai déjà parlé de ce microcontrôleur dans la vidéo « La façon la plus simple de programmer un microcontrôleur ! » Dans la vidéo, j'ai montré comment programmer le STM32 L4 avec MBED. Mais en recherchant plus à ce sujet, j'ai découvert quelque chose que le fabricant STMicroelectronics ne divulgue pas. Il a implémenté le Core Arduino dans la puce, ce qui permet la programmation via l'IDE Arduino.

Dans cette image, nous avons deux versions de L4. Le STM32L432KC est identique à l'Arduino Nano et au STM32L476RG, qui ont des E/S équivalentes à l'Arduino Uno. Ainsi, tout en travaillant avec deux versions de ce puissant microcontrôleur, je vais vous montrer comment installer l'Arduino Core dans la famille STM32. Aussi, j'expliquerai les principales caractéristiques des kits STM32.

Étape 1: Plaques avec Core Arduino

J'ai placé ici une liste sur la diversité. Cependant, nous allons travailler avec le STM32L432KC et le STM32L476RG.

STM32F0

  • Nucléo F030R8
  • Nucléo F091RC
  • 32F0308DÉCOUVERTE

STM32F1

  • BluePill F103C8 (Prise en charge de base, pas d'USB)
  • MapleMini F103CB (prise en charge de base, pas d'USB)
  • Nucléo F103RB
  • DÉCOUVERTE STM32VLD

STM32F2

Nucléo F207ZG

STM32F3

  • Nucléo F302R8
  • Nucléo F303K8
  • Nucléo F303RE

STM32F4

  • Nucléo F401RE
  • Nucléo F411RE
  • Nucléo F429ZI
  • Nucléo F446RE
  • STM32F407G-DISQUE1

STM32F7

STM32F746G-DÉCOUVERTE

STM32L0

  • Nucléo L031K6
  • Nucléo L053R8
  • B-L072Z-LRWAN1

STM32L1

Nucléo L152RE

STM32L4

  • Nucléo L432KC
  • Nucléo L476RG
  • NUCLEO-L496ZG-P
  • NUCLEO-L496ZG-P
  • B-L475E-IOT01A

Étape 2: DÉCOUVERTE STM32F746G

Juste pour illustrer, je montre les détails d'un STM32F746G DISCOVERY, que je considère comme une bête. J'ai déjà commandé cette puce, et j'espère en parler bientôt.

Caractéristiques:

Microcontrôleur STM32F746NGH6 avec 1 Mo de mémoire Flash et 340 Ko de RAM dans un boîtier BGA216

  • ST-LINK / V2-1 intégré prenant en charge les capacités de réénumération USB
  • Compatible Mbed (mbed.org)
  • Fonctions USB: port COM virtuel, stockage de masse et port de débogage
  • LCD-TFT 4,3 pouces 480x272 couleur avec écran tactile capacitif
  • Connecteur caméra
  • Codec audio SAI
  • Prise d'entrée et de sortie de ligne audio
  • Sorties haut-parleur stéréo
  • Deux microphones ST MEMS
  • Connecteur d'entrée RCA SPDIF
  • Deux boutons poussoirs (utilisateur et reset)
  • Mémoire Flash Quad-SPI de 128 Mbits
  • SDRAM 128 Mbits (64 Mbits accessibles)
  • Connecteur pour carte microSD
  • Connecteur carte fille RF-EEPROM
  • USB OTG HS avec connecteurs Micro-AB
  • USB OTG FS avec connecteurs Micro-AB
  • Connecteur Ethernet conforme à IEEE-802.3-2002
  • Cinq options d'alimentation:

- ST LINK / V2-1

- Connecteur USB FS

- Connecteur USB HS

- VIN du connecteur Arduino

- Externe 5 V du connecteur

Sortie d'alimentation pour applications externes:

- 3,3 V ou 5 V

Connecteurs Arduino Uno V3

Étape 3: Arduino Due X STM NUCLEO-L476RG

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

Voici une comparaison avec l'Arduino Due, qui est un ARM Cortex-M3. J'ai utilisé ce modèle dans des vidéos: Nema 23 Stepper Motor with Driver TB6600 avec Arduino Due, et SpeedTest: Arduinos - ESP32/8266s - STM32, avec STM NUCLEO-L476RG, qui est un ARM Cortex-M4 Ultra Low Power, et est en l'image sur le côté droit.

Arduino en raison:

Microcontrôleur: AT91SAM3X8E

Tension de fonctionnement: 3,3 V

Tension d'entrée (recommandée): 7-12 V

Tension d'entrée (limites): 6-16 V

Broches d'E/S numériques: 54 (dont 12 fournissent une sortie PWM)

Broches d'entrée analogique: 12

Broches de sortie analogique: 2 (DAC)

Courant de sortie CC total sur toutes les lignes d'E/S: 130 mA

Courant CC pour broche 3,3 V: 800 mA

Courant CC pour broche 5V: 800 mA

Mémoire Flash: 512 Ko tous disponibles pour les applications utilisateur

SRAM: 96 Ko (deux banques: 64 Ko et 32 Ko)

Vitesse d'horloge: 84 MHz

Longueur: 101,52 mm

Largeur: 53,3 mm

Poids: 36g

STM NUCLEO-L476RG:

STM32L476RGT6 dans le boîtier LQFP64

Processeur ARM® 32 bits Cortex®-M4

Accélérateur adaptatif en temps réel

(ART Accelerator ™) permettant l'exécution de l'état d'attente 0 à partir de la mémoire Flash

Fréquence CPU maximale de 80 MHz

VDD de 1,71 V à 3,6 V

Flash de 1 Mo

128 Ko de mémoire SRAM

SPI (3)

I2C (3)

USART (3)

UART (2)

LPUART (1)

GPIO (51) avec capacité d'interruption externe

Détection capacitive avec 12 canaux

CAN 12 bits (3) avec 16 canaux

DAC 12 bits avec 2 canaux

FPU ou unité à virgule flottante

* Je souligne ici ces FPU séparés de STM NUCLEO-L476RG, ce qui signifie que la puce effectue des calculs trigonométriques à une vitesse incroyable. Ceci est différent de l'Arduino Due, qui a besoin d'un processeur génétique pour le faire.

Étape 4: Drystone

Dhrstone
Dhrstone
Dhrstone
Dhrstone

Dhrystone est un programme de référence informatique synthétique développé en 1984 par Reinhold P. Weicker, qui se veut représentatif de la programmation système (entière). Dhrystone est devenu un représentant des performances globales du processeur (CPU). Le nom "Dhrystone" est un jeu de mots sur un algorithme de référence différent appelé Whetstone. Il s'agit d'une mesure tirée de certaines opérations génériques.

Ce programme est là pour compiler quelque chose à l'intérieur de ces microcontrôleurs en Arduino. Et le résultat de deux tests que j'ai fait, un avec Dhrystone et un autre de la vidéo SpeedTest, sont les suivants:

Arduino à payer: 37,00 USD

Dhrystone Benchmark, Version 2.1 (Langue: C)

L'exécution commence, 300 000 passages à travers Dhrystone

L'exécution se termine

Microsecondes pour un passage sur Dhrystone: 10,70

Dhrystones par seconde: 93 431.43

Note VAX MIPS = 53,18 DMIPS

Test de fonctionnement Fernandok

Temps total: 2 458 ms

  • N'a pas de FPU
  • Logiciel Dhrystone sur Arduino

www.saanlima.com/download/dhry21a.zip

STM NUCLEO-L476RG: 23,00 $ US

Dhrystone Benchmark, Version 2.1 (Langue: C)

L'exécution commence, 300 000 passages à travers Dhrystone

L'exécution se termine

Microsecondes pour un passage sur Dhrystone: 9,63

Dhrystones par seconde: 103 794,59

Note VAX MIPS = 59,07 DMIPS

Test de fonctionnement Fernandok

Temps total: 869 ms 2,8x PLUS RAPIDE

  • PI jusqu'à 40Mbit/s, USART 10Mbit/s
  • 2x DMA (14 canaux)
  • Jusqu'à 80 MHz / 100 DMIPS avec ART Accelerator

Étape 5: STM32L432KC X Arduino Nano

STM32L432KC X Arduino Nano
STM32L432KC X Arduino Nano

La carte de gauche est la STM32L432KC, dans laquelle STMicroelectronics a placé le même brochage Arduino Nano dans l'image de droite.

Étape 6: STM32L432KC

STM32L432KC
STM32L432KC

Arm® Cortex®-M4 à très faible consommation d'énergie 32 bits

MCU + FPU, 100DMIPS, jusqu'à 256 Ko de Flash, 64 Ko de SRAM, USB FS, analogique, audio

Jusqu'à 26 E/S plus rapides, plus tolérantes à 5V

  • RTC avec calendrier HW, alarmes et étalonnage
  • Jusqu'à 3 canaux de détection capacitifs
  • 11x minuteries: contrôle moteur avancé 1x16 bits

1x 32 bits et 2x 16 bits à usage général, 2x 16 bits basiques, 2x temporisateurs 16 bits basse consommation (disponibles en mode Stop), 2x chiens de garde, temporisateur SysTick

Mémoire:

- Jusqu'à 256 Ko de Flash, protection contre la lecture de code propriétaire

- 64 Ko de SRAM dont 16 Ko avec contrôle de parité matérielle

- Interface mémoire Quad SPI

Périphériques analogiques riches (alimentation indépendante)

- 1x ADC 12 bits 5 Msps, jusqu'à 16 bits avec suréchantillonnage matériel, 200 μA / Msps

- 2 canaux de sortie DAC 12 bits, faible consommation d'énergie

- 1x amplificateur opérationnel avec PGA intégré

- 2x par rapport aux interfaces ultra basse consommation

- 1x UPS (interface audio série)

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

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

- 1x LPUART (Stop 2 réveil)

- 2x SPI (et 1x SPI Quad)

- CAN (2.0B actif)

- Maître de protocole monofil SWPMI I/F

- IRTIM (interface infrarouge)

  • Contrôleur DMA 14 canaux
  • Générateur de nombres aléatoires

Étape 7: Installez Core Arduino pour les cartes STM32L4

Installez Core Arduino pour les cartes STM32L4
Installez Core Arduino pour les cartes STM32L4
  1. Installez le programme ST-Link qui enregistre
  2. Adresse Json
  3. Tableaux: Gestionnaire de cartes
  4. Bibliothèques: Gestionnaire de bibliothèque

Étape 8: Installez ST-Link - Programme qui enregistre

Installez ST-Link - Programme qui enregistre
Installez ST-Link - Programme qui enregistre

Téléchargez le fichier sur https://www.st.com/en/development-tools/stsw-link0…. Il vous suffit de vous inscrire, de télécharger et d'installer l'appareil.

Étape 9: Adresse Json

Adresse Json
Adresse Json

Sur les propriétés, incluez l'adresse suivante:

github.com/stm32duino/BoardManagerFiles/ra…

Étape 10: Tableaux: Gestionnaire de tableau

Conseils: directeur du conseil
Conseils: directeur du conseil

Dans le gestionnaire de carte Arduino, installez le noyau STM32, qui fait environ 40 Mo.

Étape 11: Bibliothèques: Gestionnaire de bibliothèque

Bibliothèques: Gestionnaire de bibliothèque
Bibliothèques: Gestionnaire de bibliothèque

Enfin, installez les bibliothèques.

J'ai personnellement aimé le groupe STM32duino.com, qui a plusieurs exemples, dont certains que j'ai installés. J'ai également téléchargé un FreeRTOS, que j'ai beaucoup aimé. Je l'ai trouvé rapide et fiable. J'ai également installé (mais pas encore testé) LRWAN. Je vous dirai bientôt si c'est bon ou pas.

Étape 12: Télécharger le PDF

PDF

Conseillé: