STMicroelectronics UM3399 STM32Cube WiSE Radio Code Generator
Produktanvändningsinstruktioner
- STM32CubeWiSE-RadioCodeGenerator-applikationen kräver minst 2 Gbyte RAM, USB-portar och Adobe Acrobat reader 6.0.
- Extrahera innehållet i stm32wise-cgwin.zip file till en tillfällig katalog.
- Starta STM32CubeWiSE-RadioCodeGenerator_Vx.xxexe file och följ instruktionerna på skärmen.
- STM32CubeWiSE-RadioCodeGenerator SW-paketet files är organiserade i mappar inklusive 'app' och 'examples'.
- Så här bygger du en flödesgraf i STM32CubeWiSE-RadioCodeGenerator:
- Lägg till SeqActions till flödesdiagrammet med hjälp av verktygsfältet eller den globala menyn.
- Anslut SeqActions till ingångspunkten och till varandra genom att rita åtgärdspilar.
- Navigera i flödesdiagrammet genom att dra åtgärder och lägga till åtgärdsövergångar efter behov.
Introduktion
- Det här dokumentet beskriver STM32CubeWiSE-RadioCodeGenerator (STM32CubeWiSEcg) SW-paketet med STM32WL3x MRSUBG sequencer-kodgenerator.
- STM32CubeWiSE-RadioCodeGenerator är en PC-applikation som används för att bygga en flödesgraf som definierar vilka transceiveråtgärder som ska utföras under vilka förhållanden, med hjälp av MRSUBG-sequencerdrivrutinen.
- STM32WL3x Sub-GHz-radio innehåller denna sequencer, som är en tillståndsmaskinliknande mekanism som möjliggör autonom hantering av RF-överföringar, utan behov av CPU-intervention.
- Om CPU-intervention krävs kan avbrott definieras. Transceiver-åtgärder kan ordnas i ett flödesdiagram. I det här dokumentet kallas de individuella transceiveråtgärderna för SeqActions.
- Källkoden är dock inte den bästa representationen för flödesdiagram, eftersom den döljer deras logiska och tidsmässiga struktur.
- STM32CubeWiSE-RadioCodeGenerator åtgärdar detta problem genom att tillhandahålla en grafisk metod för att bygga flödesdiagram och sedan exportera de genererade flödesdiagrammen som C-källkod för integration i användarapplikationer.
- Flödesdiagramdefinitionen lagras i mikrokontrollerns RAM i form av:
- En uppsättning ActionConfiguration RAM-tabeller, länkade till varandra med hjälp av pekare. Dessa pekare definierar SeqActions, det vill säga typen av åtgärd (till exempelample, sändning, mottagning, avbryt), samt SeqAction-specifika radioparametrar och villkor för åtgärdssändningar.
- En unik GlobalConfiguration RAM-tabell. Detta definierar ingångspunkten för flödesdiagrammet (den första SeqAction som ska köras), såväl som några standardflaggavärden och vanliga radioparametrar.
- Radioparametrar, som kan konfigureras individuellt för varje SeqAction, lagras i ett av de dynamiska registren, vars innehåll är en del av ActionConfiguration RAM-tabellen. Radioparametrar som är fixerade över hela exekveringen av flödesdiagrammet (såvida de inte modifieras under ett CPU-avbrott), lagras i statiska register, vars innehåll är en del av den globala konfigurations-RAM-tabellen.
Allmän information
Licensiering
Det här dokumentet beskriver programvara som körs på den STM32WL3x Arm® Cortex ® -M0+-baserade mikrokontrollern.
Notera: Arm är ett registrerat varumärke som tillhör Arm Limited (eller dess dotterbolag) i USA och/eller någon annanstans.
Relaterade dokument
Tabell 1. Dokumentreferenser
Antal | Hänvisning | Titel |
[1] | RM0511 | STM32WL30xx/31xx/33xx Arm®-baserade sub-GHz MCU:er |
Komma igång
- Det här avsnittet beskriver alla systemkrav för att köra STM32CubeWiSE-RadioCodeGenerator.
- Den beskriver också installationsproceduren för programvarupaketet.
Systemkrav
Applikationen STM32CubeWiSE-RadioCodeGenerator har följande minimikrav:
- PC med en Intel®- eller AMD®-processor som kör operativsystemet Microsoft® Windows 10
- Minst 2 Gbyte RAM
- USB-portar
- Adobe Acrobat reader 6.0
STM32CubeWiSE-RadioCodeGenerator SW-paketinställning
Utför följande steg:
- Extrahera innehållet i stm32wise-cgwin.zip file till en tillfällig katalog.
- Extrahera och starta STM32CubeWiSE-RadioCodeGenerator_Vx.xxexe file och följ instruktionerna på skärmen.
STM32CubeWiSE-RadioCodeGenerator SW-paket files
STM32CubeWiSE-RadioCodeGenerator SW-paketet files är organiserade i följande mappar:
- app: innehåller STM32CubeWiSE-RadioCodeGenerator.exe
- examples: den här mappen är organiserad i följande undermappar:
- kod: den här mappen innehåller flödesdiagrammen example redan exporterad som C-kod, redo att injiceras i ett applikationsprojekt
- flowgraphs: den här mappen lagrar några exampmindre scenarier för autonoma MRSUBG-sequenceroperationer
Release notes och licens files finns i rotmappen.
STM32CubeWiSE-RadioCodeGenerator mjukvarubeskrivning
- Det här avsnittet beskriver huvudfunktionerna i STM32CubeWiSE-RadioCodeGenerator-applikationen. För att köra det här verktyget, klicka på STM32CubeWiSE-RadioCodeGenerator-ikonen.
Efter att ha startat STM32CubeWiSE-RadioCodeGenerator, visas huvudprogrammets fönster. Den består av:
- En global meny och verktygsfält
- Den visuella dra-och-släpp-representationen av flödesdiagrammet
- SeqAction-konfigurationsavsnittet (endast synligt om en SeqAction för närvarande redigeras)
Bygga en flödesgraf
Grunderna
Flödesdiagram är byggda i två steg:
- Lägg till SeqActions till flödesdiagrammet. Detta kan göras med hjälp av knappen "Lägg till åtgärd" i verktygsfältet, med hjälp av den globala menyn (Redigera → Lägg till åtgärd) eller med genvägen "Ctrl+A".
- Anslut SeqActions till ingångspunkten och till varandra genom att rita åtgärdspilar.
De förhållanden under vilka dessa övergångar inträffar definieras senare (se avsnitt 3.2.1: Styrflöde).
Navigera i flödesdiagrammet, dra åtgärder
Genom att dra rutbrädesbakgrunden för flödesdiagrammet med muspekaren (vänsterklick), viewport på flödesdiagrammet kan justeras. Musens rullningshjul kan användas för att zooma in och ut. Klicka var som helst på en åtgärd (förutom utgångsportarna, raderingsknappen och redigera-knappen) för att välja en åtgärd. Åtgärder kan ordnas i flödesdiagrammet genom att dra dem med vänster musknapp.
Lägger till åtgärdsövergångar
- Som visas i figur 2 har varje åtgärd två "utgångsportar", kallade NextAction1 (NA1) och NextAction2 (NA2), som kan kopplas till SeqActions som exekveras efter att åtgärden har slutförts. Till exempelample, NextAction1 skulle kunna användas för att utföra någon åtgärd om den aktuella åtgärden lyckades och NextAction2 kunde utlösas vid misslyckande.
- För att skapa en åtgärdsövergång, håll muspekaren över en av utgångsportarna, tryck på vänster musknapp och flytta muspekaren för att dra en övergångspil. Flytta muspekaren över ingångsporten till vänster om någon annan SeqAction och släpp vänster musknapp för att göra anslutningen permanent. För att ta bort en åtgärdsövergång, upprepa bara stegen för att skapa en åtgärdsövergång, men släpp vänster musknapp någonstans över schackbrädets bakgrund.
- Om en utgång (NextAction1, NextAction2) lämnas oansluten, avslutas sekvenseraren om denna nästa åtgärd utlöses.
- Se till att även ansluta "Entry Point" till någon SeqActions ingångsport. Denna SeqAction är den första som exekveras så snart sequencern triggas.
Redigera och ta bort åtgärder
- SeqActions kan redigeras genom att klicka på pennknappen längst upp till vänster i SeqAction. Den kan raderas genom att klicka på det röda krysset uppe till höger (se figur 3). Att ta bort en SeqAction tar också bort alla inkommande och utgående åtgärdsövergångar.
SeqAction-konfiguration
SeqActions kan konfigureras via ett konfigurationsgränssnitt med flikar som är tillgängligt via pennknappen längst upp till vänster om varje åtgärd i flödesdiagrammet. Detta gränssnitt konfigurerar i huvudsak innehållet i ActionConfiguration RAM-tabellen för den specifika åtgärden, bestående av både kontrollflödesrelaterade konfigurationsalternativ såväl som det dynamiska registerinnehållet. Det dynamiska registerinnehållet kan antingen konfigureras manuellt med fullständig kontroll över varje registervärde (se avsnitt 3.2.3: Avancerad radiokonfiguration) eller genom ett förenklat gränssnitt (se avsnitt 3.2.2: Grundläggande radiokonfiguration ). Det förenklade gränssnittet bör vara tillräckligt för nästan alla användningsfall.
Styrningsflöde
Kontrollflödesfliken (se figur 4) innehåller några grundläggande konfigurationsalternativ såsom åtgärdsnamn och åtgärdstimeoutintervall. Åtgärdsnamnet används inte bara för visning i flödesdiagrammet utan överförs också till den genererade källkoden.
- Kontrollflödesfliken (se figur 4) innehåller några grundläggande konfigurationsalternativ såsom åtgärdsnamn och åtgärdstimeoutintervall. Åtgärdsnamnet används inte bara för visning i flödesdiagrammet utan överförs också till den genererade källkoden.
- Viktigast av allt är att kontrollflödesfliken konfigurerar villkoret som en övergång till NextAction1 / NextAction2 beror på samt övergångsintervall och flaggor. Övergångsvillkoret kan konfigureras genom att klicka på knappen märkt "...", vilket gör att dialogrutan för maskval som visas i figur 5 visas. Övergångsintervallet ändrade egenskapen NextAction1Interval / NextAction2Interval i RAM-tabellen. Se STM32WL3x referensmanual [1] för mer information om innebörden av detta intervall och betydelsen av SleepEn / ForceReload / ForceClear flaggorna.
- Dessutom kan en kort beskrivning av SeqAction-blocket läggas till på denna flik. Denna beskrivning används endast i dokumentationssyfte och överförs till den genererade källkoden som en källkodkommentar.
Grundläggande radiokonfiguration
Fliken för grundläggande radiokonfiguration kan delas in i tre delar:
- En sektion högst upp där två av de viktigaste parametrarna för en åtgärd är konfigurerade: kommandot att köra (TX, RX, NOP, SABORT, och så vidare) och, om tillämpligt, längden på paketet som ska överföras.
- En sektion till vänster där de faktiska radioparametrarna som: bärvågsfrekvens, datahastighet, moduleringsegenskaper, databufferttrösklar och timer är konfigurerade.
- Ett avsnitt till höger där CPU-avbrott kan aktiveras individuellt. En avbrottshanterare genereras för vart och ett av de markerade avbrotten. Detta konfigurerar i princip innehållet i registret RFSEQ_IRQ_ENABLE.
Se STM32WL3x referensmanual [1] för betydelsen av de olika radioparametrarna.
Avancerad radiokonfiguration
- Om konfigurationsalternativen som exponeras via fliken för grundläggande radiokonfiguration (avsnitt 3.2.2: Grundläggande radiokonfiguration) är otillräckliga, tillåter den avancerade radiokonfigurationsfliken STM32WL3x inställning av godtyckligt dynamiskt registerinnehåll. Fliken avancerad konfiguration aktiveras genom att markera kryssrutan Avancerad konfiguration uppe till höger i konfigurationsgränssnittet med flikar.
- Det är inte möjligt att använda både grundläggande och avancerade konfigurationer samtidigt, användaren måste välja den ena eller den andra. Men det är naturligtvis också möjligt att manuellt redigera den genererade källkoden i efterhand och lägga till potentiellt saknade konfigurationsalternativ.
Global konfigurationsdialog
- Dialogrutan "Globala projektinställningar" kan nås via verktygsfältsknappen "Globala inställningar". Dialogen innehåller både konfigurationsalternativ för det statiska registerinnehållet samt ytterligare projektinställningar. Observera att endast en liten del av statiska registerkonfigurationsalternativ kan konfigureras via den här dialogrutan. Dessa alternativ tillhandahålls endast för att påskynda applikationsprototypapplikationer med STM32CubeWiSE-RadioCodeGenerator.
- Det förväntas vanligtvis att det statiska registerinnehållet ställs in i programmets manuellt skrivna källkod.
- Innebörden av de andra projektinställningarna förklaras i själva dialogrutan.
- Ytterligare C-kod som infogas precis innan den globala konfigurations-RAM-tabellen skapas från det statiska registrets innehåll kan också tillhandahållas. Det här fältet kan användas för att ställa in statiska registervärden som är otillgängliga via den medföljande statiska registerkonfigurationsmasken.
Kodgenerering
Flödesdiagrammet kan översättas till en komplett projekt C-källkod genom att trycka på knappen Generera kod i verktygsfältet. Den genererade projektmappen innehåller inte projekt files för IAR, Keil® eller GCC. Dessa files måste läggas till manuellt i STMWL3x-projektet.
Detta är den genererade projektmappstrukturen:
Projektmapp
- inkl
- SequencerFlowgraph.h: rubrik file för SequencerFlowgraph.c, statisk. Redigera inte detta.
- stm32wl3x_hal_conf.h: STM32WL3x HAL-konfiguration file, statisk.
- src
- SequencerFlowgraph.c: definition av flödesdiagram. Detta är det viktiga file som använder sequencer-drivrutinen för att definiera RAM-tabellerna för global konfiguration och action-konfiguration. Autogenererad, redigera inte.
- main.c: Projektets huvud file som visar hur man laddar och tillämpar flödesdiagramdefinitionen. Statisk, ändra detta efter behov.
- För att redigera main.c eller stm32wl3x_hal_conf.h, välj överskrivbeteende Behåll i projektinställningarna. På så sätt skrivs bara SequencerFlowgraph.c över.
Hur man importerar genererad kod till en CubeMX example
För att importera ett projekt genererat av STM32CubeWiSE-RadioCodeGenerator till ett CubeMX example (MRSUBG_Skeleton), är det nödvändigt att följa följande steg:
- Öppna mappen som innehåller files genereras av STM32CubeWiSE-RadioCodeGenerator och kopiera "Inc" och "Src" mappar.
- Klistra in de två mapparna i mappen "MRSUBG_Skeleton" och skriv över de två som redan finns.
- Öppna "MRSUBG_Skeleton"-projektet i en av följande IDE:er:
- VARM
- MDK-ARM
- STM32CubeIDE
- Inuti "MRSUBG_Skeleton"-projektet lägger du till "SequencerFlowghraph.c" file:
- För ett EWARM-projekt, vägen för att lägga till file är följande: MRSUBG_Skeleton\Application\User
- För ett MDK-ARM-projekt, sökvägen för att lägga till file är följande: MRSUBG_Skeleton\Application/User
- För ett STM32CubeIDE-projekt, sökvägen för att lägga till file är samma:
MRSUBG_Skeleton\Application\User
- För ett EWARM-projekt, vägen för att lägga till file är följande: MRSUBG_Skeleton\Application\User
- Inuti MRSUBG_Skeleton-projektet lägger du till stm32wl3x_hal_uart.c och stm32wl3x_hal_uart_ex.c files till följande sökväg: MRSUBG_Skeleton\Drivers\STM32WL3x_HAL_Driver. Sökvägen är densamma för alla IDE:er. De två files finns på Firmware\Drivers\STM32WL3x_HAL_Driver\Src.
- För att använda COM-funktioner, stm32wl3x_nucleo_conf.h file, som finns på Firmware\Projects\NUCLEOWL33CC\ Examples\MRSUBG\MRSUBG_Skeleton\Inc, måste ändras med inställningen USE_BSP_COM_FEATURE och USE_COM_LOG till 1U:
- Kopiera följande kod till "stm32wl3x_it.c", som finns i MRSUBG_Skeleton\Application\User.
Flödesgraf examples
- Fyra exampFlödesdiagrammen tillhandahålls tillsammans med källkoden. Dessa exampfiler kan laddas in i STM32CubeWiSE-RadioCodeGenerator genom att klicka på knappen "Ladda" i verktygsfältet.
AutoACK_RX
- Auto-ACK-demon illustrerar hur två STM32WL3x-enheter automatiskt kan prata med varandra med minimal CPU-inblandning, med hjälp av sequencer-hårdvaran.
- Denna flödesgraf implementerar beteendet (Auto-Transmit-ACK) för enhet A. I enhet A initieras sekvenseraren i ett mottagningstillstånd (WaitForMessage), i vilket den väntar på att ett meddelande ska anlända.
- När ett giltigt meddelande väl anländer övergår sekvenseraren automatiskt till ett överföringstillstånd (TransmitACK), i vilket ett ACK-paket skickas som ett svar, utan CPU-intervention. När detta är klart återställs sequencern till sitt initiala WaitForMessage-läge.
- Detta flödesdiagram implementerar samma beteende som MRSUBG_SequencerAutoAck_Rx example från Examples\MRSUBG-mappen i programpaketet STM32Cube WL3. Om AutoACK_RX blinkar på en enhet
A, och AutoACK_TX blinkar på någon enhet, B, de två enheterna skickar meddelanden fram och tillbaka, som i ett pingisspel.
AutoACK_TX
- "Auto-ACK"-demon illustrerar hur två STM32WL3x-enheter automatiskt kan prata med varandra med minimal CPU-intervention med hjälp av sequencer-hårdvaran.
- Denna flödesgraf implementerar beteendet (“Auto-Wait-for-ACK”) för enhet B. I enhet B initieras sekvenseraren i ett sändningstillstånd (TransmitMessage), i vilket den sänder ett meddelande. När överföringen är klar övergår den automatiskt till ett mottagningstillstånd där den väntar på en bekräftelse från enhet A (WaitForACK). När en giltig bekräftelse anländer återställs sequencern till sitt initiala TransmitMessage-tillstånd och hela processen startar igen. Om ingen ACK tas emot inom 4 sekunder utlöses en timeout och sequencern återgår till tillståndet TransmitMessage ändå.
- Detta flödesdiagram implementerar samma beteende som "MRSUBG_SequencerAutoAck_Tx" example från Examples\MRSUBG-mappen i programpaketet STM32Cube WL3. Om AutoACK_RX blinkar på en enhet, A och AutoACK_TX blinkar på någon annan enhet, B, skickar de två enheterna meddelanden fram och tillbaka, som i ett pingisspel.
Lyssna före samtal (LBT)
- Detta example är hämtad från STM32WL3x referensmanual [1]. Se den manualen för ytterligare information om detta example.
Sniff läge
- Detta example är hämtad från STM32WL3x referensmanual [1]. Se den manualen för ytterligare information om detta example.
Revisionshistorik
Tabell 2. Dokumentrevisionshistorik
Datum | Version | Ändringar |
21-nov-2024 | 1 | Initial release. |
10-2025 februari | 2 | Uppdaterat enhetsnamn till scope STM32WL3x. |
VIKTIGT MEDDELANDE – LÄS NOGGRANT
- STMicroelectronics NV och dess dotterbolag (“ST”) förbehåller sig rätten att göra ändringar, korrigeringar, förbättringar, modifieringar och förbättringar av ST-produkter och/eller av detta dokument när som helst utan föregående meddelande. Köpare bör skaffa den senaste relevanta informationen om ST-produkter innan de lägger beställningar. ST-produkter säljs i enlighet med ST:s försäljningsvillkor som gäller vid tidpunkten för ordererkännande.
- Köparen är ensam ansvarig för val, urval och användning av ST-produkter och ST tar inget ansvar för applikationshjälp eller design av köparens produkter.
- Ingen licens, uttrycklig eller underförstådd, till någon immateriell rättighet beviljas av ST häri.
- Återförsäljning av ST-produkter med bestämmelser som skiljer sig från den information som anges häri upphäver all garanti som beviljats av ST för sådan produkt.
- ST och ST-logotypen är varumärken som tillhör ST. För ytterligare information om ST-varumärken, se www.st.com/trademarks. Alla andra produkt- eller tjänstnamn tillhör sina respektive ägare.
- Informationen i detta dokument ersätter och ersätter information som tidigare tillhandahållits i tidigare versioner av detta dokument.
- © 2025 STMicroelectronics – Alla rättigheter reserverade
FAQ
- F: Vilka är minimisystemkraven för STM32CubeWiSE-RadioCodeGenerator?
- A: De lägsta systemkraven inkluderar minst 2 Gbyte RAM, USB-portar och Adobe Acrobat reader 6.0.
- F: Hur kan jag ställa in mjukvarupaketet STM32CubeWiSE-RadioCodeGenerator?
- A: För att konfigurera programpaketet, extrahera innehållet i den medföljande zip-filen file till en tillfällig katalog och starta den körbara filen file följa instruktionerna på skärmen.
Dokument/resurser
![]() |
STMicroelectronics UM3399 STM32Cube WiSE Radio Code Generator [pdf] Användarmanual UM3399, UM3399 STM32 Cube WiSE Radio Code Generator, UM3399, STM32, Cube WiSE Radio Code Generator, Radio Code Generator, Code Generator, Generator |