STM32WL3x-logo

Pacchetto software STM32WL3x

Pacchetto software STM32WL3x -PRODOTTO

Specifiche

  • Nome prodotto: pacchetto software STM32CubeWL3
  • Compatibilità: microcontrollori STM32WL3x
  • Caratteristiche principali:
    • API di livello basso (LL) e di livello di astrazione hardware (HAL)
    • Componenti middleware del kernel SigfoxTM, FatFS e FreeRTOSTM
    • Applicazioni e dimostrazioni

Istruzioni per l'uso del prodotto

Iniziare
Per iniziare a utilizzare il pacchetto software STM32CubeWL3, seguire questi passaggi:

  1. Scarica il pacchetto software dal sito ufficiale websito.
  2. Installare l'ambiente di sviluppo necessario (ad esempio, STM32CubeIDE, EWARM, MDK-ARM).
  3. Fare riferimento all'example e le applicazioni fornite a scopo orientativo.

Architettura STM32CubeWL3 finitaview
Il pacchetto software STM32CubeWL3 è costruito attorno a tre livelli principali

  • Livello 0: Livello di astrazione hardware (HAL) e driver BSP.
  • Livello 1: Applicazioni, librerie e componenti basati su protocollo.

Domande frequenti (FAQ)

D: Quali sono le caratteristiche principali del pacchetto software STM32CubeWL3?
R: Le caratteristiche principali includono API HAL e di basso livello, componenti middleware come SigfoxTM, FatFS, kernel FreeRTOSTM, applicazioni e dimostrazioni.

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:

  • Un set di strumenti di sviluppo software di facile utilizzo per coprire lo sviluppo del progetto dalla concezione 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 di basso livello STM32Cube, che garantiscono le migliori prestazioni e impronte con un elevato 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 affiliate) negli Stati Uniti e/o altrove.

Caratteristiche principali di STM32CubeWL3

  • Il pacchetto MCU STM32CubeWL3 funziona su microcontrollori STM32 a 32 bit basati sul processore Arm® Cortex®‑M0+. Raccoglie, in un singolo pacchetto, tutti i componenti software embedded generici necessari per sviluppare un'applicazione per i microcontrollori della linea di prodotti STM32WL3x.
  • 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.

Figura 1. Componenti del pacchetto MCU STM32CubeWL3 

Pacchetto software STM32WL3x (2)

Architettura STM32CubeWL3 suview

La soluzione del pacchetto MCU STM32CubeWL3 è costruita su tre livelli indipendenti che interagiscono facilmente come descritto nella Figura 2. Pacchetto software STM32WL3x (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 all'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:
  1. API generiche, che forniscono funzioni comuni e generiche a tutti i microcontrollori della serie STM32.
  2. 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 una minore portabilità. Richiedono una conoscenza approfondita delle specifiche MCU e periferiche.
    I driver LL sono progettati per offrire un livello veloce e leggero, orientato agli esperti, più vicino all'hardware rispetto all'HAL. Contrariamente all'HAL, le API LL non vengono fornite per le periferiche in cui l'accesso ottimizzato non è una caratteristica chiave o per quelle che richiedono una configurazione software pesante o uno stack complesso di livello superiore.

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.
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 layer avviene tramite la chiamata delle API in evidenza.
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 utilizzarle. Integrazione exampVengono forniti anche le che utilizzano diversi componenti middleware.

Pacchetto firmware STM32CubeWL3view

Dispositivi e hardware STM32WL3x supportati
STM32Cube offre un livello di astrazione hardware (HAL) altamente portabile costruito attorno a un'architettura generica. Consente il principio di build-upon layer, 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, grazie alla sua architettura a strati, STM32CubeWL3 offre il supporto completo per l'intera 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 il file stm32wl3x.h Dispositivi della linea di prodotti STM32WL3x
stm32wl33 Microcontrollori STM32WL33xx

STM32CubeWL3 è dotato di un ricco set di examples e applicazioni a tutti i livelli, rendendo semplice la comprensione e l'uso di qualsiasi driver HAL o componenti middleware. Questi exampi vengono eseguiti sulle schede STMicroelectronics elencate nella Tabella 2.

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 devono semplicemente aggiornare 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 è fornita in un unico pacchetto zip con la struttura mostrata nella Figura 3.
Figura 3. Struttura del pacchetto firmware STM32CubeWL3

Pacchetto software STM32WL3x (4)

Attenzione:

L'utente non deve modificare i componenti files. L'utente può modificare solo le fonti dei \Progetti.
Per ogni tavola, 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. Pacchetto software STM32WL3x (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 su
    Menu [Progetto]>[Costruisci 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\< STM32xxx_yyy>\Modelli o da qualsiasi progetto disponibile in \Progetti\ \Exampl es 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 STM32CubeWL32. 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 è denominato xxx_conf_template.h, il frammento _template 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 stm3 2wl3x_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 interrupt a intervalli di tempo regolari. Se HAL_Delay() viene chiamato dal processo ISR periferico, assicurarsi che l'interrupt SysTick abbia una priorità più alta (numericamente inferiore) rispetto all'interrupt periferico. In caso contrario, il processo ISR chiamante è
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 generico, ad esample, o un'altra fonte oraria).
Per maggiori dettagli, fare riferimento all'esempio HAL_TimeBaseamplui.

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\ \E xamples_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 Templates_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:
      Pacchetto software STM32WL3x (1)

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 esamples sono disponibili nel pacchetto STM32CubeWL3. Sono elencati nelle due sezioni sottostanti.

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_WakeupRad io_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_WakeupRad io_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.

Domande frequenti

  1. Quando dovrei utilizzare HAL invece dei driver LL?
    I driver HAL offrono API di alto livello e orientate alle funzioni, con un elevato livello di portabilità. La complessità del prodotto o della periferica è nascosta agli utenti finali.
    I driver LL offrono API a livello di registro di basso livello, con una migliore ottimizzazione ma meno portabile. Richiedono una conoscenza approfondita delle specifiche del prodotto o della proprietà intellettuale.
  2. I driver HAL e LL possono essere utilizzati insieme? Se sì, quali sono i vincoli?
    È possibile utilizzare sia i driver HAL che LL. Utilizzare HAL per la fase di inizializzazione periferica e quindi gestire le operazioni di I/O con i driver LL.
    La differenza principale tra HAL e LL è che i driver HAL richiedono di creare e utilizzare handle per la gestione delle operazioni, mentre i driver LL operano direttamente sui registri periferici. La combinazione di HAL e LL è illustrata nell'Examples_MIX esampmeno.
  3. Come vengono abilitate le API di inizializzazione LL?
    La definizione delle API di inizializzazione LL e delle risorse associate (strutture, letterali e prototipi) è condizionata dall'opzione di compilazione USE_FULL_LL_DRIVER.
    Per poter utilizzare le API di inizializzazione LL, aggiungere questa opzione nel preprocessore del compilatore della toolchain.
  4. 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 \Progetti\NUCLEO-WL33CC\Examples\MRSUBG o \Progetti\NUCLEO-WL33CC\Examples\LPAWUR, o da qualsiasi progetto disponibile nelle stesse directory.
  5. 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 *.h o *.c filesi basa sulla configurazione dell'utente.

Cronologia delle revisioni

Tabella 3. Cronologia delle revisioni del documento

Data Revisione Cambiamenti
29-mar-2024 1 Versione iniziale.
30-Ott-2024 2 Piena integrazione di STM32CubeWL3 in Cubo STM32. Aggiornato:

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?

Documenti / Risorse

Pacchetto software ST STM32WL3x [pdf] Istruzioni
Pacchetto software STM32WL3x, STM32WL3x, Pacchetto software, Pacchetto

Riferimenti

Lascia un commento

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