STMicroelectronics UM3399 STM32Cube WiSE Radio Code Generator
Produktbruksinstruksjoner
- STM32CubeWiSE-RadioCodeGenerator-applikasjonen krever minst 2 Gbyte RAM, USB-porter og Adobe Acrobat reader 6.0.
- Pakk ut innholdet i stm32wise-cgwin.zip file inn i en midlertidig katalog.
- Start STM32CubeWiSE-RadioCodeGenerator_Vx.xxexe file og følg instruksjonene på skjermen.
- STM32CubeWiSE-RadioCodeGenerator SW-pakken files er organisert i mapper inkludert 'app' og 'examples'.
- Slik bygger du en flytgraf i STM32CubeWiSE-RadioCodeGenerator:
- Legg til SeqActions til flytdiagrammet ved hjelp av verktøylinjen eller den globale menyen.
- Koble SeqActions til inngangspunktet og til hverandre ved å tegne handlingsovergangspiler.
- Naviger i flytgrafen ved å dra handlinger og legge til handlingsoverganger etter behov.
Introduksjon
- Dette dokumentet beskriver STM32CubeWiSE-RadioCodeGenerator (STM32CubeWiSEcg) SW-pakken med STM32WL3x MRSUBG sequencer-kodegenerator.
- STM32CubeWiSE-RadioCodeGenerator er en PC-applikasjon som brukes til å bygge en flytgraf som definerer hvilke transceiver-handlinger som skal utføres under hvilke forhold, ved å bruke MRSUBG-sequencer-driveren.
- STM32WL3x Sub-GHz radio inneholder denne sekvenseren, som er en tilstandsmaskin-lignende mekanisme som muliggjør autonom styring av RF-overføringer, uten behov for CPU-intervensjon.
- Hvis CPU-intervensjon er nødvendig, kan avbrudd defineres. Transceiver-handlinger kan ordnes i en flytgraf. I dette dokumentet omtales de individuelle transceiverhandlingene som SeqActions.
- Kildekoden er imidlertid ikke den beste representasjonen for flytgrafer, siden den skjuler deres logiske og tidsmessige struktur.
- STM32CubeWiSE-RadioCodeGenerator løser dette problemet ved å tilby en grafisk metode for å bygge flytdiagrammer og deretter eksportere de genererte flytgrafene som C-kildekode for integrering i brukerapplikasjoner.
- Flytdiagramdefinisjonen er lagret i mikrokontrollerens RAM i form av:
- Et sett med ActionConfiguration RAM-tabeller, koblet til hverandre ved hjelp av pekere. Disse pekerne definerer SeqActions, det vil si typen handling (f.eksample, sending, mottak, avbryt), samt SeqAction-spesifikke radioparametere og betingelser for handlingssendinger.
- En unik GlobalConfiguration RAM-tabell. Dette definerer inngangspunktet til flytgrafen (den første SeqAction som skal utføres), samt noen standard flaggverdier og vanlige radioparametere.
- Radioparametere, som kan konfigureres individuelt for hver SeqAction, lagres i et av de dynamiske registrene, hvis innhold er en del av ActionConfiguration RAM-tabellen. Radioparametere som er fiksert over hele utførelsen av flytdiagrammet (med mindre de er modifisert under et CPU-avbrudd), lagres i statiske registre, hvis innhold er en del av den globale konfigurasjons-RAM-tabellen.
Generell informasjon
Lisensering
Dette dokumentet beskriver programvare som kjører på den STM32WL3x Arm® Cortex ® -M0+-baserte mikrokontrolleren.
Note: Arm er et registrert varemerke for Arm Limited (eller dets datterselskaper) i USA og/eller andre steder.
Relaterte dokumenter
Tabell 1. Dokumentreferanser
Tall | Referanse | Tittel |
[1] | RM0511 | STM32WL30xx/31xx/33xx Arm®-baserte sub-GHz MCUer |
Komme i gang
- Denne delen beskriver alle systemkravene for å kjøre STM32CubeWiSE-RadioCodeGenerator.
- Den beskriver også installasjonsprosedyren for programvarepakken.
Systemkrav
STM32CubeWiSE-RadioCodeGenerator-applikasjonen har følgende minimumskrav:
- PC med en Intel®- eller AMD®-prosessor som kjører Microsoft® Windows 10-operativsystemet
- Minst 2 Gbyte RAM
- USB-porter
- Adobe Acrobat Reader 6.0
STM32CubeWiSE-RadioCodeGenerator SW-pakkeoppsett
Utfør følgende trinn:
- Pakk ut innholdet i stm32wise-cgwin.zip file inn i en midlertidig katalog.
- Pakk ut og start STM32CubeWiSE-RadioCodeGenerator_Vx.xxexe file og følg instruksjonene på skjermen.
STM32CubeWiSE-RadioCodeGenerator SW-pakke files
STM32CubeWiSE-RadioCodeGenerator SW-pakken files er organisert i følgende mapper:
- app: inneholder STM32CubeWiSE-RadioCodeGenerator.exe
- examples: denne mappen er organisert i følgende undermapper:
- kode: denne mappen inneholder flytgrafene f.eksample allerede eksportert som C-kode, klar til å bli injisert i et applikasjonsprosjekt
- flowgraphs: denne mappen lagrer noen eksampLes scenarier for autonome MRSUBG-sekvenseroperasjoner
Utgivelsesnotater og lisens files er plassert i rotmappen.
STM32CubeWiSE-RadioCodeGenerator programvarebeskrivelse
- Denne delen beskriver hovedfunksjonene til STM32CubeWiSE-RadioCodeGenerator-applikasjonen. For å kjøre dette verktøyet, klikk på STM32CubeWiSE-RadioCodeGenerator-ikonet.
Etter å ha startet STM32CubeWiSE-RadioCodeGenerator, vises hovedprogramvinduet. Den består av:
- En global meny og verktøylinje
- Den visuelle dra-og-slipp-representasjonen av flytdiagrammet
- SeqAction-konfigurasjonsdelen (bare synlig hvis en SeqAction blir redigert)
Bygge en flytgraf
Grunnleggende
Flytdiagrammer bygges i to trinn:
- Legg til SeqActions i flytdiagrammet. Dette kan gjøres ved å bruke "Legg til handling"-knappen i verktøylinjen, ved å bruke den globale menyen (Rediger → Legg til handling) eller med snarveien "Ctrl+A".
- Koble SeqActions til inngangspunktet og til hverandre ved å tegne handlingsovergangspiler.
Betingelsene for disse overgangene defineres senere (se avsnitt 3.2.1: Kontrollflyt).
Navigere i flytdiagrammet, dra handlinger
Ved å dra sjakkbrettbakgrunnen til flytgrafen med musepekeren (venstreklikk), kan du viewport på flytgrafen kan justeres. Musens rullehjul kan brukes til å zoome inn og ut. Klikk hvor som helst på en handling (bortsett fra utgangsportene, sletteknappen og redigeringsknappen) for å velge en handling. Handlinger kan ordnes i flytdiagrammet ved å dra dem med venstre museknapp.
Legger til handlingsoverganger
- Som vist i figur 2, har hver handling to "utgangsporter", kalt NextAction1 (NA1) og NextAction2 (NA2), som kan kobles til SeqActions som utføres etter at handlingen er fullført. For eksample, NextAction1 kan brukes til å utføre en handling hvis gjeldende handling var vellykket, og NextAction2 kunne utløses i tilfelle feil.
- For å lage en handlingsovergang, hold musepekeren over en av utgangsportene, trykk på venstre museknapp og flytt musepekeren for å dra en overgangspil. Flytt musepekeren over inngangsporten til venstre for en annen SeqAction og slipp venstre museknapp for å gjøre tilkoblingen permanent. For å fjerne en handlingsovergang, gjenta bare trinnene for å lage en handlingsovergang, men slipp venstre museknapp et sted over sjakkbrettbakgrunnen.
- Hvis en utgang (NextAction1, NextAction2) ikke er koblet til, avsluttes sekvenseren hvis denne neste handlingen utløses.
- Pass på at du også kobler "Entry Point" til en eller annen SeqActions inngangsport. Denne SeqAction er den første som blir utført så snart sequenceren utløses.
Redigering og sletting av handlinger
- SeqActions kan redigeres ved å klikke på blyantknappen øverst til venstre i SeqAction. Den kan slettes ved å klikke på det røde krysset øverst til høyre (se figur 3). Sletting av en SeqAction fjerner også alle innkommende og utgående handlingsoverganger.
SeqAction-konfigurasjon
SeqActions kan konfigureres gjennom et konfigurasjonsgrensesnitt med faner som er tilgjengelig via blyantknappen øverst til venstre for hver handling i flytdiagrammet. Dette grensesnittet konfigurerer i hovedsak innholdet i ActionConfiguration RAM-tabellen for den bestemte handlingen, bestående av både kontrollflytrelaterte konfigurasjonsalternativer så vel som det dynamiske registerinnholdet. Det dynamiske registerinnholdet kan enten konfigureres manuelt med full kontroll over hver registerverdi (se avsnitt 3.2.3: Avansert radiokonfigurasjon) eller gjennom et forenklet grensesnitt (se avsnitt 3.2.2: Grunnleggende radiokonfigurasjon ). Det forenklede grensesnittet bør være tilstrekkelig for nesten alle brukstilfeller.
Kontroller flyten
Kontrollflyt-fanen (se figur 4) inneholder noen grunnleggende konfigurasjonsalternativer som handlingsnavn og tidsavbruddsintervall for handling. Handlingsnavnet brukes ikke bare for visning i flytdiagrammet, men overføres også til den genererte kildekoden.
- Kontrollflyt-fanen (se figur 4) inneholder noen grunnleggende konfigurasjonsalternativer som handlingsnavn og tidsavbruddsintervall for handling. Handlingsnavnet brukes ikke bare for visning i flytdiagrammet, men overføres også til den genererte kildekoden.
- Det viktigste er at kontrollflytfanen konfigurerer tilstanden som en overgang til NextAction1 / NextAction2 avhenger av, samt overgangsintervall og flagg. Overgangsbetingelsen kan konfigureres ved å klikke på knappen merket "...", som får dialogen for valg av maske vist i figur 5 til å vises. Overgangsintervallet endret egenskapen NextAction1Interval / NextAction2Interval til RAM-tabellen. Se STM32WL3x referansehåndboken [1] for mer informasjon om betydningen av dette intervallet og betydningen av SleepEn / ForceReload / ForceClear-flaggene.
- Videre kan en kort beskrivelse av SeqAction-blokken legges til på denne fanen. Denne beskrivelsen brukes kun til dokumentasjonsformål og overføres til den genererte kildekoden som en kildekodekommentar.
Grunnleggende radiokonfigurasjon
Den grunnleggende radiokonfigurasjonsfanen kan deles inn i tre deler:
- En seksjon øverst der to av de viktigste parameterne for enhver handling er konfigurert: kommandoen som skal utføres (TX, RX, NOP, SABORT, og så videre) og, hvis aktuelt, lengden på pakken som skal overføres.
- En seksjon til venstre der de faktiske radioparametrene som: bærefrekvens, datahastighet, modulasjonsegenskaper, databufferterskler og tidtakere er konfigurert.
- En del til høyre der CPU-avbrudd kan aktiveres individuelt. En avbruddsbehandler genereres for hvert av de avmerkede avbruddene. Dette konfigurerer i utgangspunktet innholdet i RFSEQ_IRQ_ENABLE-registeret.
Se STM32WL3x referansehåndboken [1] for betydningen av de forskjellige radioparametrene.
Avansert radiokonfigurasjon
- Hvis konfigurasjonsalternativene som vises gjennom fanen grunnleggende radiokonfigurasjon (avsnitt 3.2.2: Grunnleggende radiokonfigurasjon) er utilstrekkelige, tillater den avanserte STM32WL3x radiokonfigurasjonsfanen innstilling av vilkårlig dynamisk registerinnhold. Fanen avansert konfigurasjon aktiveres ved å merke av for Avansert konfigurasjon øverst til høyre i konfigurasjonsgrensesnittet med faner.
- Det er ikke mulig å bruke både grunnleggende og avanserte konfigurasjoner samtidig, brukeren må velge den ene eller den andre. Men det er selvfølgelig også mulig å manuelt redigere den genererte kildekoden i etterkant og legge til potensielt manglende konfigurasjonsalternativer.
Global konfigurasjonsdialog
- Dialogboksen "Globale prosjektinnstillinger" kan nås via verktøylinjeknappen "Globale innstillinger". Dialogen inneholder både konfigurasjonsalternativer for det statiske registerinnholdet samt ytterligere prosjektinnstillinger. Merk at bare en liten del av konfigurasjonsalternativene for statiske register kan konfigureres gjennom denne dialogboksen. Disse alternativene er kun gitt for å øke hastigheten på applikasjonsprototyping-applikasjoner med STM32CubeWiSE-RadioCodeGenerator.
- Det forventes vanligvis at det statiske registerinnholdet settes opp i applikasjonens manuelt skrevne kildekode.
- Betydningen av de andre prosjektinnstillingene er forklart i selve dialogen.
- Ytterligere C-kode som settes inn rett før du oppretter RAM-tabellen for global konfigurasjon fra det statiske registerinnholdet kan også gis. Dette feltet kan brukes til å sette opp statiske registerverdier som er utilgjengelige gjennom den medfølgende statiske registerkonfigurasjonsmasken.
Kodegenerering
Flytdiagrammet kan oversettes til en komplett prosjekt C-kildekode ved å trykke på Generer kode-knappen i verktøylinjen. Den genererte prosjektmappen inneholder ikke prosjekt files for IAR, Keil® eller GCC. Disse files må legges til manuelt i STMWL3x-prosjektet.
Dette er den genererte prosjektmappestrukturen:
Prosjektmappe
- inc
- SequencerFlowgraph.h: overskrift file for SequencerFlowgraph.c, statisk. Ikke rediger dette.
- stm32wl3x_hal_conf.h: STM32WL3x HAL-konfigurasjon file, statisk.
- src
- SequencerFlowgraph.c: flytdiagramdefinisjon. Dette er det viktige file som bruker sequencer-driveren til å definere RAM-tabellene for global konfigurasjon og handlingskonfigurasjon. Autogenerert, ikke rediger.
- main.c: Prosjekt hoved file som viser hvordan du laster inn og bruker flytdiagramdefinisjonen. Statisk, endre dette etter behov.
- For å redigere main.c eller stm32wl3x_hal_conf.h, velg overskriveatferd Behold i prosjektinnstillingene. På denne måten blir bare SequencerFlowgraph.c overskrevet.
Hvordan importere generert kode til en CubeMX example
For å importere et prosjekt generert av STM32CubeWiSE-RadioCodeGenerator til en CubeMX example (MRSUBG_Skeleton), er det nødvendig å følge følgende trinn:
- Åpne mappen som inneholder files generert av STM32CubeWiSE-RadioCodeGenerator og kopier "Inc" og "Src" mapper.
- Lim inn de to mappene på "MRSUBG_Skeleton"-mappen og overskriv de to som allerede er til stede.
- Åpne "MRSUBG_Skeleton"-prosjektet i en av følgende IDE-er:
- VARM
- MDK-ARM
- STM32CubeIDE
- Inne i «MRSUBG_Skeleton»-prosjektet legger du til «SequencerFlowghraph.c» file:
- For et EWARM-prosjekt er banen for å legge til file er følgende: MRSUBG_Skeleton\Application\User
- For et MDK-ARM-prosjekt, banen for å legge til file er følgende: MRSUBG_Skeleton\Application/User
- For et STM32CubeIDE-prosjekt, banen for å legge til file er det samme:
MRSUBG_Skeleton\Application\User
- For et EWARM-prosjekt er banen for å legge til file er følgende: MRSUBG_Skeleton\Application\User
- Inne i MRSUBG_Skeleton-prosjektet legger du til stm32wl3x_hal_uart.c og stm32wl3x_hal_uart_ex.c files til følgende sti: MRSUBG_Skeleton\Drivers\STM32WL3x_HAL_Driver. Banen er den samme for alle IDE-er. De to files er plassert på Firmware\Drivers\STM32WL3x_HAL_Driver\Src.
- For å bruke COM-funksjoner, stm32wl3x_nucleo_conf.h file, som ligger på Firmware\Projects\NUCLEOWL33CC\ Examples\MRSUBG\MRSUBG_Skeleton\Inc, må endres ved å sette USE_BSP_COM_FEATURE og USE_COM_LOG til 1U:
- Kopier følgende kode til "stm32wl3x_it.c", som ligger i MRSUBG_Skeleton\Application\User.
Flowgraph eksamples
- Fire eksampflytdiagrammer leveres sammen med kildekoden. Disse eksamples kan lastes inn i STM32CubeWiSE-RadioCodeGenerator ved å klikke på "Load"-knappen på verktøylinjen.
AutoACK_RX
- Auto-ACK-demoen illustrerer hvordan to STM32WL3x-enheter automatisk kan snakke med hverandre med minimal CPU-intervensjon, ved hjelp av sequencer-maskinvaren.
- Denne flytgrafen implementerer oppførselen (Auto-Transmit-ACK) til enhet A. I enhet A initialiseres sekvenseren i en mottakstilstand (WaitForMessage), der den venter på at en melding skal ankomme.
- Når en gyldig melding kommer, går sekvenseren automatisk over til en overføringstilstand (TransmitACK), der en ACK-pakke sendes som et svar, uten CPU-intervensjon. Når dette er fullført, tilbakestilles sequenceren til sin opprinnelige WaitForMessage-tilstand.
- Denne flytgrafen implementerer samme oppførsel som MRSUBG_SequencerAutoAck_Rx example fra Examples\MRSUBG-mappen til STM32Cube WL3-programvarepakken. Hvis AutoACK_RX blinker på én enhet
A, og AutoACK_TX blinker på en eller annen enhet, B, de to enhetene sender meldinger frem og tilbake, som i et ping-pong-spill.
AutoACK_TX
- "Auto-ACK"-demoen illustrerer hvordan to STM32WL3x-enheter automatisk kan snakke med hverandre med minimal CPU-intervensjon ved hjelp av sequencer-maskinvaren.
- Denne flytgrafen implementerer oppførselen (“Auto-Wait-for-ACK”) til enhet B. I enhet B initialiseres sekvenseren i en sendetilstand (TransmitMessage), der den sender en melding. Når overføringen er fullført, går den automatisk over til en mottakstilstand der den venter på en bekreftelse fra enhet A (WaitForACK). Når en gyldig bekreftelse kommer, tilbakestilles sekvenseren til sin opprinnelige TransmitMessage-tilstand og hele prosessen starter på nytt. I tilfelle ingen ACK mottas innen 4 sekunder, utløses en timeout og sekvenseren går tilbake til tilstanden TransmitMessage uansett.
- Denne flytgrafen implementerer samme oppførsel som «MRSUBG_SequencerAutoAck_Tx»-eks.ample fra Examples\MRSUBG-mappen til STM32Cube WL3-programvarepakken. Hvis AutoACK_RX blinker på en enhet, A, og AutoACK_TX blinker på en annen enhet, B, sender de to enhetene meldinger frem og tilbake, som i et ping-pong-spill.
Lytt før samtale (LBT)
- Denne eksample er hentet fra STM32WL3x referansehåndbok [1]. Se den håndboken for ytterligere detaljer om denne eksample.
Sniff-modus
- Denne eksample er hentet fra STM32WL3x referansehåndbok [1]. Se den håndboken for ytterligere detaljer om denne eksample.
Revisjonshistorikk
Tabell 2. Dokumentrevisjonshistorikk
Dato | Versjon | Endringer |
21. nov. 2024 | 1 | Første utgivelse. |
10-2025 februar | 2 | Oppdatert enhetsnavn til scope STM32WL3x. |
VIKTIG MERKNAD – LES NØYE
- STMicroelectronics NV og dets datterselskaper ("ST") forbeholder seg retten til å gjøre endringer, rettelser, forbedringer, modifikasjoner og forbedringer av ST-produkter og/eller dette dokumentet når som helst uten varsel. Kjøpere bør innhente den nyeste relevante informasjonen om ST-produkter før de legger inn bestillinger. ST-produkter selges i henhold til STs salgsvilkår som er på plass på tidspunktet for ordrebekreftelse.
- Kjøpere er alene ansvarlige for valg, valg og bruk av ST-produkter og ST påtar seg intet ansvar for søknadshjelp eller utforming av kjøpers produkter.
- Ingen lisens, uttrykt eller underforstått, til noen immaterielle rettigheter er gitt av ST heri.
- Videresalg av ST-produkter med andre bestemmelser enn informasjonen som er angitt her, vil ugyldiggjøre enhver garanti gitt av ST for slikt produkt.
- ST og ST-logoen er varemerker for ST. For ytterligere informasjon om ST-varemerker, se www.st.com/trademarks. Alle andre produkt- eller tjenestenavn tilhører sine respektive eiere.
- Informasjonen i dette dokumentet erstatter og erstatter informasjon som tidligere er gitt i tidligere versjoner av dette dokumentet.
- © 2025 STMicroelectronics – Alle rettigheter forbeholdt
FAQ
- Spørsmål: Hva er minimumssystemkravene for STM32CubeWiSE-RadioCodeGenerator?
- A: Minimum systemkrav inkluderer minst 2 Gbyte RAM, USB-porter og Adobe Acrobat Reader 6.0.
- Spørsmål: Hvordan kan jeg sette opp programvarepakken STM32CubeWiSE-RadioCodeGenerator?
- A: For å sette opp programvarepakken, pakk ut innholdet i den medfølgende zip-filen file inn i en midlertidig katalog og start den kjørbare filen file følge instruksjonene på skjermen.
Dokumenter / Ressurser
![]() |
STMicroelectronics UM3399 STM32Cube WiSE Radio Code Generator [pdfBrukerhåndbok UM3399, UM3399 STM32 Cube WiSE Radio Code Generator, UM3399, STM32, Cube WiSE Radio Code Generator, Radio Code Generator, Code Generator, Generator |