STMicroelectronics-LOGO

Generador de codi de ràdio STMicroelectronics UM3399 STM32Cube WiSE

STMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-PRODUCT

Instruccions d'ús del producte

  • L'aplicació STM32CubeWiSE-RadioCodeGenerator requereix almenys 2 Gbytes de RAM, ports USB i Adobe Acrobat Reader 6.0.
  • Extraieu el contingut del fitxer stm32wise-cgwin.zip file en un directori temporal.
  • Inicieu STM32CubeWiSE-RadioCodeGenerator_Vx.xxexe file i seguiu les instruccions a la pantalla.
  • El paquet STM32CubeWiSE-RadioCodeGenerator SW files s'organitzen en carpetes com "aplicació" i "examples'.
  • Per crear un gràfic de flux a STM32CubeWiSE-RadioCodeGenerator:
  • Afegiu SeqActions al gràfic de flux mitjançant la barra d'eines o el menú global.
  • Connecteu SeqActions al punt d'entrada i entre si dibuixant fletxes de transició d'acció.
  • Navegueu pel gràfic de flux arrossegant accions i afegint transicions d'acció segons sigui necessari.

Introducció

  • Aquest document descriu el paquet SW STM32CubeWiSE-RadioCodeGenerator (STM32CubeWiSEcg) amb el generador de codi seqüenciador STM32WL3x MRSUBG.
  • STM32CubeWiSE-RadioCodeGenerator és una aplicació per a PC que s'utilitza per crear un gràfic de flux que defineix quines accions del transceptor s'executaran en quina condició, utilitzant el controlador del seqüenciador MRSUBG.
  • La ràdio STM32WL3x sub-GHz conté aquest seqüenciador, que és un mecanisme semblant a una màquina d'estat que permet la gestió autònoma de les transferències de RF, sense necessitat d'intervenció de la CPU.
  • Si es requereix la intervenció de la CPU, es poden definir interrupcions. Les accions del transceptor es poden organitzar en un gràfic de flux. En aquest document, les accions individuals del transceptor s'anomenen SeqActions.
  • Tanmateix, el codi font no és la millor representació per als gràfics de flux, ja que amaga la seva estructura lògica i temporal.
  • STM32CubeWiSE-RadioCodeGenerator aborda aquest problema proporcionant un mètode gràfic per crear gràfics de flux i després exportar els gràfics de flux generats com a codi font C per a la seva integració a les aplicacions d'usuari.
  • La definició del gràfic de flux s'emmagatzema a la memòria RAM del microcontrolador en forma de:
    • Un conjunt de taules de RAM d'ActionConfiguration, enllaçades entre si mitjançant punters. Aquests indicadors defineixen les SeqActions, és a dir, el tipus d'acció (per example, transmissió, recepció, avortament), així com paràmetres i condicions de ràdio específics de SeqAction per a les transmissions d'acció.
    • Una taula RAM de configuració global única. Això defineix el punt d'entrada del gràfic de flux (la primera SeqAction a executar), així com alguns valors de bandera per defecte i paràmetres de ràdio comuns.
  • Els paràmetres de ràdio, que es poden configurar individualment per a cada SeqAction, s'emmagatzemen en un dels registres dinàmics, el contingut dels quals forma part de la taula RAM d'ActionConfiguration. Els paràmetres de ràdio que es fixen durant tota l'execució del gràfic de flux (tret que es modifiquin durant una interrupció de la CPU), s'emmagatzemen en registres estàtics, el contingut dels quals forma part de la taula RAM de configuració global.

STMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-FIG-1

Informació general

Llicència
Aquest document descriu el programari que s'executa al microcontrolador basat en STM32WL3x Arm® Cortex ® -M0+.
Nota: Arm és una marca registrada d’Arm Limited (o de les seves filials) als Estats Units i / o en altres llocs.

Documents relacionats

Taula 1. Referències documentals

Número Referència Títol
[1] 0511 RM MCU sub-GHz basats en STM32WL30xx/31xx/33xx Arm®

Per començar

  • Aquesta secció descriu tots els requisits del sistema per executar STM32CubeWiSE-RadioCodeGenerator.
  • També detalla el procediment d'instal·lació del paquet de programari.

Requisits del sistema
L'aplicació STM32CubeWiSE-RadioCodeGenerator té els requisits mínims següents:

  • PC amb un processador Intel® o AMD® amb el sistema operatiu Microsoft® Windows 10
  • Almenys 2 Gbytes de RAM
  • Ports USB
  • Adobe Acrobat Reader 6.0

Configuració del paquet STM32CubeWiSE-RadioCodeGenerator SW
Realitzeu els passos següents:

  1. Extraieu el contingut del fitxer stm32wise-cgwin.zip file en un directori temporal.
  2. Extraieu i inicieu STM32CubeWiSE-RadioCodeGenerator_Vx.xxexe file i seguiu les instruccions a la pantalla.

Paquet SW STM32CubeWiSE-RadioCodeGenerator files
El paquet STM32CubeWiSE-RadioCodeGenerator SW files s'organitzen en les carpetes següents:

  • aplicació: conté STM32CubeWiSE-RadioCodeGenerator.exe
  • examples: aquesta carpeta està organitzada en les subcarpetes següents:
  • codi: aquesta carpeta conté els gràfics de flux exampfitxer ja exportat com a codi C, llest per ser injectat en un projecte d'aplicació
  • gràfics de flux: aquesta carpeta emmagatzema alguns exampels escenaris d'operacions autònomes del seqüenciador MRSUBG

Notes de la versió i llicència files es troben a la carpeta arrel.

Descripció del programari STM32CubeWiSE-RadioCodeGenerator

  • Aquesta secció descriu les funcions principals de l'aplicació STM32CubeWiSE-RadioCodeGenerator. Per executar aquesta utilitat, feu clic a la icona STM32CubeWiSE-RadioCodeGenerator.

STMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-FIG-2

Després d'iniciar STM32CubeWiSE-RadioCodeGenerator, apareix la finestra principal de l'aplicació. Consta de:

  • Un menú global i una barra d'eines
  • La representació visual d'arrossegar i deixar anar del gràfic de flux
  • La secció de configuració de SeqAction (només visible si s'està editant una SeqAction)

Construcció d'un gràfic de flux
Conceptes bàsics
Els gràfics de flux es construeixen en dos passos:

  1. Afegiu SeqActions al gràfic de flux. Això es pot fer mitjançant el botó "Afegeix acció" a la barra d'eines, utilitzant el menú global (Edita → Afegeix acció) o amb la drecera "Ctrl+A".
  2. Connecteu SeqActions al punt d'entrada i entre si dibuixant fletxes de transició d'acció.

Les condicions en què es produeixen aquestes transicions es defineixen més endavant (vegeu Secció 3.2.1: Flux de control).

Navegant pel gràfic de flux, arrossegant accions
Arrossegant el fons del tauler d'escacs del gràfic de flux amb el punter del ratolí (clic esquerre), el viewes pot ajustar el port del gràfic de flux. La roda de desplaçament del ratolí es pot utilitzar per ampliar i reduir. Si feu clic a qualsevol part d'una acció (excepte els ports de sortida, el botó d'eliminació i el botó d'edició) per seleccionar una acció. Les accions es poden organitzar al gràfic de flux arrossegant-les amb el botó esquerre del ratolí.

Afegir transicions d'acció

STMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-FIG-3

  • Com es mostra a la figura 2, cada acció té dos "ports de sortida", anomenats NextAction1 (NA1) i NextAction2 (NA2), que es poden connectar a SeqActions que s'executen un cop s'hagi completat l'acció. Per example, NextAction1 es podria utilitzar per executar alguna acció si l'acció actual va tenir èxit i NextAction2 es podria activar en cas de fallada.
  • Per crear una transició d'acció, passeu el punter del ratolí per sobre d'un dels ports de sortida, premeu el botó esquerre del ratolí i moveu el punter del ratolí per arrossegar una fletxa de transició. Mou el punter del ratolí sobre el port d'entrada a l'esquerra d'alguna altra SeqAction i deixa anar el botó esquerre del ratolí per fer que la connexió sigui permanent. Per eliminar una transició d'acció, només heu de repetir els passos per crear una transició d'acció, però deixeu anar el botó esquerre del ratolí en algun lloc sobre el fons del tauler d'escacs.
  • Si una sortida (NextAction1, NextAction2) es deixa sense connectar, el seqüenciador finalitza si s'activa aquesta següent acció.
  • Assegureu-vos de connectar també el "punt d'entrada" a algun port d'entrada de SeqAction. Aquesta SeqAction és la primera que s'executa tan bon punt s'activa el seqüenciador.

Editar i eliminar accions

STMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-FIG-4

  • Les SeqActions es poden editar fent clic al botó de llapis a la part superior esquerra de SeqAction. Es pot suprimir fent clic a la creu vermella a la part superior dreta (vegeu la figura 3). La supressió d'una SeqAction també elimina qualsevol transició d'acció entrant i sortint.

Configuració de SeqAction
Les SeqActions es poden configurar mitjançant una interfície de configuració amb pestanyes accessible mitjançant el botó de llapis a la part superior esquerra de cada acció del gràfic de flux. Aquesta interfície bàsicament configura el contingut de la taula de RAM d'ActionConfiguration per a l'acció concreta, que consisteix tant en opcions de configuració relacionades amb el flux de control com en el contingut del registre dinàmic. El contingut del registre dinàmic es pot configurar manualment amb un control complet sobre cada valor de registre (vegeu Secció 3.2.3: Configuració de ràdio avançada) o mitjançant una interfície simplificada (vegeu Secció 3.2.2: Configuració bàsica de la ràdio). La interfície simplificada hauria de ser suficient per a gairebé tots els casos d'ús.

Control de flux
La pestanya de flux de control (vegeu la figura 4) conté algunes opcions de configuració bàsiques, com ara el nom de l'acció i l'interval de temps d'espera de l'acció. El nom de l'acció no només s'utilitza per mostrar al gràfic de flux sinó que també es trasllada al codi font generat.

STMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-FIG-5STMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-FIG-6

  • La pestanya de flux de control (vegeu la figura 4) conté algunes opcions de configuració bàsiques, com ara el nom de l'acció i l'interval de temps d'espera de l'acció. El nom de l'acció no només s'utilitza per a la visualització al gràfic de flux, sinó que també es transmet al codi font generat.
  • El més important és que la pestanya de flux de control configura la condició de la qual depèn una transició a NextAction1 / NextAction2, així com l'interval de transició i els indicadors. La condició de transició es pot configurar fent clic al botó etiquetat "...", que fa que aparegui el diàleg de selecció de màscara que es mostra a la figura 5. L'interval de transició va modificar la propietat NextAction1Interval / NextAction2Interval de la taula RAM. Consulteu el manual de referència de l'STM32WL3x [1] per obtenir més informació sobre el significat d'aquest interval i la importància dels senyals SleepEn / ForceReload / ForceClear.
  • A més, es pot afegir una breu descripció del bloc SeqAction en aquesta pestanya. Aquesta descripció només s'utilitza per a finalitats de documentació i es trasllada al codi font generat com a comentari del codi font.

Configuració bàsica de la ràdio

STMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-FIG-7

La pestanya de configuració bàsica de la ràdio es pot subdividir en tres parts:

  1. Una secció a la part superior on es configuren dos dels paràmetres més importants de qualsevol acció: l'ordre a executar (TX, RX, NOP, SABORT, etc.) i, si escau, la longitud del paquet a transferir.
  2. Una secció a l'esquerra on es configuren els paràmetres reals de la ràdio com ara: freqüència portadora, velocitat de dades, propietats de modulació, llindars de memòria intermèdia de dades i temporitzadors.
  3. Es pot habilitar individualment una secció a la dreta on les interrupcions de la CPU. Es genera un gestor d'interrupcions per a cadascuna de les interrupcions marcades. Bàsicament, configura el contingut del registre RFSEQ_IRQ_ENABLE.

Consulteu el manual de referència STM32WL3x [1] per conèixer el significat dels diferents paràmetres de ràdio.

Configuració de ràdio avançada

STMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-FIG-8

  • Si les opcions de configuració exposades a través de la pestanya de configuració bàsica de la ràdio (Secció 3.2.2: Configuració bàsica de la ràdio) són insuficients, la pestanya de configuració de ràdio avançada STM32WL3x permet configurar el contingut del registre dinàmic arbitrari. La pestanya de configuració avançada s'habilita marcant la casella de selecció Configuració avançada a la part superior dreta de la interfície de configuració amb pestanyes.
  • No és possible utilitzar tant configuracions bàsiques com avançades alhora, l'usuari ha de seleccionar una o una altra. Tanmateix, per descomptat, també és possible editar manualment el codi font generat després i afegir opcions de configuració potencialment que falten.

Diàleg de configuració global

STMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-FIG-9

  • Es pot accedir al diàleg "Configuració global del projecte" mitjançant el botó de la barra d'eines "Configuració global". El diàleg conté tant opcions de configuració per al contingut del registre estàtic com paràmetres addicionals del projecte. Tingueu en compte que només una petita fracció de les opcions de configuració del registre estàtic es pot configurar mitjançant aquest diàleg. Aquestes opcions només es proporcionen per accelerar les aplicacions de prototipat d'aplicacions amb STM32CubeWiSE-RadioCodeGenerator.
  • Normalment s'espera que el contingut del registre estàtic estigui configurat al codi font de l'aplicació escrit manualment.
  • El significat de la resta de paràmetres del projecte s'explica al mateix diàleg.
  • També es pot proporcionar un codi C addicional que s'insereix just abans de crear la taula RAM de configuració global a partir del contingut del registre estàtic. Aquest camp es pot utilitzar per configurar valors de registre estàtic als quals no es pot accedir mitjançant la màscara de configuració de registre estàtic proporcionada.

Generació de codi
El gràfic de flux es pot traduir a un codi font C del projecte complet prement el botó Genera codi de la barra d'eines. La carpeta del projecte generada no conté projecte files per a IAR, Keil® o GCC. Aquests files s'han d'afegir manualment al projecte STMWL3x.
Aquesta és l'estructura de carpetes del projecte generada:

Carpeta del projecte

  • inc
  • SequencerFlowgraph.h: capçalera file per a SequencerFlowgraph.c, estàtic. No editeu això.
  • stm32wl3x_hal_conf.h: configuració STM32WL3x HAL file, estàtica.
  • src
  • SequencerFlowgraph.c: definició del gràfic de flux. Això és l'important file que utilitza el controlador del seqüenciador per definir les taules RAM de configuració global i de configuració d'acció. Generat automàticament, no editeu.
  • main.c: principal del projecte file que demostra com carregar i aplicar la definició del gràfic de flux. Estàtic, modifiqueu-ho segons sigui necessari.
  • Per editar main.c o stm32wl3x_hal_conf.h, seleccioneu el comportament de sobreescriure Mantenir a la configuració del projecte. D'aquesta manera, només SequencerFlowgraph.c es sobreescriu.

Com importar el codi generat a un CubeMX example
Per importar un projecte generat per STM32CubeWiSE-RadioCodeGenerator a un CubeMX example (MRSUBG_Skeleton), cal seguir els passos següents:

  1. Obriu la carpeta que conté files generat per STM32CubeWiSE-RadioCodeGenerator i copieu les carpetes "Inc" i "Src".
  2. Enganxeu les dues carpetes a la carpeta "MRSUBG_Skeleton" sobreescrivint les dues ja presents.
  3. Obriu el projecte "MRSUBG_Skeleton" en un dels IDE següents:
    • EWARM
    • MDK-ARM
    • STM32CubeIDE
  4. Dins del projecte "MRSUBG_Skeleton", afegiu el "SequencerFlowghraph.c" file:
    • Per a un projecte EWARM, el camí per afegir el file és el següent: MRSUBG_Skeleton\Application\UserSTMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-FIG-11
    • Per a un projecte MDK-ARM, el camí per afegir-hi file és el següent: MRSUBG_Skeleton\Application/UserSTMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-FIG-12
    • Per a un projecte STM32CubeIDE, el camí per afegir-hi file és el mateix:
      MRSUBG_Skeleton\Aplicació\UsuariSTMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-FIG-13
  5. Dins del projecte MRSUBG_Skeleton, afegiu stm32wl3x_hal_uart.c i stm32wl3x_hal_uart_ex.c files al camí següent: MRSUBG_Skeleton\Drivers\STM32WL3x_HAL_Driver. El camí és el mateix per a tots els IDE. Els dos files es troben a Firmware\Drivers\STM32WL3x_HAL_Driver\Src.STMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-FIG-14
  6. Per utilitzar les funcions COM, stm32wl3x_nucleo_conf.h file, situat a Firmware\Projects\NUCLEOWL33CC\ Examples\MRSUBG\MRSUBG_Skeleton\Inc, s'ha de modificar la configuració USE_BSP_COM_FEATURE i USE_COM_LOG a 1U:STMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-FIG-15
  7. Copieu el codi següent a "stm32wl3x_it.c", situat a MRSUBG_Skeleton\Application\User.

STMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-FIG-16STMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-FIG-17

Gràfic de flux examples

  • Quatre exampEls gràfics de flux es proporcionen al costat del codi font. Aquests exampEls fitxers es poden carregar a STM32CubeWiSE-RadioCodeGenerator fent clic al botó "Carrega" a la barra d'eines.

AutoACK_RX

STMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-FIG-18

  • La demostració Auto-ACK il·lustra com dos dispositius STM32WL3x poden parlar automàticament entre ells amb una intervenció mínima de la CPU, amb l'ajuda del maquinari del seqüenciador.
  • Aquest gràfic de flux implementa el comportament (Auto-Transmit-ACK) del dispositiu A. Al dispositiu A, el seqüenciador s'inicializa en un estat de recepció (WaitForMessage), en el qual espera que arribi un missatge.
  • Un cop arriba un missatge vàlid, el seqüenciador passa automàticament a un estat de transmissió (TransmitACK), en el qual s'envia un paquet ACK com a resposta, sense intervenció de la CPU. Un cop acabat, el seqüenciador es restableix al seu estat WaitForMessage inicial.
  • Aquest gràfic de flux implementa el mateix comportament que el MRSUBG_SequencerAutoAck_Rx example de l'Examples\MRSUBG del paquet de programari STM32Cube WL3. Si es mostra AutoACK_RX en un dispositiu
    A, i AutoACK_TX es mostra en algun dispositiu, B, els dos dispositius envien missatges d'anada i tornada, com en un joc de ping-pong.

AutoACK_TX

STMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-FIG-19

  • La demostració "Auto-ACK" il·lustra com dos dispositius STM32WL3x poden parlar automàticament entre ells amb una intervenció mínima de la CPU amb l'ajuda del maquinari del seqüenciador.
  • Aquest gràfic de flux implementa el comportament ("Auto-Wait-for-ACK") del dispositiu B. Al dispositiu B, el seqüenciador s'inicializa en un estat de transmissió (TransmitMessage), en el qual transmet un missatge. Un cop finalitzada la transmissió, passa automàticament a un estat de recepció on espera un reconeixement del dispositiu A (WaitForACK). Un cop arriba un reconeixement vàlid, el seqüenciador es reinicia al seu estat TransmitMessage inicial i tot el procés comença de nou. En cas que no es rep cap ACK en 4 segons, s'activa un temps d'espera i el seqüenciador torna a l'estat TransmitMessage de totes maneres.
  • Aquest gràfic de flux implementa el mateix comportament que el "MRSUBG_SequencerAutoAck_Tx" example de l'Examples\MRSUBG del paquet de programari STM32Cube WL3. Si l'AutoACK_RX es mostra en un dispositiu, A, i l'AutoACK_TX en algun altre, B, els dos dispositius envien missatges d'anada i tornada, com en un joc de ping-pong.

Escolta abans de parlar (LBT)

STMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-FIG-20

  • Aquest exampEl fitxer està extret del manual de referència STM32WL3x [1]. Consulteu aquest manual per obtenir més detalls d'aquest example.

Mode sniff

STMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-FIG-21

  • Aquest exampEl fitxer està extret del manual de referència STM32WL3x [1]. Consulteu aquest manual per obtenir més detalls d'aquest example.

Historial de revisions

Taula 2. Historial de revisions de documents

Data Versió Canvis
21-nov-2024 1 Alliberament inicial.
10-feb-2025 2 S'ha actualitzat el nom del dispositiu per a l'àmbit STM32WL3x.

AVÍS IMPORTANT - LLEGIU ATENCIÓ

  • STMicroelectronics NV i les seves filials ("ST") es reserven el dret de fer canvis, correccions, millores, modificacions i millores als productes ST i/o a aquest document en qualsevol moment sense previ avís. Els compradors haurien d'obtenir la informació rellevant més recent sobre els productes ST abans de fer comandes. Els productes ST es venen d'acord amb els termes i condicions de venda de ST vigents en el moment del reconeixement de la comanda.
  • Els compradors són els únics responsables de l'elecció, selecció i ús dels productes ST i ST no assumeix cap responsabilitat per l'assistència a l'aplicació o el disseny dels productes dels compradors.
  • ST no concedeix cap llicència, expressa o implícita, a cap dret de propietat intel·lectual.
  • La revenda de productes ST amb disposicions diferents de la informació que s'estableix aquí anul·larà qualsevol garantia concedida per ST per a aquest producte.
  • ST i el logotip de ST són marques comercials de ST. Per obtenir informació addicional sobre les marques comercials ST, consulteu www.st.com/trademarks. Tots els altres noms de productes o serveis són propietat dels seus respectius propietaris.
  • La informació d'aquest document substitueix i substitueix la informació proporcionada anteriorment en qualsevol versió anterior d'aquest document.
  • © 2025 STMicroelectronics – Tots els drets reservats

Preguntes freqüents

  • P: Quins són els requisits mínims del sistema per a STM32CubeWiSE-RadioCodeGenerator?
    • A: Els requisits mínims del sistema inclouen almenys 2 Gbytes de RAM, ports USB i Adobe Acrobat Reader 6.0.
  • P: Com puc configurar el paquet de programari STM32CubeWiSE-RadioCodeGenerator?
    • A: Per configurar el paquet de programari, extreu el contingut del zip proporcionat file en un directori temporal i inicieu l'executable file seguint les instruccions a la pantalla.

Documents/Recursos

Generador de codi de ràdio STMicroelectronics UM3399 STM32Cube WiSE [pdfManual d'usuari
UM3399, UM3399 STM32 Cube WiSE Radio Code Generator, UM3399, STM32, Cube WiSE Radio Code Generator, Radio Code Generator, Code Generator, Generator

Referències

Deixa un comentari

La teva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats *