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
Scheda NUCLEO-L432KC con 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
Creare un nuovo progetto per il microcontrollore 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
Configurazione del risonatore al quarzo o ceramico

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
Configurazione del clock a 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
Impostazioni del progetto STM32CubeMX (nome, posizione e IDE della toolchain)
Setting code generator on STM32CubeMX
Impostazione del generatore di codice in 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
Scaricare il pacchetto software stm32cube

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

Successfully generated stm32l432kc project code
Codice del progetto stm32l432kc generato correttamente

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
Cartella del progetto STM32CubeMX

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
Aggiungere il codice di lampeggio del LED al file main.c
				
					/* 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
Ricompilare tutti i file di destinazione del progetto 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
Configurare le opzioni di destinazione e scaricare il programma per 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
Scaricare il codice nella memoria flash

Condividi con:

Torna in alto

Instant Quote

Preventivo immediato