STMicroelectronics UM3399 STM32Cube WiSE Radio Code Generator
Istruzzioni per l'usu di u produttu
- L'applicazione STM32CubeWiSE-RadioCodeGenerator richiede almenu 2 Gbyte di RAM, porti USB è Adobe Acrobat reader 6.0.
- Estrae u cuntenutu di u stm32wise-cgwin.zip file in un repertoriu tempurale.
- Lanciate u STM32CubeWiSE-RadioCodeGenerator_Vx.xxexe file è seguitate i struzzioni nantu à u screnu.
- U pacchettu STM32CubeWiSE-RadioCodeGenerator SW files sò urganizati in cartulare cumpresi 'app' è 'examples'.
- Per custruisce un flowgraph in STM32CubeWiSE-RadioCodeGenerator:
- Aghjunghjite SeqActions à u flussu graficu utilizendu a barra di strumenti o menu globale.
- Cunnette SeqActions à u puntu di entrata è à l'altri disegnu frecce di transizione d'azzione.
- Navigate u graficu di flussu trascinendu l'azzioni è aghjunghjendu transizioni d'azzione cum'è necessariu.
Introduzione
- Stu documentu descrive u pacchettu SW STM32CubeWiSE-RadioCodeGenerator (STM32CubeWiSEcg) cù u generatore di codice sequencer STM32WL3x MRSUBG.
- STM32CubeWiSE-RadioCodeGenerator hè una applicazione per PC chì hè aduprata per custruisce un graficu di flussu chì definisce quale azzione di transceiver eseguisce in quale cundizione, utilizendu u driver di sequencer MRSUBG.
- A radiu STM32WL3x Sub-GHz cuntene stu sequencer, chì hè un mecanismu statu-machine-like chì permette una gestione autònoma di trasferimenti RF, senza bisognu di intervenzione CPU.
- Se l'intervenzione CPU hè necessaria, l'interruzioni ponu esse definite. L'azzioni di transceiver ponu esse disposti in un graficu di flussu. In questu documentu, l'azzioni individuali di transceiver sò chjamati SeqActions.
- In ogni casu, u codice fonte ùn hè micca a megliu rapprisentazione per i flowgraphs, postu chì oculta a so struttura logica è tempurale.
- STM32CubeWiSE-RadioCodeGenerator risolve stu prublema fornendu un metudu graficu per custruisce flowgraphs è poi esportendu i flowgraphs generati cum'è codice fonte C per integrazione in applicazioni d'utilizatori.
- A definizione di u graficu di flussu hè almacenata in a RAM di u microcontroller in forma di:
- Un inseme di tabelle RAM di ActionConfiguration, ligati l'un à l'altru usendu puntatori. Questi puntatori definiscenu i SeqActions, vale à dì u tipu d'azzione (per esample, trasmissione, ricezione, abortu), è ancu i paràmetri radiu specifichi di SeqAction è e cundizioni per trasmissioni d'azzione.
- Una tabella RAM unica di GlobalConfiguration. Questu definisce u puntu di entrata di u flowgraph (u primu SeqAction à eseguisce), è ancu parechji valori di bandiera predeterminati è paràmetri di radiu cumuni.
- I paràmetri radio, chì ponu esse cunfigurati individualmente per ogni SeqAction, sò guardati in unu di i registri dinamichi, chì u cuntenutu sò parti di a tavola RAM di ActionConfiguration. I paràmetri di radiu chì sò fissi nantu à tutta l'esekzione di u flussu di flussu (salvo chì sò mudificate durante una interruzzione di CPU), sò almacenati in registri statichi, chì u cuntenutu sò parti di a tavola RAM di cunfigurazione globale.
infurmazione generale
Licenza
Stu documentu descrive u software chì funziona nantu à u microcontroller basatu STM32WL3x Arm® Cortex ® -M0+.
Nota: Arm hè una marca registrata di Arm Limited (o i so filiali) in i Stati Uniti è / o in altrò.
Documenti cunnessi
Tabella 1. Referenze di documenti
numeru | Riferimentu | Titulu |
[1] | 0511 RM | MCU sub-GHz basati su STM32WL30xx/31xx/33xx Arm® |
Accuminciari
- Questa sezione descrive tutti i requisiti di u sistema per eseguisce STM32CubeWiSE-RadioCodeGenerator.
- Deta ancu a prucedura di stallazione di u pacchettu di software.
Requisiti di u sistema
L'applicazione STM32CubeWiSE-RadioCodeGenerator hà i seguenti requisiti minimi:
- PC cun un processore Intel® o AMD® chì esegue u sistema operatore Microsoft® Windows 10
- Almenu 2 Gbytes di RAM
- porti USB
- Adobe Acrobat Reader 6.0
Configurazione di u pacchettu STM32CubeWiSE-RadioCodeGenerator SW
Eseguite i seguenti passi:
- Estrae u cuntenutu di u stm32wise-cgwin.zip file in un repertoriu tempurale.
- Estrate è lanciate u STM32CubeWiSE-RadioCodeGenerator_Vx.xxexe file è seguitate i struzzioni nantu à u screnu.
Pacchettu SW STM32CubeWiSE-RadioCodeGenerator files
U pacchettu STM32CubeWiSE-RadioCodeGenerator SW files sò urganizati in i seguenti cartulare:
- app: cuntene STM32CubeWiSE-RadioCodeGenerator.exe
- examples: stu cartulare hè urganizatu in i seguenti sottucartuli:
- codice : stu cartulare cuntene i flowgraphs example già esportatu cum'è codice C, prontu à esse injected in un prughjettu di l'applicazione
- flowgraphs: stu cartulare guarda qualchi examples scenarii di operazioni autonome di sequencer MRSUBG
Note di liberazione è licenza files sò situati in u cartulare radicali.
Descrizione di u software STM32CubeWiSE-RadioCodeGenerator
- Questa sezione descrive e funzioni principali di l'applicazione STM32CubeWiSE-RadioCodeGenerator. Per eseguisce sta utilità, cliccate nantu à l'icona STM32CubeWiSE-RadioCodeGenerator.
Dopu avè lanciatu STM32CubeWiSE-RadioCodeGenerator, appare a finestra principale di l'applicazione. Hè custituitu da:
- Un menu globale è una barra di strumenti
- A rapprisintazioni visuale di drag-and-drop di u flowgraph
- A sezione di cunfigurazione di SeqAction (visibile solu se una SeqAction hè attualmente editata)
Custruì un flowgraph
Basi
I flussi sò custruiti in dui passi:
- Aghjunghjite SeqActions à u flowgraph. Questu pò esse fattu cù u buttone "Add Action" in a toolbar, utilizendu u menù glubale (Edit → Add Action) o cù u shortcut "Ctrl + A".
- Cunnette SeqActions à u puntu di entrata è à l'altri disegnu frecce di transizione d'azzione.
I cundizzioni in quale si sò questi transizzioni sò definiti più tardi (vede Section 3.2.1: Control flow).
Navigazione di u flowgraph, trascinendu l'azzioni
Trascinendu u fondu di a scacchiera di u flussu di flussu cù u puntatore di u mouse (cliccate left), u viewportu nantu à u flowgraph pò esse aghjustatu. A rota di scorrimentu di u mouse pò esse usata per ingrandà è alluntanassi. Cliccà in ogni locu nantu à una azzione (eccettu per i porti di output, u buttone di sguassà è u buttone d'edità) per selezziunà una azione. L'azzioni ponu esse disposti in u flowgraph trascinenduli cù u buttone di manca di u mouse.
Aghjunghjite transizioni d'azzione
- Comu mostra in a Figura 2, ogni azzione hà dui "portu di output", chjamatu NextAction1 (NA1) è NextAction2 (NA2), chì ponu esse cunnessi à SeqActions chì sò eseguiti dopu chì l'azzione hè stata cumpletata. Per esample, NextAction1 puderia esse usatu per eseguisce una certa azione se l'azzione attuale hè successu è NextAction2 puderia esse attivatu in casu di fallimentu.
- Per creà una transizione d'azzione, passa u puntatore di u mouse nantu à unu di i porti di output, pressu u buttone di manca di u mouse è move u puntatore di u mouse per arrastà una freccia di transizione. Move u puntatore di u mouse nantu à u portu di input à a manca di qualchì altru SeqAction è liberate u buttone di u mouse per fà a cunnessione permanente. Per caccià una transizione d'azzione, basta à ripetiri i passi per creà una transizione d'azzione, ma liberate u buttone di manca di u mouse in qualchì locu sopra u fondu di scacchiera.
- Se un output (NextAction1, NextAction2) ùn hè micca cunnessu, u sequencer finisce se questa azione successiva hè attivata.
- Assicuratevi di cunnette ancu u "Punto d'entrata" à qualchì portu di input di SeqAction. Questa SeqAction hè a prima à esse eseguita appena u sequencer hè attivatu.
Edità è sguassà azzione
- SeqActions pò esse editatu clicchendu nantu à u buttone di u lapis in cima à manca di SeqAction. Pò esse sguassatu clicchendu nantu à a croce rossa in cima à diritta (vede a Figura 3). L'eliminazione di una SeqAction elimina ancu ogni transizione d'azzione in entrata è in uscita.
Configurazione di SeqAction
SeqActions ponu esse cunfigurati per mezu di una interfaccia di cunfigurazione tabulata accessibile per mezu di u buttone di u lapis in cima à sinistra di ogni azione in u flowgraph. Questa interfaccia essenzialmente cunfigurà u cuntenutu di a tavula RAM di ActionConfiguration per l'azzione particulare, custituita da l'opzioni di cunfigurazione di u flussu di cuntrollu è di u cuntenutu di u registru dinamicu. U cuntenutu di u registru dinamicu pò esse cunfiguratu manualmente cun un cuntrollu cumpletu di ogni valore di u registru (vede Sezione 3.2.3: Cunfigurazione radio avanzata) o attraversu una interfaccia simplificata (vede Sezione 3.2.2: Cunfigurazione radio basica). L'interfaccia simplificata deve esse abbastanza per quasi tutti i casi d'usu.
Cuntrolla u flussu
A tabulazione di u flussu di cuntrollu (vede a Figura 4) cuntene alcune opzioni di cunfigurazione basi cum'è u nome di l'azzione è l'intervallu di timeout d'azzione. U nome di l'azzione ùn hè micca solu utilizatu per a visualizazione in u flussu, ma hè ancu traspurtatu à u codice fonte generatu.
- A tabulazione di u flussu di cuntrollu (vede a Figura 4) cuntene alcune opzioni di cunfigurazione basi cum'è u nome di l'azzione è l'intervallu di timeout d'azzione. U nome di l'azzione ùn hè micca solu utilizatu per a visualizazione in u flussu, ma ancu purtatu à u codice fonte generatu.
- U più impurtante, a tabulazione di u flussu di cuntrollu cunfigurà a cundizione nantu à quale una transizione à NextAction1 / NextAction2 dipende da l'intervallu di transizione è e bandiere. A cundizione di transizione pò esse cunfigurata clicchendu nant'à u buttone chjamatu "...", chì face chì u dialogu di selezzione di maschera mostratu in Figura 5 appare. L'intervallu di transizione hà mudificatu a pruprietà NextAction1Interval / NextAction2Interval di a tabella RAM. Vede u manuale di riferimentu STM32WL3x [1] per più infurmazione nantu à u significatu di questu intervallu è u significatu di i bandieri SleepEn / ForceReload / ForceClear.
- Inoltre, una breve descrizzione di u bloccu SeqAction pò esse aghjuntu in questa tabulazione. Questa descrizzione hè aduprata solu per scopi di documentazione è traspurtata à u codice fonte generatu cum'è cumentu di codice fonte.
Cunfigurazione radio basica
A tabulazione di cunfigurazione di basa di radio pò esse suddivisa in trè parti:
- Una sezione in cima induve sò cunfigurati dui di i paràmetri più impurtanti di qualsiasi azzione: u cumandamentu per eseguisce (TX, RX, NOP, SABORT, è cusì) è, se appiecabile, a durata di u pacchettu per trasfiriri.
- Una sezione à a manca induve i paràmetri di a radiu attuale cum'è: freccia di trasportatore, velocità di dati, proprietà di modulazione, soglie di buffer di dati è timers sò cunfigurati.
- Una sezione à a diritta induve l'interruzzione di CPU pò esse attivata individualmente. Un gestore di interruzioni hè generatu per ognuna di l'interruzioni marcate. Questu basamente cunfigura u cuntenutu di u registru RFSEQ_IRQ_ENABLE.
Vede u manuale di riferimentu STM32WL3x [1] per u significatu di i diversi paràmetri radio.
Cunfigurazione radio avanzata
- Se l'opzioni di cunfigurazione esposte attraversu a tabulazione di cunfigurazione radio basica (Sezione 3.2.2: Cunfigurazione radio basica) sò insufficienti, a tabulazione avanzata di cunfigurazione radio STM32WL3x permette di stabilisce u cuntenutu di u registru dinamicu arbitrariu. A tabulazione di cunfigurazione avanzata hè attivata spuntendu a casella di cuntrollu di Configurazione Avanzata in cima à destra di l'interfaccia di cunfigurazione tabulata.
- Ùn hè micca pussibule di utilizà e cunfigurazioni basi è avanzate à u stessu tempu, l'utilizatore deve selezziunà unu o l'altru. Tuttavia, hè naturalmente ancu pussibule di edità manualmente u codice fonte generatu dopu è aghjunghje opzioni di cunfigurazione potenzialmente mancanti.
dialogu di cunfigurazione globale
- U dialogu "Configurazione di u Prughjettu Globale" pò esse accessu attraversu u buttone di a barra di strumenti "Configurazione Globale". U dialogu cuntene duie opzioni di cunfigurazione per u cuntenutu di u registru staticu è ancu paràmetri di prughjettu supplementari. Nota chì solu una piccula frazione di l'opzioni di cunfigurazione di u registru staticu pò esse cunfigurata attraversu stu dialogu. Queste opzioni sò furnite solu per accelerà l'applicazioni di prototipu di l'applicazioni cù STM32CubeWiSE-RadioCodeGenerator.
- Di solitu hè previstu chì u cuntenutu di u registru staticu hè stallatu in u codice fonte scrittu manualmente di l'applicazione.
- U significatu di l'altri paràmetri di u prugettu hè spiegatu in u dialogu stessu.
- Un codice C supplementu chì hè inseritu ghjustu prima di creà a tabella RAM di Cunfigurazione Globale da u cuntenutu di u registru staticu pò ancu esse furnitu. Stu campu pò esse usatu per stabilisce valori di registru staticu chì sò inaccessibili attraversu a maschera di cunfigurazione di registru staticu furnita.
Generazione di codice
U flussu pò esse traduttu in un codice fonte C di prughjettu cumpletu pressu u buttone Generate Code in a toolbar. U cartulare di u prughjettu generatu ùn cuntene micca u prughjettu files per IAR, Keil® o GCC. Quessi files deve esse aghjuntu manualmente à u prughjettu STMWL3x.
Questa hè a struttura di u cartulare di u prughjettu generatu:
U cartulare di u prugettu
- inc
- SequencerFlowgraph.h: header file per SequencerFlowgraph.c, staticu. Ùn edità micca questu.
- stm32wl3x_hal_conf.h: cunfigurazione STM32WL3x HAL file, staticu.
- src
- SequencerFlowgraph.c: definizione di flussu. Questu hè l'impurtante file chì usa u driver di sequencer per definisce e tabelle RAM di cunfigurazione globale è di cunfigurazione di azzione. Autogeneratu, ùn editate micca.
- main.c : Prughjettu principale file chì mostra cumu carica è applicà a definizione di flussu-graph. Static, mudificà questu quantu necessariu.
- Per edità main.c o stm32wl3x_hal_conf.h, selezziunate u cumportamentu di overwrite Mantene in i paràmetri di u prugettu. In questu modu, solu SequencerFlowgraph.c hè soprascritta.
Cumu impurtà u codice generatu in un CubeMX example
Per impurtà un prughjettu generatu da STM32CubeWiSE-RadioCodeGenerator in un CubeMX example (MRSUBG_Skeleton), hè necessariu di seguità i seguenti passi:
- Apertu u cartulare chì cuntene u files generati da STM32CubeWiSE-RadioCodeGenerator è copià i cartulare "Inc" è "Src".
- Paste i dui cartulare nant'à u cartulare "MRSUBG_Skeleton" overwriting i dui digià prisenti.
- Aprite u prughjettu "MRSUBG_Skeleton" in unu di i seguenti IDE:
- EWARM
- MDK-ARM
- STM32CubeIDE
- Dentru u prughjettu "MRSUBG_Skeleton", aghjunghje u "SequencerFlowghraph.c" file:
- Per un prughjettu EWARM, a strada per aghjunghje u file hè u seguente: MRSUBG_Skeleton\Application\User
- Per un prughjettu MDK-ARM, a strada per aghjunghje u file hè u seguente: MRSUBG_Skeleton\Application/User
- Per un prughjettu STM32CubeIDE, a strada per aghjunghje u file hè u listessu:
MRSUBG_Skeleton\Application\User
- Per un prughjettu EWARM, a strada per aghjunghje u file hè u seguente: MRSUBG_Skeleton\Application\User
- Dentru u prughjettu MRSUBG_Skeleton, aghjunghje stm32wl3x_hal_uart.c è stm32wl3x_hal_uart_ex.c files à u percorsu seguente: MRSUBG_Skeleton\Drivers\STM32WL3x_HAL_Driver. U percorsu hè u listessu per tutti l'IDE. I dui files si trovanu in Firmware\Drivers\STM32WL3x_HAL_Driver\Src.
- Per utilizà e funzioni COM, stm32wl3x_nucleo_conf.h file, situatu in Firmware\Projects\NUCLEOWL33CC\ Esamples\MRSUBG\MRSUBG_Skeleton\Inc, deve esse mudificatu l'impostazione USE_BSP_COM_FEATURE è USE_COM_LOG à 1U:
- Copia u codice seguente in "stm32wl3x_it.c", situatu in MRSUBG_Skeleton\Application\User.
Flowgraph examples
- Quattru example flowgraphs sò furniti accantu à u codice fonte. Questi examples pò esse caricate in STM32CubeWiSE-RadioCodeGenerator clicchendu u buttone "Load" in a toolbar.
AutoACK_RX
- A demo Auto-ACK illustra cumu dui dispositi STM32WL3x ponu automaticamente parlà cun l'altru cù l'intervenzione minima di CPU, cù l'aiutu di u hardware di sequencer.
- Stu flowgraph implementa u cumpurtamentu (Auto-Transmit-ACK) di u dispusitivu A. In u dispusitivu A, u sequencer hè inizializatu in un statu di ricivutu (WaitForMessage), in quale aspetta un messagiu per arrivà.
- Una volta un messagiu validu ghjunghje, u sequencer passa automaticamente in un statu di trasmissione (TransmitACK), in quale un pacchettu ACK hè mandatu cum'è risposta, senza intervenzione di CPU. Quandu questu hè finitu, u sequencer hè resettatu in u so statu WaitForMessage iniziale.
- Stu flowgraph implementa u listessu cumpurtamentu cum'è MRSUBG_SequencerAutoAck_Rx example da l'Examples\MRSUBG cartulare di u pacchettu Software STM32Cube WL3. Se AutoACK_RX hè lampatu nantu à un dispositivu
A, è AutoACK_TX hè lampatu nant'à qualchi dispusitivu, B, i dui dispusitivi mandà missaghji avanti è avanti, cum'è in un ghjocu ping-pong.
AutoACK_TX
- A demo "Auto-ACK" illustra cumu dui dispositi STM32WL3x ponu automaticamente parlà cun l'altru cù l'intervenzione minima di CPU cù l'aiutu di u hardware di sequencer.
- Stu flowgraph implementa u cumpurtamentu ("Auto-Wait-for-ACK") di u dispusitivu B. In u dispusitivu B, u sequencer hè inizializatu in un statu di trasmissione (TransmitMessage), in quale trasmette un missaghju. Quandu a trasmissione hè finita, passa automaticamente in un statu di ricezione induve aspetta una ricunniscenza da u dispusitivu A (WaitForACK). Una volta una ricunniscenza valida ghjunghje, u sequencer hè resettatu in u so statu iniziale di TransmitMessage è tuttu u prucessu principia di novu. In casu chì nisun ACK hè ricevutu in 4 seconde, un timeout hè attivatu è u sequencer torna à u statu TransmitMessage in ogni modu.
- Stu flowgraph implementa u listessu cumpurtamentu cum'è "MRSUBG_SequencerAutoAck_Tx" example da l'Examples\MRSUBG cartulare di u pacchettu Software STM32Cube WL3. Se AutoACK_RX hè lampatu nantu à un dispositivu, A, è AutoACK_TX hè lampatu nantu à qualchì altru dispositivu, B, i dui dispusitivi mandanu missaghji avanti è avanti, cum'è in un ghjocu di ping-pong.
Ascolta prima di parlà (LBT)
- Questu example hè pigliatu da u manuale di riferimentu STM32WL3x [1]. Riferite à quellu manuale per più dettagli di questu example.
Modu sniff
- Questu example hè pigliatu da u manuale di riferimentu STM32WL3x [1]. Riferite à quellu manuale per più dettagli di questu example.
Storia di rivisione
Table 2. Storia di rivisione di documenti
Data | Versione | Cambiamenti |
21-Nov-2024 | 1 | Liberazione iniziale. |
10-Feb-2025 | 2 | U nome di u dispositivu aghjurnatu à scopre STM32WL3x. |
AVVISU IMPORTANTE - LEGGIU ATTENTAMENTE
- STMicroelectronics NV è e so filiali ("ST") si riservanu u dirittu di fà cambiamenti, correzioni, miglioramenti, mudificazioni è migliure à i prudutti ST è / o à stu documentu in ogni mumentu senza avvisu. I cumpratori anu da ottene l'ultime informazioni pertinenti nantu à i prudutti ST prima di fà ordini. I prudutti ST sò venduti in cunfurmità cù i termini è e cundizioni di vendita di ST in vigore à u mumentu di a ricunniscenza di l'ordine.
- I cumpratori sò solu rispunsevuli di a scelta, a selezzione è l'usu di i prudutti ST è ST ùn assume micca responsabilità per l'assistenza di l'applicazione o u disignu di i prudutti di l'acquirente.
- Nisuna licenza, espressa o implicita, à qualsiasi dirittu di pruprietà intellettuale hè cuncessa da ST quì.
- A rivendita di i prudutti ST cù disposizioni diverse da l'infurmazioni stabilite quì annullerà ogni garanzia accordata da ST per tali pruduttu.
- ST è u logo ST sò marchi di ST. Per infurmazioni supplementari nantu à i marchi ST, riferite à www.st.com/trademarks. Tutti l'altri prudutti o nomi di serviziu sò a pruprietà di i so rispettivi pruprietarii.
- L'infurmazioni in stu documentu rimpiazzanu è rimpiazzanu l'infurmazioni furnite prima in qualsiasi versione precedente di stu documentu.
- © 2025 STMicroelectronics - Tutti i diritti riservati
FAQ
- Q: Chì sò i requisiti minimi di u sistema per STM32CubeWiSE-RadioCodeGenerator?
- A: I requisiti minimi di u sistema includenu almenu 2 Gbyte di RAM, porti USB è Adobe Acrobat reader 6.0.
- Q: Cumu possu cunfigurà u pacchettu di software STM32CubeWiSE-RadioCodeGenerator?
- A: Per stallà u pacchettu di software, estrae u cuntenutu di u zip furnitu file in un repertoriu tempurale è lanciate l'eseguibile file seguendu l'istruzzioni nantu à u screnu.
Documenti / Risorse
![]() |
STMicroelectronics UM3399 STM32Cube WiSE Radio Code Generator [pdfManuale d'usu UM3399, UM3399 STM32 Cube WiSE Radio Code Generator, UM3399, STM32, Cube WiSE Radio Code Generator, Radio Code Generator, Code Generator, Generator |