STMicroelectronics UM3399 STM32Cube WiSE radiocodegenerator
Instructies voor productgebruik
- Voor de STM32CubeWiSE-RadioCodeGenerator-applicatie zijn minimaal 2 GB RAM, USB-poorten en Adobe Acrobat Reader 6.0 vereist.
- Pak de inhoud van stm32wise-cgwin.zip uit file in een tijdelijke map.
- Start de STM32CubeWiSE-RadioCodeGenerator_Vx.xxexe file en volg de instructies op het scherm.
- Het STM32CubeWiSE-RadioCodeGenerator SW-pakket files zijn georganiseerd in mappen, waaronder 'app' en 'examples'.
- Om een stroomdiagram te bouwen in STM32CubeWiSE-RadioCodeGenerator:
- Voeg SeqActions toe aan het stroomdiagram met behulp van de werkbalk of het globale menu.
- Verbind SeqActions met het invoerpunt en met elkaar door pijlen voor actieovergangen te tekenen.
- Navigeer door het stroomdiagram door acties te slepen en indien nodig actieovergangen toe te voegen.
Invoering
- Dit document beschrijft het STM32CubeWiSE-RadioCodeGenerator (STM32CubeWiSEcg) SW-pakket met de STM32WL3x MRSUBG sequencercodegenerator.
- STM32CubeWiSE-RadioCodeGenerator is een pc-toepassing waarmee u een stroomdiagram kunt maken waarin wordt gedefinieerd welke transceiveracties onder welke omstandigheden moeten worden uitgevoerd. Hiervoor gebruikt u de MRSUBG-sequencerdriver.
- De STM32WL3x Sub-GHz-radio bevat deze sequencer, een mechanisme dat lijkt op een toestandsmachine en dat autonoom beheer van RF-overdrachten mogelijk maakt, zonder dat er tussenkomst van de CPU nodig is.
- Als CPU-interventie vereist is, kunnen interrupts worden gedefinieerd. Transceiveracties kunnen worden gerangschikt in een stroomdiagram. In dit document worden de individuele transceiveracties SeqActions genoemd.
- De broncode is echter niet de beste weergave van stroomdiagrammen, omdat de logische en temporele structuur ervan verborgen blijft.
- STM32CubeWiSE-RadioCodeGenerator pakt dit probleem aan door een grafische methode te bieden voor het bouwen van stroomgrafieken en vervolgens de gegenereerde stroomgrafieken te exporteren als C-broncode voor integratie in gebruikersapplicaties.
- De stroomdiagramdefinitie wordt in het RAM van de microcontroller opgeslagen in de vorm van:
- Een set ActionConfiguration RAM-tabellen, aan elkaar gekoppeld met behulp van pointers. Deze pointers definiëren de SeqActions, dat wil zeggen het type actie (bijvoorbeeldample, transmissie, ontvangst, afbreken), evenals SeqAction-specifieke radioparameters en -voorwaarden voor actietransmissies.
- Een unieke GlobalConfiguration RAM-tabel. Deze definieert het invoerpunt van de flowgraph (de eerste SeqAction die wordt uitgevoerd), evenals enkele standaardvlagwaarden en algemene radioparameters.
- Radioparameters, die voor elke SeqAction afzonderlijk kunnen worden geconfigureerd, worden opgeslagen in een van de dynamische registers, waarvan de inhoud deel uitmaakt van de ActionConfiguration RAM-tabel. Radioparameters die gedurende de gehele uitvoering van de flowgraph vastliggen (tenzij ze tijdens een CPU-interrupt worden gewijzigd), worden opgeslagen in statische registers, waarvan de inhoud deel uitmaakt van de globale configuratie-RAM-tabel.
Algemene informatie
Licentieverlening
In dit document wordt software beschreven die draait op de STM32WL3x Arm® Cortex ® -M0+-gebaseerde microcontroller.
Opmerking: Arm is een geregistreerd handelsmerk van Arm Limited (of haar dochterondernemingen) in de VS en/of elders.
Gerelateerde documenten
Tabel 1. Documentverwijzingen
Nummer | Referentie | Titel |
[1] | €0511 | STM32WL30xx/31xx/33xx Arm®-gebaseerde sub-GHz MCU's |
Aan de slag
- In dit gedeelte worden alle systeemvereisten voor het uitvoeren van STM32CubeWiSE-RadioCodeGenerator beschreven.
- Het beschrijft ook de installatieprocedure van het softwarepakket.
Systeemvereisten
De STM32CubeWiSE-RadioCodeGenerator-applicatie heeft de volgende minimumvereisten:
- PC met een Intel® of AMD® processor met het besturingssysteem Microsoft® Windows 10
- Minimaal 2 GB RAM
- USB-poorten
- Adobe Acrobat-lezer 6.0
STM32CubeWiSE-RadioCodeGenerator SW-pakket instellen
Voer de volgende stappen uit:
- Pak de inhoud van stm32wise-cgwin.zip uit file in een tijdelijke map.
- Pak de STM32CubeWiSE-RadioCodeGenerator_Vx.xxexe uit en start deze file en volg de instructies op het scherm.
STM32CubeWiSE-RadioCodeGenerator SW-pakket files
Het STM32CubeWiSE-RadioCodeGenerator SW-pakket files zijn georganiseerd in de volgende mappen:
- app: bevat STM32CubeWiSE-RadioCodeGenerator.exe
- examples: deze map is onderverdeeld in de volgende submappen:
- code: deze map bevat de stroomdiagrammen example is al geëxporteerd als C-code, klaar om te worden geïnjecteerd in een applicatieproject
- stroomdiagrammen: deze map slaat een aantal ex opamples scenario's van autonome MRSUBG sequencer-bewerkingen
Release-opmerkingen en licentie files bevinden zich in de hoofdmap.
STM32CubeWiSE-RadioCodeGenerator softwarebeschrijving
- Deze sectie beschrijft de belangrijkste functies van de STM32CubeWiSE-RadioCodeGenerator-applicatie. Om dit hulpprogramma uit te voeren, klikt u op het STM32CubeWiSE-RadioCodeGenerator-pictogram.
Na het starten van STM32CubeWiSE-RadioCodeGenerator verschijnt het hoofdvenster van de applicatie. Het bestaat uit:
- Een globaal menu en werkbalk
- De visuele drag-and-drop-weergave van de stroomgrafiek
- Het SeqAction-configuratiegedeelte (alleen zichtbaar als een SeqAction momenteel wordt bewerkt)
Een stroomdiagram maken
Basisprincipes
Stroomdiagrammen worden in twee stappen opgebouwd:
- Voeg SeqActions toe aan de flowgraph. Dit kan gedaan worden met de “Add Action” knop in de toolbar, via het globale menu (Edit → Add Action) of met de “Ctrl+A” sneltoets.
- Verbind SeqActions met het invoerpunt en met elkaar door pijlen voor actieovergangen te tekenen.
De omstandigheden waaronder deze overgangen plaatsvinden, worden later gedefinieerd (zie Sectie 3.2.1: Regelstroom).
Navigeren door de stroomgrafiek, acties slepen
Door de schaakbordachtergrond van de stroomgrafiek met de muisaanwijzer te slepen (linkermuisklik), viewpoort op de flowgraph kan worden aangepast. Het muiswieltje kan worden gebruikt om in en uit te zoomen. Klikken op een willekeurige actie (behalve de uitvoerpoorten, de verwijderknop en de bewerkingsknop) om een actie te selecteren. Acties kunnen in de flowgraph worden gerangschikt door ze te slepen met de linkermuisknop.
Actie-overgangen toevoegen
- Zoals weergegeven in Figuur 2, heeft elke actie twee "uitvoerpoorten", genaamd NextAction1 (NA1) en NextAction2 (NA2), die kunnen worden verbonden met SeqActions die worden uitgevoerd nadat de actie is voltooid. BijvoorbeeldampZo kan NextAction1 worden gebruikt om een bepaalde actie uit te voeren als de huidige actie succesvol is en kan NextAction2 worden geactiveerd als deze mislukt.
- Om een actieovergang te maken, beweegt u de muisaanwijzer over een van de uitvoerpoorten, drukt u op de linkermuisknop en beweegt u de muisaanwijzer om een overgangspijl te slepen. Beweeg de muisaanwijzer over de invoerpoort aan de linkerkant van een andere SeqAction en laat de linkermuisknop los om de verbinding permanent te maken. Om een actieovergang te verwijderen, herhaalt u gewoon de stappen voor het maken van een actieovergang, maar laat u de linkermuisknop los ergens boven de schaakbordachtergrond.
- Als een uitgang (NextAction1, NextAction2) niet wordt aangesloten, wordt de sequencer beëindigd als deze volgende actie wordt geactiveerd.
- Zorg ervoor dat u ook het "Entry Point" verbindt met de invoerpoort van een SeqAction. Deze SeqAction is de eerste die wordt uitgevoerd zodra de sequencer wordt geactiveerd.
Acties bewerken en verwijderen
- SeqActions kunnen worden bewerkt door te klikken op de potloodknop linksboven in SeqAction. Ze kunnen worden verwijderd door te klikken op het rode kruis rechtsboven (zie Afbeelding 3). Het verwijderen van een SeqAction verwijdert ook alle inkomende en uitgaande actie-overgangen.
SeqAction-configuratie
SeqActions kunnen worden geconfigureerd via een configuratie-interface met tabbladen die toegankelijk is via de potloodknop linksboven in elke actie in de flowgraph. Deze interface configureert in wezen de inhoud van de ActionConfiguration RAM-tabel voor de specifieke actie, bestaande uit zowel besturingsstroomgerelateerde configuratieopties als de dynamische registerinhoud. De dynamische registerinhoud kan handmatig worden geconfigureerd met volledige controle over elke registerwaarde (zie Sectie 3.2.3: Geavanceerde radioconfiguratie) of via een vereenvoudigde interface (zie Sectie 3.2.2: Basis radioconfiguratie). De vereenvoudigde interface zou voor bijna alle use cases voldoende moeten zijn.
Controle stroom
Het tabblad Control Flow (zie Afbeelding 4) bevat enkele basisconfiguratieopties, zoals de actienaam en het time-outinterval van de actie. De actienaam wordt niet alleen gebruikt voor weergave in de flowgraph, maar wordt ook overgedragen naar de gegenereerde broncode.
- Het tabblad Control Flow (zie Afbeelding 4) bevat enkele basisconfiguratieopties, zoals actienaam en time-outinterval voor acties. De actienaam wordt niet alleen gebruikt voor weergave in de flowgraph, maar wordt ook overgedragen naar de gegenereerde broncode.
- Het belangrijkste is dat het tabblad Control Flow de voorwaarde configureert waarvan een overgang naar NextAction1 / NextAction2 afhankelijk is, evenals het overgangsinterval en de vlaggen. De overgangsvoorwaarde kan worden geconfigureerd door te klikken op de knop met het label "...", waardoor het dialoogvenster voor maskerselectie wordt weergegeven dat wordt weergegeven in Afbeelding 5. Het overgangsinterval heeft de eigenschap NextAction1Interval / NextAction2Interval van de RAM-tabel gewijzigd. Raadpleeg de STM32WL3x-referentiehandleiding [1] voor meer informatie over de betekenis van dit interval en de betekenis van de vlaggen SleepEn / ForceReload / ForceClear.
- Verder kan een korte beschrijving van het SeqAction-blok op dit tabblad worden toegevoegd. Deze beschrijving wordt alleen gebruikt voor documentatiedoeleinden en wordt als broncodecommentaar naar de gegenereerde broncode overgebracht.
Basis radioconfiguratie
Het tabblad Basisradioconfiguratie kan worden onderverdeeld in drie delen:
- Een sectie bovenaan waar twee van de belangrijkste parameters van een actie worden geconfigureerd: de uit te voeren opdracht (TX, RX, NOP, SABORT, enzovoort) en, indien van toepassing, de lengte van het over te dragen pakket.
- Een gedeelte aan de linkerkant waar de daadwerkelijke radioparameters worden geconfigureerd, zoals: draagfrequentie, gegevenssnelheid, modulatie-eigenschappen, drempelwaarden voor gegevensbuffers en timers.
- Een sectie aan de rechterkant waar de CPU-interrupts individueel kunnen worden ingeschakeld. Voor elk van de aangevinkte interrupts wordt een interrupt-handler gegenereerd. Dit configureert in principe de inhoud van het RFSEQ_IRQ_ENABLE-register.
Raadpleeg de STM32WL3x-referentiehandleiding [1] voor de betekenis van de verschillende radioparameters.
Geavanceerde radioconfiguratie
- Als de configuratieopties die worden weergegeven via het tabblad Basis radioconfiguratie (Sectie 3.2.2: Basis radioconfiguratie) niet toereikend zijn, kunt u via het tabblad Geavanceerde STM32WL3x radioconfiguratie willekeurige dynamische registerinhoud instellen. Het tabblad Geavanceerde configuratie wordt ingeschakeld door het selectievakje Geavanceerde configuratie rechtsboven in de configuratie-interface met tabbladen aan te vinken.
- Het is niet mogelijk om zowel basis- als geavanceerde configuraties tegelijk te gebruiken, de gebruiker moet een van beide selecteren. Het is echter natuurlijk ook mogelijk om de gegenereerde broncode achteraf handmatig te bewerken en mogelijk ontbrekende configuratieopties toe te voegen.
Dialoogvenster voor globale configuratie
- Het dialoogvenster "Globale projectinstellingen" is toegankelijk via de knop "Globale instellingen" in de werkbalk. Het dialoogvenster bevat zowel configuratieopties voor de inhoud van het statische register als aanvullende projectinstellingen. Let op: slechts een klein deel van de configuratieopties voor het statische register kan via dit dialoogvenster worden geconfigureerd. Deze opties worden alleen geboden om het prototypen van applicaties met STM32CubeWiSE-RadioCodeGenerator te versnellen.
- Normaal gesproken wordt verwacht dat de inhoud van het statische register wordt ingesteld in de handmatig geschreven broncode van de toepassing.
- De betekenis van de overige projectinstellingen wordt in het dialoogvenster zelf uitgelegd.
- Er kan ook aanvullende C-code worden verstrekt die net voor het maken van de Global Configuration RAM-tabel wordt ingevoegd vanuit de inhoud van het statische register. Dit veld kan worden gebruikt om statische registerwaarden in te stellen die niet toegankelijk zijn via het verstrekte statische registerconfiguratiemasker.
Codegeneratie
De flowgraph kan worden vertaald naar een complete project C-broncode door op de knop Generate Code in de werkbalk te drukken. De gegenereerde projectmap bevat geen project files voor IAR, Keil® of GCC. Deze filemoeten handmatig aan het STMWL3x-project worden toegevoegd.
Dit is de gegenereerde projectmapstructuur:
Project folder
- inc
- SequencerFlowgraph.h: koptekst file voor SequencerFlowgraph.c, statisch. Bewerk dit niet.
- stm32wl3x_hal_conf.h: STM32WL3x HAL-configuratie file, statisch.
- bron
- SequencerFlowgraph.c: flowgraph definitie. Dit is de belangrijke file die de sequencer driver gebruikt om de global-configuration en action-configuration RAM tabellen te definiëren. Automatisch gegenereerd, niet bewerken.
- main.c: Projecthoofd file die laat zien hoe de flow-graph definitie geladen en toegepast moet worden. Statisch, wijzig dit indien nodig.
- Om main.c of stm32wl3x_hal_conf.h te bewerken, selecteert u het overschrijfgedrag Keep in de projectinstellingen. Op deze manier wordt alleen SequencerFlowgraph.c overschreven.
Hoe je gegenereerde code importeert in een CubeMX example
Om een project gegenereerd door STM32CubeWiSE-RadioCodeGenerator te importeren in een CubeMX example (MRSUBG_Skeleton), is het noodzakelijk om de volgende stappen te volgen:
- Open de map met de filegegenereerd door STM32CubeWiSE-RadioCodeGenerator en kopieer de mappen “Inc” en “Src”.
- Plak de twee mappen in de map “MRSUBG_Skeleton” en overschrijf de twee reeds aanwezige mappen.
- Open het project “MRSUBG_Skeleton” in een van de volgende IDE’s:
- EWARM
- MDK-ARM
- STM32CubeIDE
- Voeg in het project “MRSUBG_Skeleton” de “SequencerFlowghraph.c” toe file:
- Voor een EWARM-project is het pad om de file is het volgende: MRSUBG_Skeleton\Application\User
- Voor een MDK-ARM-project is het pad om de file is het volgende: MRSUBG_Skeleton\Application/User
- Voor een STM32CubeIDE-project is het pad om de file is hetzelfde:
MRSUBG_Skeleton\Applicatie\Gebruiker
- Voor een EWARM-project is het pad om de file is het volgende: MRSUBG_Skeleton\Application\User
- Voeg stm32wl3x_hal_uart.c en stm32wl3x_hal_uart_ex.c toe in het MRSUBG_Skeleton-project files naar het volgende pad: MRSUBG_Skeleton\Drivers\STM32WL3x_HAL_Driver. Het pad is hetzelfde voor alle IDE's. De twee files bevinden zich op Firmware\Drivers\STM32WL3x_HAL_Driver\Src.
- Om COM-functies te gebruiken, stm32wl3x_nucleo_conf.h file, gelegen op Firmware\Projects\NUCLEOWL33CC\ Examples\MRSUBG\MRSUBG_Skeleton\Inc, moet worden gewijzigd door USE_BSP_COM_FEATURE en USE_COM_LOG in te stellen op 1U:
- Kopieer de volgende code naar “stm32wl3x_it.c”, te vinden in MRSUBG_Skeleton\Application\User.
Stroomdiagram exampde
- Vier example flowgraphs worden samen met de broncode geleverd. Deze exampbestanden kunnen in STM32CubeWiSE-RadioCodeGenerator worden geladen door op de knop “Laden” in de werkbalk te klikken.
AutoACK_RX
- De Auto-ACK-demo illustreert hoe twee STM32WL3x-apparaten automatisch met elkaar kunnen communiceren met minimale CPU-interventie, met behulp van de sequencerhardware.
- Deze stroomgrafiek implementeert het gedrag (Auto-Transmit-ACK) van apparaat A. In apparaat A wordt de sequencer geïnitialiseerd in een ontvangststatus (WaitForMessage), waarin deze wacht tot er een bericht binnenkomt.
- Zodra een geldig bericht binnenkomt, gaat de sequencer automatisch over naar een verzendstatus (TransmitACK), waarin een ACK-pakket als antwoord wordt verzonden, zonder tussenkomst van de CPU. Zodra dit is voltooid, wordt de sequencer gereset naar de oorspronkelijke WaitForMessage-status.
- Deze stroomgrafiek implementeert hetzelfde gedrag als de MRSUBG_SequencerAutoAck_Rx example uit de Examples\MRSUBG map van het STM32Cube WL3 Software pakket. Als AutoACK_RX op één apparaat is geflasht
A, en AutoACK_TX wordt op een apparaat geflitst, B, de twee apparaten sturen berichten heen en weer, zoals bij een pingpongspel.
AutoACK_TX
- De “Auto-ACK”-demo illustreert hoe twee STM32WL3x-apparaten automatisch met elkaar kunnen communiceren met minimale CPU-interventie met behulp van de sequencerhardware.
- Deze flowgraph implementeert het gedrag ("Auto-Wait-for-ACK") van apparaat B. In apparaat B wordt de sequencer geïnitialiseerd in een verzendende staat (TransmitMessage), waarin het een bericht verzendt. Zodra de verzending is voltooid, gaat het automatisch over naar een ontvangende staat waarin het wacht op een bevestiging van apparaat A (WaitForACK). Zodra een geldige bevestiging arriveert, wordt de sequencer gereset naar zijn oorspronkelijke TransmitMessage-staat en begint het hele proces opnieuw. Als er binnen 4 seconden geen ACK wordt ontvangen, wordt er een time-out geactiveerd en keert de sequencer toch terug naar de staat TransmitMessage.
- Deze stroomgrafiek implementeert hetzelfde gedrag als de “MRSUBG_SequencerAutoAck_Tx” example van de Examples\MRSUBG-map van het STM32Cube WL3-softwarepakket. Als AutoACK_RX op één apparaat, A, wordt geflasht en AutoACK_TX op een ander apparaat, B, wordt geflasht, sturen de twee apparaten berichten heen en weer, zoals in een pingpongspel.
Luisteren voordat je praat (LBT)
- Deze example is afkomstig uit de STM32WL3x referentiehandleiding [1]. Raadpleeg die handleiding voor meer details over deze exampik.
Sniff-modus
- Deze example is afkomstig uit de STM32WL3x referentiehandleiding [1]. Raadpleeg die handleiding voor meer details over deze exampik.
Revisiegeschiedenis
Tabel 2. Document revisiegeschiedenis
Datum | Versie | Wijzigingen |
21-2024-XNUMX | 1 | Eerste release. |
10-feb-2025 | 2 | Apparaatnaam bijgewerkt naar scope STM32WL3x. |
BELANGRIJKE MEDEDELING – LEES ZORGVULDIG
- STMicroelectronics NV en haar dochterondernemingen ("ST") behouden zich het recht voor om op elk moment zonder kennisgeving wijzigingen, correcties, verbeteringen, aanpassingen en aanpassingen aan te brengen in ST-producten en/of in dit document. Kopers dienen de laatste relevante informatie over ST-producten te verkrijgen voordat ze een bestelling plaatsen. ST-producten worden verkocht overeenkomstig de verkoopvoorwaarden van ST die van kracht zijn op het moment van orderbevestiging.
- Kopers zijn als enige verantwoordelijk voor de keuze, selectie en het gebruik van ST-producten. ST aanvaardt geen aansprakelijkheid voor hulp bij de toepassing of het ontwerp van de producten van kopers.
- ST verleent hierbij geen enkele licentie, expliciet of impliciet, op enig intellectueel eigendomsrecht.
- Bij wederverkoop van ST-producten met bepalingen die afwijken van de hierin vermelde informatie, vervalt de garantie die ST op dat product verleent.
- ST en het ST-logo zijn handelsmerken van ST. Raadpleeg voor meer informatie over ST-handelsmerken www.st.com/trademarks. Alle andere product- of servicenamen zijn eigendom van hun respectievelijke eigenaren.
- De informatie in dit document vervangt de informatie die eerder in eerdere versies van dit document is verstrekt.
- © 2025 STMicroelectronics – Alle rechten voorbehouden
Veelgestelde vragen
- V: Wat zijn de minimale systeemvereisten voor STM32CubeWiSE-RadioCodeGenerator?
- A: De minimale systeemvereisten zijn minimaal 2 GB RAM, USB-poorten en Adobe Acrobat Reader 6.0.
- V: Hoe kan ik het softwarepakket STM32CubeWiSE-RadioCodeGenerator installeren?
- A: Om het softwarepakket te installeren, pakt u de inhoud van het meegeleverde zip-bestand uit file in een tijdelijke map en start het uitvoerbare bestand file door de instructies op het scherm te volgen.
Documenten / Bronnen
![]() |
STMicroelectronics UM3399 STM32Cube WiSE radiocodegenerator [pdf] Gebruikershandleiding UM3399, UM3399 STM32 Cube WiSE Radiocodegenerator, UM3399, STM32, Cube WiSE Radiocodegenerator, Radiocodegenerator, Codegenerator, Generator |