ST-LOGO

Microcontrollori STM32WL3x

STM32WL3x-Microcontrollori-PRODOTTO

Istruzioni per l'uso del prodotto

  • Il pacchetto STM32CubeWL3 include API di basso livello (LL) e di livello di astrazione hardware (HAL) che coprono l'hardware del microcontrollore.
  • Fornisce inoltre componenti middleware come SigfoxTM, FatFS e il kernel FreeRTOS.
  • Il pacchetto include examples e applicazioni per una facile implementazione.
  • L'architettura STM32CubeWL3 è costruita su tre livelli: Applicazioni, HAL e LL.
  • Le API HAL e LL coprono un'ampia gamma di requisiti applicativi.
  • L'HAL offre un utilizzo periferico di base, ad esempioamples, e LL fornisce routine di basso livello.
  • Questo livello include i sottolivelli Board Support Package (BSP) e HAL.
  • BSP offre API per i componenti hardware sulle schede, mentre HAL fornisce l'utilizzo di periferiche di base, ad esempioampmeno.
  • I driver BSP collegano i driver dei componenti a schede specifiche, facilitando il porting su altro hardware.
  • STM32CubeWL3 HAL e LL sono complementari e soddisfano un'ampia gamma di requisiti applicativi.
  • Gli utenti possono sfruttare queste API per interagire in modo efficiente con l'hardware del microcontrollore.

Introduzione

STM32Cube è un'iniziativa originale di STMicroelectronics volta a migliorare significativamente la produttività dei progettisti riducendo gli sforzi, i tempi e i costi di sviluppo. STM32Cube copre l'intero portafoglio STM32. STM32Cube include:

STM32Cube include:

  • Un insieme di strumenti di sviluppo software user-friendly per coprire lo sviluppo del progetto dall'ideazione alla realizzazione, tra cui:
    • STM32CubeMX, uno strumento di configurazione software grafico che consente la generazione automatica del codice di inizializzazione C utilizzando procedure guidate grafiche
    • STM32CubeIDE, uno strumento di sviluppo all-in-one con funzionalità di configurazione delle periferiche, generazione di codice, compilazione di codice e debug
    • STM32CubeCLT, un set di strumenti di sviluppo da riga di comando all-in-one con compilazione di codice, programmazione di schede e funzionalità di debug
    • STM32CubeProgrammer (STM32CubeProg), uno strumento di programmazione disponibile in versioni grafiche e da riga di comando
    • STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), potenti strumenti di monitoraggio per ottimizzare il comportamento e le prestazioni delle applicazioni STM32 in tempo reale
  • Pacchetti MCU e MPU STM32Cube, piattaforme software embedded complete specifiche per ogni serie di microcontrollori e microprocessori (come STM32CubeWL3 per la linea di prodotti STM32WL3x), che includono:
    • STM32Cube Hardware Abstraction Layer (HAL), che garantisce la massima portabilità nel portafoglio STM32
    • API a basso livello STM32Cube, che garantiscono le migliori prestazioni e footprint con un alto grado di controllo dell'utente sull'hardware
    • Un set coerente di componenti middleware come il kernel FreeRTOS™, FatFS e Sigfox™
    • Tutte le utilità software integrate con set completi di periferiche e applicazioni examples
  • Pacchetti di espansione STM32Cube, che contengono componenti software integrati che completano le funzionalità dei pacchetti MCU e MPU STM32Cube con:
    • Estensioni del middleware e livelli applicativi
    • Exampfile in esecuzione su alcune schede di sviluppo STMicroelectronics specifiche
  • Questo manuale utente descrive come iniziare a utilizzare il pacchetto MCU STM32CubeWL3.

La Sezione 2 descrive le caratteristiche principali di STM32CubeWL3 e la Sezione 3 fornisce una panoramicaview della sua architettura e della struttura del pacchetto MCU.

informazioni generali

  • STM32CubeWL3 esegue applicazioni dimostrative sub-GHz, inclusi i binari Sigfox™, sui microcontrollori della linea di prodotti STM32WL3x basati sul processore Arm® Cortex®‑M0+.
  • I microcontrollori STM32WL3x incorporano la periferica radio RF sub-GHz all'avanguardia di STMicroelectronics, ottimizzata per consumi energetici estremamente bassi ed eccellenti prestazioni radio, per una durata della batteria senza pari.

Nota: Arm è un marchio registrato di Arm Limited (o delle sue consociate) negli Stati Uniti e/o altrove.

STM32WL3x-Microcontrollori-FIG-1

Caratteristiche principali di STM32CubeWL3

  • Il pacchetto MCU STM32CubeWL3 funziona su microcontrollori STM32 a 32 bit basati sul processore Arm® Cortex®‑M0+. Raccoglie, in un unico pacchetto, tutti i componenti software embedded generici necessari per sviluppare un'applicazione per Linea di prodotti STM32WL3x microcontrollori.
  • Il pacchetto include API di basso livello (LL) e di livello di astrazione hardware (HAL) che coprono l'hardware del microcontrollore, insieme a un ampio set di examples in esecuzione su schede STMicroelectronics. Le API HAL e LL sono disponibili in una licenza BSD open source per la comodità dell'utente. Include anche i componenti middleware del kernel Sigfox™, FatFS e FreeRTOS™.
  • Il pacchetto MCU STM32CubeWL3 fornisce inoltre numerose applicazioni e dimostrazioni che implementano tutti i suoi componenti middleware.
  • La disposizione dei componenti del pacchetto MCU STM32CubeWL3 è illustrata nella Figura 1.

STM32WL3x-Microcontrollori-FIG-2

Architettura STM32CubeWL3 suview

  • La soluzione del pacchetto MCU STM32CubeWL3 è costruita su tre livelli indipendenti che interagiscono facilmente come descritto nella Figura 2.

STM32WL3x-Microcontrollori-FIG-3

Livello 0
Questo livello è diviso in tre sottolivelli:

  • Pacchetto di supporto al consiglio di amministrazione (BSP).
  • Livello di astrazione hardware (HAL):
    • Driver periferici HAL
    • Driver di basso livello
  • Utilizzo delle periferiche di base, ad esampmeno.

Pacchetto di supporto al consiglio di amministrazione (BSP)
Questo livello offre un set di API relative ai componenti hardware nelle schede hardware (come LED, pulsanti e driver COM). È composto da due parti:

Componente:

  • Questo è il driver relativo al dispositivo esterno sulla scheda e non allo STM32. Il driver del componente fornisce API specifiche ai componenti esterni del driver BSP e potrebbe essere trasportabile su qualsiasi altra scheda.
    • Driver BSP:
  • Consente di collegare i driver dei componenti a una scheda specifica e fornisce una serie di API intuitive. La regola di denominazione dell'API è BSP_FUNCT_Action().
  • Exampfile: BSP_LED_Init(), BSP_LED_On()

BSP è basato su un'architettura modulare che consente un facile porting su qualsiasi hardware semplicemente implementando le routine di basso livello.

Livello di astrazione hardware (HAL) e livello basso (LL)

STM32CubeWL3 HAL e LL sono complementari e coprono un'ampia gamma di requisiti applicativi:

  • I driver HAL offrono API altamente portabili e orientate alle funzioni di alto livello. Nascondono l'MCU e la complessità delle periferiche all'utente finale.
    I driver HAL forniscono API generiche multi-istanza orientate alle funzionalità, che semplificano l'implementazione dell'applicazione utente fornendo processi pronti all'uso. Ad esempioample, per le periferiche di comunicazione (I2C, UART e altre), fornisce API che consentono di inizializzare e configurare la periferica, gestire il trasferimento dati in base al polling, all'interruzione o al processo DMA e gestire gli errori di comunicazione che possono verificarsi durante la comunicazione. Le API del driver HAL sono divise in due categorie:
    • API generiche, che forniscono funzioni comuni e generiche a tutti i microcontrollori della serie STM32.
    • API di estensione, che forniscono funzioni specifiche e personalizzate per una famiglia specifica o un codice articolo specifico.
  • Le API di basso livello forniscono API di basso livello a livello di registro, con una migliore ottimizzazione ma meno portabilità.
    Richiedono una conoscenza approfondita delle specifiche MCU e periferiche.
    I driver LL sono progettati per offrire un layer veloce, leggero e orientato agli esperti, più vicino all'hardware rispetto all'HAL. Contrariamente all'HAL, le API LL non sono fornite per periferiche in cui l'accesso ottimizzato non è una caratteristica fondamentale, o per quelle che richiedono una configurazione software pesante o uno stack di livello superiore complesso.
    I driver LL presentano:
  • Un insieme di funzioni per inizializzare le principali funzionalità della periferica in base ai parametri specificati nelle strutture dati.
  • Un insieme di funzioni per riempire le strutture dati di inizializzazione con i valori di ripristino corrispondenti a ciascun campo.
  • Funzione per la deinizializzazione delle periferiche (i registri delle periferiche vengono ripristinati ai valori predefiniti).
  • Un insieme di funzioni in linea per l'accesso diretto e atomico ai registri.
  • Piena indipendenza da HAL e possibilità di essere utilizzato in modalità standalone (senza driver HAL).
  • Copertura completa delle funzionalità periferiche supportate.

Utilizzo delle periferiche di base, ad esamples
Questo strato racchiude l'example costruiti sulle periferiche STM32 utilizzando solo le risorse HAL e BSP.
Nota: Dimostrazione exampsono disponibili anche esempi più complessiampscenari con periferiche specifiche, come MRSUBG e LPAWUR.

Livello 1
Questo livello è diviso in due sottolivelli:

  • Componenti del middleware
  • Example basati sui componenti middleware

Componenti del middleware
Il middleware è un set di librerie che coprono il kernel FreeRTOS™, FatFS e la libreria di protocolli Sigfox™.
L'interazione orizzontale tra i componenti di questo livello viene eseguita chiamando le API in primo piano.
L'interazione verticale con i driver di basso livello avviene tramite callback specifici e macro statiche implementate nell'interfaccia delle chiamate di sistema della libreria.
Le caratteristiche principali di ciascun componente middleware sono le seguenti:

  • Kernel FreeRTOS™: implementa un sistema operativo in tempo reale (RTOS), progettato per sistemi embedded.
  • Sigfox™: implementa la libreria di protocolli Sigfox™ compatibile con la rete di protocolli Sigfox™ e include la libreria di protocolli di test RF per testare gli strumenti RF Sigfox™.
  • FatFS: implementa il FAT generico file modulo di sistema.

Example basati sui componenti middleware

  • Ogni componente middleware viene fornito con uno o più examples, chiamate anche applicazioni, che mostrano come utilizzarlo.
  • Integrazione esampVengono forniti anche le che utilizzano diversi componenti middleware.

Pacchetto firmware STM32CubeWL3view

Dispositivi e hardware STM32WL3x supportati

  • Cubo STM32 offre un livello di astrazione hardware (HAL) altamente portabile costruito attorno a un'architettura generica. Consente il principio di build-upon layers, come l'utilizzo del livello middleware per implementare le proprie funzioni senza conoscere, in modo approfondito, quale MCU viene utilizzato. Ciò migliora la riutilizzabilità del codice della libreria e garantisce una facile portabilità ad altri dispositivi.
  • Inoltre, con la sua architettura a strati, STM32CubeWL3 offre supporto completo per tutta la linea di prodotti STM32WL3x.
  • L'utente deve solo definire la macro corretta in stm32wl3x.h.
  • La tabella 1 mostra la macro da definire a seconda del dispositivo della linea di prodotti STM32WL3x utilizzato. Questa macro deve essere definita anche nel preprocessore del compilatore.

Tabella 1. Macro per la linea di prodotti STM32WL3x

Macro definita in STM32WL3X.h Dispositivi della linea di prodotti STM32WL3x
stm32wl3x Microcontrollori STM32WL30xx Microcontrollori STM32WL31xx Microcontrollori STM32WL33xx

Tabella 2. Schede per la linea di prodotti STM32WL3x

Asse Dispositivi supportati dalla scheda STM32WL3x
NUCLEO-WL33CC1 STM32WL33CC
NUCLEO-WL33CC2 STM32WL33CC

Il pacchetto MCU STM32CubeWL3 può essere eseguito su qualsiasi hardware compatibile. Gli utenti aggiornano i driver BSP per trasferire l'ex fornitoampsulle loro schede, se queste hanno le stesse caratteristiche hardware (come LED o pulsanti).

Pacchetto firmware terminatoview

  • La soluzione del pacchetto MCU STM32CubeWL3 viene fornita in un unico pacchetto zip, con la struttura mostrata nella Figura 3.

STM32WL3x-Microcontrollori-FIG-4

Attenzione: L'utente non deve modificare i componenti files. L'utente può modificare solo le fonti \Projects. Per ogni scheda, un set di examples viene fornito con progetti preconfigurati per le toolchain EWARM, MDK-ARM e STM32CubeIDE.
La figura 4 mostra la struttura del progetto per le schede NUCLEO-WL33CCx.

STM32WL3x-Microcontrollori-FIG-5

L'exampi les sono classificati in base al livello STM32CubeWL3 a cui si applicano. Sono denominati come segue:

  • Livello 0 esample sono chiamati Example, esamples_LL ed esamples_MIX. Utilizzano rispettivamente driver HAL, driver LL e un mix di driver HAL e LL senza alcun componente middleware. Dimostrazione exampsono disponibili anche les.
  • Livello 1 esamples sono chiamate Applicazioni. Forniscono casi d'uso tipici di ogni componente middleware.

Qualsiasi applicazione firmware per una determinata scheda può essere rapidamente realizzata utilizzando i progetti modello disponibili nelle directory Templates e Templates_LL.
Example, esamples_LL ed esamples_MIX hanno la stessa struttura:

  • \Inc cartella contenente tutte le intestazioni files.
  • Cartella \Src contenente il codice sorgente.
  • Cartelle \EWARM, \MDK-ARM e \STM32CubeIDE contenenti il ​​progetto preconfigurato per ciascuna toolchain.
  • readme.md e readme.html che descrivono l'exampcomportamento e l’ambiente necessario per farlo funzionare.

Introduzione a STM32CubeWL3

Esecuzione di un primo example
Questa sezione spiega quanto è semplice eseguire un primo example all'interno di STM32CubeWL3. Utilizza come illustrazione la generazione di un semplice interruttore LED in esecuzione sulla scheda NUCLEO-WL33CC1:

  1. Scarica il pacchetto MCU STM32CubeWL3.
  2. Decomprimilo o esegui il programma di installazione, se fornito, nella directory che preferisci.
  3. Assicurati di non modificare la struttura del pacchetto mostrata nella Figura 3. Struttura del pacchetto firmware STM32CubeWL3. Nota che è anche consigliato copiare il pacchetto in una posizione vicina al volume root (ovvero C:\ST o G:\Tests), poiché alcuni IDE riscontrano problemi quando il percorso è troppo lungo.

Come eseguire un HAL example
Prima di caricare ed eseguire un example, si consiglia vivamente di leggere l'exampleggimi file per qualsiasi configurazione specifica.

  1. Passare a \Progetti\NUCLEO-WL33CC\Exampmeno.
  2. Aprire le cartelle \GPIO, quindi \GPIO_EXTI.
  3. Apri il progetto con la toolchain preferita. Un rapidoview su come aprire, creare ed eseguire un example con le toolchain supportate è riportato di seguito.
  4. Ricostruisci tutto files e caricare l'immagine nella memoria di destinazione.
  5. Eseguire l'example. Per maggiori dettagli, fare riferimento all'exampleggimi file.

Per aprire, costruire e gestire un exampcon ciascuna delle toolchain supportate, segui i passaggi sottostanti:

  • ECALDO:
    1. Sotto l'Esamples, aprire la sottocartella \EWARM.
    2. Avviare l'area di lavoro Project.eww (il nome dell'area di lavoro potrebbe cambiare da uno example ad un altro).
    3. Ricostruisci tutto files: [Progetto]>[Ricostruisci tutto].
    4. Caricare l'immagine del progetto: [Progetto]>[Debug].
    5. Eseguire il programma: [Debug]>[Vai (F5)].
  • MDK-BRACCIO:
    1. Sotto l'Esamples, aprire la sottocartella \MDK-ARM.
    2. Aprire l'area di lavoro Project.uvproj (il nome dell'area di lavoro potrebbe cambiare da uno ad esempioample ad un altro).
    3. Ricostruisci tutto files: [Progetto]>[Ricostruisci tutti i target fileS].
    4. Caricare l'immagine del progetto: [Debug]>[Avvia/Interrompi sessione di debug].
    5. Eseguire il programma: [Debug]>[Esegui (F5)].
  • STM32CubeIDE:
    1. Apri la toolchain STM32CubeIDE.
    2. Clicca su [File]>[Cambia area di lavoro]>[Altro] e passare alla directory dell'area di lavoro STM32CubeIDE.
    3. Clicca su [File]>[Importa], seleziona [Generale]>[Progetti esistenti nell'area di lavoro], quindi fai clic su [Avanti].
    4. Passare alla directory dell'area di lavoro STM32CubeIDE e selezionare il progetto.
    5. Ricostruisci tutto il progetto files: Selezionare il progetto nella finestra Esplora progetti, quindi fare clic sul menu [Progetto]>[Compila progetto].
    6. Eseguire il programma: [Esegui]>[Debug (F11)].

Sviluppo di un'applicazione personalizzata

Utilizzo di STM32CubeMX per sviluppare o aggiornare un'applicazione

  • Nel pacchetto MCU STM32Cube, quasi tutti i progetti esampi le vengono generati con lo strumento STM32CubeMX per inizializzare il sistema, le periferiche e il middleware.

L'utilizzo diretto di un progetto esistente esampil file dallo strumento STM32CubeMX richiede STM32CubeMX 6.12.0 o versione successiva:

  • Dopo l'installazione di STM32CubeMX, aprire e, se necessario, aggiornare un progetto proposto.
    Il modo più semplice per aprire un progetto esistente è fare doppio clic sul file *.ioc file in modo che STM32CubeMX apra automaticamente il progetto e la sua fonte files. STM32CubeMX genera il codice sorgente di inizializzazione di tali progetti.
  • Il codice sorgente dell'applicazione principale è contenuto nei commenti "USER CODE BEGIN" e "USER CODE END". Se la selezione e le impostazioni periferiche vengono modificate, STM32CubeMX aggiorna la parte di inizializzazione del codice preservando il codice sorgente dell'applicazione principale.
  • Per sviluppare un progetto personalizzato con STM32CubeMX, seguire la procedura dettagliata:
    1. Configurare tutto il software embedded necessario utilizzando un risolutore di conflitti di pinout, un helper per l'impostazione dell'albero del clock, un calcolatore del consumo energetico e l'utilità che esegue la configurazione delle periferiche MCU (come GPIO o USART).
    2. Genera il codice C di inizializzazione in base alla configurazione selezionata. Questo codice è pronto per l'uso in diversi ambienti di sviluppo. Il codice utente viene mantenuto alla successiva generazione del codice.
      Per ulteriori informazioni su STM32CubeMX, fare riferimento al manuale utente STM32CubeMX per la configurazione STM32 e la generazione del codice C di inizializzazione (UM1718).

Applicazioni del conducente
Applicazione HAL
Questa sezione descrive i passaggi necessari per creare un'applicazione HAL personalizzata utilizzando STM32CubeWL3

  1. Crea un progetto
    Per creare un nuovo progetto, iniziare dal progetto modello fornito per ogni scheda in \Progetti\ \Modelli o da qualsiasi progetto disponibile in \Progetti\ \Examples o \Progetti\ \Applicazioni (dove si riferisce al nome della scheda).
    Il progetto Template fornisce una funzione di ciclo principale vuota. Tuttavia, è un buon punto di partenza per comprendere le impostazioni del progetto STM32CubeWL3. Il template ha le seguenti caratteristiche:
    • Contiene il codice sorgente HAL, CMSIS e i driver BSP, che rappresentano l'insieme minimo di componenti richiesti per sviluppare un codice su una determinata scheda.
    • Contiene i percorsi inclusi per tutti i componenti firmware.
    • Definisce i dispositivi della linea di prodotti STM32WL3x supportati, consentendo la corretta configurazione dei driver CMSIS e HAL.
    • Fornisce all'utente pronto all'uso fileè preconfigurato come mostrato di seguito:
    • HAL inizializzato con la base temporale predefinita con il core Arm® SysTick.
    • SysTick ISR implementato per lo scopo HAL_Delay().
    • Nota: quando si copia un progetto esistente in un'altra posizione, assicurarsi che tutti i percorsi inclusi siano aggiornati.
  2. Configurare i componenti del firmware
    I componenti HAL e middleware offrono una serie di opzioni di configurazione in fase di compilazione utilizzando le macro #define dichiarate in un'intestazione file. Una configurazione modello file viene fornito all'interno di ogni componente, che deve essere copiato nella cartella del progetto (solitamente la configurazione file si chiama xxx_conf_template.h, il frammento
    • il modello deve essere rimosso quando lo si copia nella cartella del progetto). La configurazione file fornisce informazioni sufficienti per comprendere l'impatto di ciascuna opzione di configurazione. Informazioni più dettagliate sono disponibili nella documentazione fornita per ciascun componente.
  3. Avvia la libreria HAL
    Dopo essere passati al programma principale, il codice dell'applicazione deve chiamare l'API HAL_Init() per inizializzare la libreria HAL, che svolge le seguenti attività:
    • Configurazione del prefetch della memoria flash e della priorità di interrupt SysTick (tramite macro definite in stm32 wl3x_hal_conf.h).
    • Configurazione di SysTick per generare un interrupt ogni millisecondo alla priorità di interrupt SysTick TICK_INT_PRIO definita in stm32wl3x_hal_conf.h.
    • Impostazione della priorità del gruppo NVIC su 0.
    • Chiamata della funzione di callback HAL_MspInit() definita nell'utente stm32wl3x_hal_msp.c file per eseguire inizializzazioni hardware globali di basso livello.
  4. Configura l'orologio di sistema
    La configurazione dell'orologio di sistema avviene chiamando le due API descritte di seguito:
    • HAL_RCC_OscConfig(): questa API configura gli oscillatori interni ed esterni. L'utente sceglie di
      configurare uno o tutti gli oscillatori.
    • HAL_RCC_ClockConfig(): questa API configura la sorgente del clock di sistema, la latenza della memoria flash e i prescaler AHB e APB.
  5. Inizializzare la periferica
    • Per prima cosa scrivi la funzione di inizializzazione periferica. Procedi come segue:
    • Abilita l'orologio periferico.
    • Configura i GPIO periferici.
    • Configurare il canale DMA e abilitare l'interruzione DMA (se necessario).
    • Abilitare l'interruzione periferica (se necessario).
    • Modificare stm32xxx_it.c per chiamare i gestori di interrupt richiesti (periferica e DMA), se necessario.
    • Scrivere funzioni di callback complete del processo se si intende utilizzare un interrupt periferico o un DMA.
    • Nell'utente main.c file, inizializzare la struttura di gestione della periferica, quindi chiamare la funzione di inizializzazione della periferica per inizializzare la periferica.
  6. Sviluppare un'applicazione
    A questo puntotage, il sistema è pronto e può iniziare lo sviluppo del codice dell'applicazione utente.
    L'HAL fornisce API intuitive e pronte all'uso per configurare la periferica. Supporta polling, interruzioni e un modello di programmazione DMA, per soddisfare qualsiasi requisito applicativo. Per maggiori dettagli su come utilizzare ciascuna periferica, fare riferimento al ricco exampset di file fornito nel pacchetto MCU STM32CubeWL3.

Attenzione: Nell'implementazione HAL predefinita, il timer SysTick viene utilizzato come base temporale: genera interruzioni a intervalli di tempo regolari. Se HAL_Delay() viene chiamato dal processo ISR della periferica, assicurarsi che l'interrupt SysTick abbia una priorità più alta (numericamente inferiore) rispetto all'interrupt della periferica. In caso contrario, il processo PVR del chiamante verrà bloccato. Le funzioni che influenzano le configurazioni della base temporale sono dichiarate come __weak per rendere possibile l'override in caso di altre implementazioni nell'utente file (utilizzando un timer di uso generale, ad esempioample o un'altra fonte temporale). Per maggiori dettagli, fare riferimento a HAL_TimeBase examplui.

Applicazione L.L
Questa sezione descrive i passaggi necessari per creare un'applicazione LL personalizzata utilizzando STM32CubeWL3.

  1. Crea un progetto
    Per creare un nuovo progetto, iniziare dal progetto Templates_LL fornito per ogni scheda in \Projects\ \Templates_LL o da qualsiasi progetto disponibile in \Progetti\ \Examples_ LL ( si riferisce al nome della scheda, ad esempio NUCLEO-WL32CC33).
    Il progetto modello fornisce una funzione di ciclo principale vuota, che è un buon punto di partenza per comprendere le impostazioni del progetto per STM32CubeWL3. Le caratteristiche principali del modello sono le seguenti:
    • Contiene i codici sorgente dei driver LL e CMSIS, che rappresentano il set minimo di componenti necessari per sviluppare il codice su una determinata scheda.
    • Contiene i percorsi inclusi per tutti i componenti firmware richiesti.
    • Seleziona il dispositivo della linea di prodotti STM32WL3x supportato e consente la corretta configurazione dei driver CMSIS e LL.
    • Fornisce all'utente pronto per l'uso files che sono preconfigurati come segue:
    • main.h: livello di astrazione della definizione di LED e USER_BUTTON.
    • main.c: Configurazione dell'orologio di sistema per la massima frequenza.
  2. Porta il LL exampon:
    • Copia/incolla la cartella Templates_LL per mantenere la fonte iniziale oppure aggiorna direttamente un progetto Template s_LL esistente.
    • Quindi, il porting consiste principalmente nella sostituzione di Templates_LL files dall'Esampprogetto mirato les_LL.
    • Conservare tutte le parti specifiche della scheda. Per motivi di chiarezza, le parti specifiche della scheda sono contrassegnate con specific tags:STM32WL3x-Microcontrollori-FIG-6
    • Pertanto, le fasi principali del porting sono le seguenti:
    • Sostituisci stm32wl3x_it.h file.
    • Sostituisci stm32wl3x_it.c file.
    • Sostituisci main.h file e aggiornarlo: mantenere la definizione del LED e del pulsante utente del modello LL in CONFIGURAZIONE SPECIFICA DELLA SCHEDA tags.
    • Sostituisci il main.c file e aggiornalo:
    • Mantenere la configurazione dell'orologio della funzione modello SystemClock_Config() LL in CONFIGURAZIONE SPECIFICA DELLA SCHEDA tags.
    • A seconda della definizione del LED, sostituire ogni occorrenza LDx con un'altra LDy disponibile nel file principale.h.
    • Con queste modifiche, l'example corre sulla tavola presa di mira.

Applicazioni RF, dimostrazioni ed esperimentiamples
Diversi tipi di applicazioni RF, dimostrazioni ed esampi file sono disponibili nel pacchetto STM32CubeWL3.
Sono elencati nelle due sezioni seguenti.

Sub-GHz examplezioni e dimostrazioni
Questi exampdimostrano le caratteristiche principali delle periferiche radio MRSUBG e LPAWUR. Questi exampsono disponibili sotto:

  • Progetti\NUCLEO-WL33CC\Examples\MRSUBG
  • Progetti\NUCLEO-WL33CC\Examples\LPAWUR
  • Progetti\NUCLEO-WL33CC\Dimostrazioni\MRSUBG
  • Progetti\NUCLEO-WL33CC\Dimostrazioni\LPAWUR

Ciascuno example o dimostrazione generalmente consiste in due programmi chiamati Tx e Rx che fungono rispettivamente da trasmettitore e ricevitore:

Examples/MRSUBG

  • MRSUBG_802_15_4: un'implementazione del livello fisico definito dallo standard 802.15.4. Mostra come configurare la radio per trasmettere o ricevere pacchetti 802.15.4.
  • MRSUBG_BasicGeneric: uno scambio di pacchetti base MR_SUBG STM32WL3x.
  • MRSUBG_Chat: una semplice applicazione che mostra come utilizzare Tx e Rx sullo stesso dispositivo.
  • MRSUBG_DatabufferHandler: un example che mostra come effettuare lo scambio tra Databuffer 0 e 1.
  • MRSUBG_Sequencer AutoAck: un example che trasmette e riceve automaticamente i riconoscimenti dei pacchetti (ACK).
  • MRSUBG_WMBusSTD: Scambio di messaggi WM-Bus.
  • WakeupRadio: Un exampper testare la periferica radio LPAWUR.

Dimostrazioni/MRSUBG

  • MRSUBG_RTC_Button_TX: Questo esempioample mostra come impostare il SoC in modalità deep-stop e configurare l'MRSUBG per riattivare il SoC premendo PB2 per inviare un frame o dopo la scadenza del timer RTC.
  • MRSUBG_Sequencer_Sniff: Questo esempioample mostra come impostare il sequencer MRSUBG per funzionare in modalità sniff. Questo esempioample dimostra il lato ricevente e richiede un altro dispositivo come trasmettitore.
  • MRSUBG_Timer: l'applicazione pianifica diverse istanze del timer MRSUBG (con ricaricamento automatico) con intervalli di tempo diversi.
  • MRSUBG_WakeupRadio_Tx: Questo example spiega come impostare il SoC in modalità deep stop e configurare MRSUBG per riattivare il SoC premendo PB2 per inviare un frame. Questo esempioample dimostra il lato trasmettitore e richiede un altro dispositivo come ricevitore LPAWUR. Il ricevitore example si trova nella cartella NUCLEO-WL33CC\Demonstrations\LPAWUR\LPAWUR_WakeupRadio_Rx.

Dimostrazioni/LPAWUR

  • LPAWUR_WakeupRadio_Rx: Questo example spiega come impostare il SoC in modalità deep-stop e configurare l'LPAWUR per riattivare il SoC quando arriva un frame e viene ricevuto correttamente. Questo esempioample dimostra il lato ricevitore e richiede un altro dispositivo come trasmettitore. Il trasmettitore example si trova nella cartella NUCLEO-WL33CC\Demonstrations\MRSUBG\MRSUBG_WakeupRadio_Tx.

Applicazione Sigfox™
Queste applicazioni mostrano come implementare uno scenario Sigfox™ e utilizzare le API Sigfox™ disponibili. Sono disponibili nel percorso del progetto Projects\NUCLEO-WL33CC\Applications\Sigfox\:

  • Sigfox_CLI: questa applicazione mostra come utilizzare un'interfaccia a riga di comando (CLI) per inviare comandi che utilizzano il protocollo Sigfox™ per inviare messaggi ed eseguire test di precertificazione.
  • Sigfox_PushButton: questa applicazione consente la valutazione delle capacità radio del dispositivo Sigfox™ STM32WL33xx. Premendo PB1 si trasmette un frame Sigfox™ di prova.

Cronologia delle revisioni

Tabella 3. Cronologia delle revisioni del documento

Data Revisione Cambiamenti
29-mar-2024 1 Versione iniziale.
30-Ott-2024 2 Integrazione completa di STM32CubeWL3 in STM32Cube. Aggiornato:

•         Introduzione

•         Sezione 2: Caratteristiche principali di STM32CubeWL3

•         Sezione 3.2.1: Componenti middleware

•         Sezione 4: Pacchetto firmware STM32CubeWL3view

•         Sezione 5.1: Esecuzione di una prima example

•         Sezione 5.3: Applicazioni RF, dimostrazioni ed esperimentiamples

Aggiunto:

•         Sezione 5.1.1: Come eseguire un HAL example

•         Sezione 5.2.1: Utilizzo di STM32CubeMX per sviluppare o aggiornare un'applicazione

• Ssezione 6.4: Esiste un modello di progetto per l'esempio periferico MRSUBG/LPAWUR?ampmeno?

•         Sezione 6.5: In che modo STM32CubeMX può generare codice basato su software embedded?

RIMOSSO:

•         Strumenti per PC, compreso Navigatore, Interfaccia grafica utente STM32WL3, E Interfaccia utente grafica del sequenziatore MR-SUBG

•         In che modo WiSE-Studio IOMapper può generare codice basato su software embedded?

•         Navigator consente l'accesso alle risorse del pacchetto software?

22-gen-2025 3 Ampliamento della gamma di dispositivi applicabili ai microcontrollori STM32WL30xx e STM32WL31xx nella Tabella 1. Macro per la linea di prodotti STM32WL3x.

AVVISO IMPORTANTE – LEGGERE ATTENTAMENTE

  • STMicroelectronics NV e le sue consociate ("ST") si riservano il diritto di apportare modifiche, correzioni, miglioramenti, migliorie e migliorie ai prodotti ST e/o al presente documento in qualsiasi momento e senza preavviso. Gli acquirenti devono ottenere le ultime informazioni rilevanti sui prodotti ST prima di effettuare ordini. I prodotti ST sono venduti in conformità ai termini e alle condizioni di vendita di ST in vigore al momento della conferma dell'ordine.
  • Gli acquirenti sono gli unici responsabili della scelta, della selezione e dell'uso dei prodotti ST e ST non si assume alcuna responsabilità per l'assistenza applicativa o la progettazione dei prodotti degli acquirenti.
  • Nel presente documento ST non concede alcuna licenza, espressa o implicita, su alcun diritto di proprietà intellettuale.
  • La rivendita di prodotti ST con disposizioni diverse dalle informazioni qui stabilite invaliderà qualsiasi garanzia concessa da ST per tale prodotto.
  • ST e il logo ST sono marchi di ST. Per ulteriori informazioni sui marchi ST, fare riferimento a www.st.com/trademarksTutti gli altri nomi di prodotti o servizi sono di proprietà dei rispettivi proprietari.
  • Le informazioni contenute nel presente documento annullano e sostituiscono le informazioni fornite in precedenza in qualsiasi versione precedente del documento.
  • © 2025 STMicroelectronics – Tutti i diritti riservati

Domande frequenti

Quando dovrei utilizzare HAL invece dei driver LL?

I driver HAL offrono API di alto livello e orientate alle funzioni, con un alto livello di portabilità. La complessità del prodotto o della periferica è nascosta agli utenti finali. I driver LL offrono API di livello registro di basso livello con una migliore ottimizzazione ma meno portabili. Richiedono una conoscenza approfondita delle specifiche del prodotto o dell'IP.

Come vengono abilitate le API di inizializzazione LL?

La definizione delle API di inizializzazione LL e dei letterali e prototipi delle strutture di risorse associate è condizionata dall'interruttore di compilazione USE_FULL_LL_DRIVER. Per poter utilizzare le API di inizializzazione LL, aggiungere questo interruttore nel preprocessore del compilatore della toolchain.

Esiste un modello di progetto per l'ex periferica MRSUBG/LPAWUR?ampmeno?

Per creare un nuovo MRSUBG o LPAWUR exampil progetto, inizia dal progetto scheletro fornito in Pr ojectsNUCLEO- 33CC Examples MRSUBG o ProgettiNUCLEO-WL33CC Examples LPAWUR o da qualsiasi progetto disponibile nelle stesse directory.

Come può STM32CubeMX generare codice basato su software incorporato?

STM32CubeMX ha una conoscenza integrata dei microcontrollori STM32, comprese le loro periferiche e il software, che gli consente di fornire una rappresentazione grafica all'utente e di generare file .h o .c filesi basa sulla configurazione dell'utente.

Documenti / Risorse

Microcontrollori ST STM32WL3x [pdf] Manuale d'uso
Microcontrollori STM32WL3x, STM32WL3x, Microcontrollori

Riferimenti

Lascia un commento

Il tuo indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *