Introduzione a STM32L432: Panoramica, specifiche, applicazioni ed esempio di controllo GPIO

Panoramica di STM32L432

STM32L432 è un microcontrollore a bassissimo consumo sviluppato da STMicroelectronics. È basato sul core ARM Cortex-M4 ed è progettato per sistemi embedded a basso consumo energetico. Combinando potenti capacità di calcolo con un basso consumo energetico, è ideale per dispositivi IoT e applicazioni portatili.

Specifiche

La serie STM32L432 offre le seguenti caratteristiche tecniche principali:

  • Core del processore:

    • Processore RISC a 32 bit ARM Cortex-M4
    • Funziona fino a 80 MHz con supporto per moltiplicazione a ciclo singolo e divisione hardware
    • Unità a virgola mobile (FPU) integrata e istruzioni di elaborazione del segnale digitale (DSP)
  • Memoria:

    • 256 KB di Flash (memoria programmabile on-chip)
    • 64 KB di SRAM
    • Supporto per l’espansione della memoria esterna
  • Funzionalità a basso consumo:

    • Modalità a basso consumo multiple: Sleep, Stop e Standby
    • Consumo dinamico di energia: solo 37 µA/MHz a 80 MHz
    • Corrente in modalità Stop: circa 250 nA
    • Ampio intervallo di tensione: da 1,8 V a 3,6 V con gestione dell’alimentazione integrata
  • Interfacce e periferiche:

    • GPIO: fino a 51 pin di input/output generici
    • Interfacce di comunicazione: USART/UART, I2C, SPI, CAN, USB 2.0 (Full Speed)
    • Timer: timer generici, a basso consumo e avanzati (uscita PWM)
    • ADC/DAC: ADC a 12 bit (16 canali) e DAC a 12 bit
    • Supporto integrato per oscillatore e orologio in tempo reale (RTC)
  • Opzioni di confezionamento:

    • Disponibile in vari confezionamenti (ad esempio, LQFP, UFBGA, WLCSP) per soddisfare diversi requisiti di dimensioni.

Applicazione

Grazie al suo basso consumo energetico e alle elevate prestazioni, STM32L432 è ampiamente utilizzato nei seguenti campi:

  • Dispositivi IoT:

    • Sistemi domestici intelligenti (ad esempio, serrature intelligenti, sensori di temperatura e umidità)
    • Dispositivi indossabili (ad esempio, fitness tracker, apparecchiature per il monitoraggio della salute)
  • Controllo industriale:

    • Sistemi di acquisizione dati e controllo
    • Contatori intelligenti e nodi sensore
  • Dispositivi portatili:

    • Dispositivi alimentati a batteria (ad esempio, strumenti medici portatili)
    • Display a basso consumo (ad esempio, controller dello schermo e-ink)
  • Elettronica di consumo:

    • Giocattoli e robotica
    • Telecomandi intelligenti
  • Applicazioni di sicurezza e crittografia:

    • Supporto per la crittografia hardware AES per comunicazioni sicure

Vantaggi

  • Basso consumo energetico: Ideale per dispositivi alimentati a batteria che richiedono tempi operativi prolungati.
  • Conveniente: Fornisce prestazioni eccellenti a un prezzo competitivo.
  • Ecosistema di sviluppo robusto: Supportato da STM32CubeMX, STM32CubeIDE e una suite completa di librerie e strumenti di ST.
  • Affidabilità: Design di livello industriale, con elevata tolleranza alla temperatura e ampia gamma di tensione di funzionamento.

Controllo GPIO utilizzando la scheda NUCLEO-L432KC

In questo esempio, introdurremo i principi del circuito LED sulla scheda STM32L432KC, creeremo un nuovo progetto utilizzando STM32CubeMX e padroneggeremo le tecniche di programmazione per ottenere l’intermittenza del LED.

NUCLEO L432KC board STM32L432KCU6
NUCLEO-L432KC board STM32L432KCU6

Materiali necessari

  • Scheda di sviluppo NUCLEO-L432KC
  • Cavo USB per alimentazione e comunicazione
  • LED (se è necessario un LED esterno)
  • Resistore (ad esempio, 220Ω per LED esterno)
  • Software STM32CubeMX
  • Ambiente di sviluppo come MDK5 (Keil) o STM32CubeIDE

Passaggio 1: crea un nuovo progetto utilizzando STM32CubeMX

Innanzitutto, seleziona il MCU STM32L432KC e crea un nuovo progetto STM32CubeMX.

Create a new project from MCU STM32L432KC
Create a new project from MCU STM32L432KC

Successivamente, configuriamo l’oscillatore per STM32L432KC. Dallo schema, l’oscillatore a cristallo a bassa velocità esterna è collegato a PC14 e PC15. Configura questi GPIO in modalità “Cristallo/Risonatore ceramico”.

Configuration crystal ceramic resonator
Configuration crystal ceramic resonator

Spiegazione delle modalità dell'oscillatore:

BYPASS Sorgente di clock: il chip bypassa il componente di pilotaggio del clock interno e utilizza direttamente un segnale di clock esterno.

Cristallo/Risonatore ceramico: utilizza un cristallo passivo esterno combinato con il circuito di pilotaggio del clock interno del MCU, offrendo una maggiore precisione ma richiedendo un tempo di avvio.

Configura il GPIO per il LED. Imposta PB3 come modalità “GPIO_Output” con i seguenti parametri:

  • Uscita push-pull
  • Uscita a basso livello predefinita (LED inizialmente spento)
  • Nessun resistore pull-up o pull-down

Configura il clock. Per semplicità, imposta il clock di sistema a 80 MHz, consentendo a STM32CubeMX di configurare automaticamente le impostazioni richieste.

Clock configuration 80 MHz
Clock configuration 80 MHz

Imposta le preferenze di generazione del codice nell’interfaccia Progetto:

  • Assegna un nome al progetto e seleziona lo strumento di sviluppo (ad esempio, MDK5).
  • Abilita “Genera inizializzazione periferica come” per creare file .c separati per le periferiche (ad esempio, GPIO, I2C, SPI).
STM32CubeMX project settings name location toolchain IDE
STM32CubeMX project settings (name, location, toolchain IDE)
Setting code generator on STM32CubeMX
Setting code generator on STM32CubeMX

Dopo aver impostato tutte le opzioni del progetto, possiamo generare il progetto. Se è la prima volta che utilizzi STM32CubeMX, devi scaricare i pacchetti software come di seguito:

Download stm32cube software package
Download stm32cube software package

Successivamente, continua con la generazione del codice e, dopo una generazione riuscita, apri la cartella del progetto.

Successfully generated stm32l432kc project code
Successfully generated stm32l432kc project code

La cartella conterrà sia i file di progetto STM32CubeMX che MDK5, consentendo modifiche convenienti in STM32CubeMX. Ora possiamo avviare il progetto “NUCLEO-L432KC(LED_Blinking)” nella cartella MDK-ARM.

STM32CubeMX project folder
STM32CubeMX project folder

Passaggio 2: scrivi il codice di intermittenza del LED

Individua le funzioni richieste nei file HAL STM32:

  • HAL_GPIO_TogglePin() e HAL_GPIO_WritePin() in stm32l4xx_hal_def.h.
  • HAL_Delay() in stm32l4xx_hal.h.

Implementa il codice sottostante per far lampeggiare il LED ogni 2 secondi:

Add led blinking code to main.c file
Add led blinking code to main.c file
				
					/* USER CODE BEGIN WHILE */
while (1)
{
  // Method 1: Using HAL_GPIO_TogglePin()
  HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_3);
  HAL_Delay(2000);

  // Method 2: Using HAL_GPIO_WritePin()
  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_RESET); // Turn off for 2 seconds
  HAL_Delay(2000);
  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_SET);   // Turn on for 2 seconds
  HAL_Delay(2000);
}
/* USER CODE END WHILE */

				
			

Compila il codice e assicurati che non ci siano errori.

Rebuild all target files for project NUCLEO L432KCLED Blinking
Rebuild all target files for project NUCLEO-L432KC(LED_Blinking)

Passo 3: Configura i parametri di programmazione

La scheda NUCLEO-L432KC dispone di un debugger e programmatore STLINK/V2-1 integrato.

  • Configura il progetto per utilizzare ST-LINK per il download.
  • Imposta i parametri di programmazione come mostrato nell’interfaccia STM32CubeMX, quindi scarica il programma.
Configure target options and download program for NUCLEO L432KC LED Blinking
Configure target options and download program for NUCLEO-L432KC (LED_Blinking)

Passo 4: Programma il programma

Programma il programma compilato sulla scheda NUCLEO-L432KC e osserva il lampeggio del LED.

Download code to flash memory
Download code to flash memory

Condividi con:

Torna in alto

Instant Quote