STMicroelectronics UM3399 Generátor rádiových kódů STM32Cube WiSE
Návod k použití produktu
- Aplikace STM32CubeWiSE-RadioCodeGenerator vyžaduje alespoň 2 GB paměti RAM, porty USB a čtečku Adobe Acrobat 6.0.
- Rozbalte obsah souboru stm32wise-cgwin.zip file do dočasného adresáře.
- Spusťte STM32CubeWiSE-RadioCodeGenerator_Vx.xxexe file a postupujte podle pokynů na obrazovce.
- SW balíček STM32CubeWiSE-RadioCodeGenerator files jsou organizovány do složek včetně 'app' a 'examples'.
- Postup vytvoření vývojového diagramu v STM32CubeWiSE-RadioCodeGenerator:
- Přidejte SeqActions do vývojového diagramu pomocí panelu nástrojů nebo globální nabídky.
- Připojte SeqActions ke vstupnímu bodu a navzájem nakreslením šipek přechodu akcí.
- Pohybujte se ve vývojovém grafu přetahováním akcí a přidáváním přechodů akcí podle potřeby.
Zavedení
- Tento dokument popisuje SW balíček STM32CubeWiSE-RadioCodeGenerator (STM32CubeWiSEcg) s generátorem kódu sekvenceru STM32WL3x MRSUBG.
- STM32CubeWiSE-RadioCodeGenerator je PC aplikace, která se používá k vytvoření vývojového diagramu, který definuje, které akce transceiveru se mají provést za jakých podmínek, pomocí ovladače sekvenceru MRSUBG.
- Rádio STM32WL3x Sub-GHz obsahuje tento sekvencer, což je mechanismus podobný stavovému stroji, který umožňuje autonomní řízení RF přenosů bez nutnosti zásahu CPU.
- Pokud je vyžadován zásah CPU, lze definovat přerušení. Akce transceiveru mohou být uspořádány do vývojového grafu. V tomto dokumentu jsou jednotlivé akce transceiveru označovány jako SeqActions.
- Zdrojový kód však není nejlepším znázorněním vývojových diagramů, protože skrývá jejich logickou a časovou strukturu.
- STM32CubeWiSE-RadioCodeGenerator řeší tento problém tím, že poskytuje grafickou metodu pro vytváření vývojových diagramů a poté exportuje vygenerované vývojové diagramy jako zdrojový kód C pro integraci do uživatelských aplikací.
- Definice vývojového diagramu je uložena v paměti RAM mikrokontroléru ve formě:
- Sada tabulek ActionConfiguration RAM, vzájemně propojených pomocí ukazatelů. Tyto ukazatele definují SeqActions, tedy typ akce (napřample, vysílání, příjem, přerušení), stejně jako rádiové parametry specifické pro SeqAction a podmínky pro akční vysílání.
- Jedinečná tabulka GlobalConfiguration RAM. Toto definuje vstupní bod vývojového diagramu (první provedení SeqAction), stejně jako některé výchozí hodnoty příznaků a běžné rádiové parametry.
- Rádiové parametry, které lze individuálně konfigurovat pro každou SeqAction, jsou uloženy v jednom z dynamických registrů, jejichž obsah je součástí tabulky ActionConfiguration RAM. Rádiové parametry, které jsou pevné po celou dobu provádění vývojového diagramu (pokud nejsou změněny při přerušení CPU), jsou uloženy ve statických registrech, jejichž obsah je součástí globální konfigurační RAM tabulky.
Obecné informace
Licencování
Tento dokument popisuje software, který běží na mikrokontroléru STM32WL3x Arm® Cortex ® -M0+.
Poznámka: Arm je registrovaná ochranná známka společnosti Arm Limited (nebo jejích dceřiných společností) v USA a/nebo jinde.
Související dokumenty
Tabulka 1. Odkazy na dokumenty
Číslo | Odkaz | Titul |
[1] | RM0511 | Sub-GHz MCU na bázi STM32WL30xx/31xx/33xx Arm® |
Začínáme
- Tato část popisuje všechny systémové požadavky pro spuštění STM32CubeWiSE-RadioCodeGenerator.
- Také popisuje postup instalace softwarového balíčku.
Systémové požadavky
Aplikace STM32CubeWiSE-RadioCodeGenerator má následující minimální požadavky:
- PC s procesorem Intel® nebo AMD® s operačním systémem Microsoft® Windows 10
- Alespoň 2 GB paměti RAM
- USB porty
- Adobe Acrobat reader 6.0
Nastavení SW balíčku STM32CubeWiSE-RadioCodeGenerator
Proveďte následující kroky:
- Rozbalte obsah souboru stm32wise-cgwin.zip file do dočasného adresáře.
- Extrahujte a spusťte STM32CubeWiSE-RadioCodeGenerator_Vx.xxexe file a postupujte podle pokynů na obrazovce.
SW balíček STM32CubeWiSE-RadioCodeGenerator files
SW balíček STM32CubeWiSE-RadioCodeGenerator files jsou uspořádány do následujících složek:
- aplikace: obsahuje STM32CubeWiSE-RadioCodeGenerator.exe
- examples: tato složka je uspořádána do následujících podsložek:
- kód: tato složka obsahuje vývojové diagramy napřampSoubor je již exportován jako kód C, připraven k vložení do projektu aplikace
- flowgraphs: tato složka ukládá některé exampméně scénářů autonomních operací sekvenceru MRSUBG
Poznámky k vydání a licence files jsou umístěny v kořenové složce.
Popis softwaru STM32CubeWiSE-RadioCodeGenerator
- Tato část popisuje hlavní funkce aplikace STM32CubeWiSE-RadioCodeGenerator. Chcete-li spustit tento nástroj, klikněte na ikonu STM32CubeWiSE-RadioCodeGenerator.
Po spuštění STM32CubeWiSE-RadioCodeGenerator se zobrazí hlavní okno aplikace. Skládá se z:
- Globální nabídka a panel nástrojů
- Vizuální znázornění vývojového diagramu přetažením
- Sekce konfigurace SeqAction (viditelná pouze v případě, že se SeqAction aktuálně upravuje)
Vytvoření vývojového diagramu
Základy
Vývojové diagramy se vytvářejí ve dvou krocích:
- Přidejte SeqActions do vývojového diagramu. To lze provést pomocí tlačítka „Přidat akci“ na panelu nástrojů, pomocí globální nabídky (Upravit → Přidat akci) nebo pomocí zkratky „Ctrl+A“.
- Připojte SeqActions ke vstupnímu bodu a navzájem nakreslením šipek přechodu akcí.
Podmínky, za kterých k těmto přechodům dochází, jsou definovány později (viz část 3.2.1: Řídicí tok).
Navigace ve vývojovém diagramu, přetahování akcí
Přetažením šachovnicového pozadí vývojového diagramu ukazatelem myši (levé kliknutí), viewport na průtokovém grafu lze upravit. Rolovací kolečko myši lze použít k přiblížení a oddálení. Kliknutím kamkoli na akci (kromě výstupních portů, tlačítka Odstranit a tlačítka Upravit) vyberete akci. Akce lze ve vývojovém diagramu uspořádat přetažením levým tlačítkem myši.
Přidání přechodů akcí
- Jak je znázorněno na obrázku 2, každá akce má dva „výstupní porty“, nazývané NextAction1 (NA1) a NextAction2 (NA2), které lze připojit k SeqActions, které se provedou po dokončení akce. Napřample, NextAction1 by mohla být použita k provedení nějaké akce, pokud byla aktuální akce úspěšná a NextAction2 mohla být spuštěna v případě selhání.
- Chcete-li vytvořit přechod akce, najeďte ukazatelem myši na jeden z výstupních portů, stiskněte levé tlačítko myši a pohybem ukazatele myši přetáhněte šipku přechodu. Přesuňte ukazatel myši nad vstupní port nalevo od některé další SeqAction a uvolněte levé tlačítko myši, aby bylo připojení trvalé. Chcete-li odstranit přechod akce, zopakujte kroky pro vytvoření přechodu akce, ale uvolněte levé tlačítko myši někde nad pozadím šachovnice.
- Pokud je výstup (NextAction1, NextAction2) ponechán nepřipojený, sekvencer se ukončí, pokud je spuštěna tato další akce.
- Ujistěte se, že jste také připojili „Entry Point“ k některému vstupnímu portu SeqAction. Tato SeqAction je první, která se provede, jakmile je sekvencer spuštěn.
Úpravy a mazání akcí
- SeqActions lze upravit kliknutím na tlačítko tužky v levé horní části SeqAction. Lze jej smazat kliknutím na červený křížek vpravo nahoře (viz obrázek 3). Odstraněním SeqAction také odstraníte všechny příchozí a odchozí přechody akcí.
Konfigurace SeqAction
SeqActions lze konfigurovat prostřednictvím konfiguračního rozhraní s kartami, které je přístupné pomocí tlačítka tužky v levé horní části každé akce ve vývojovém diagramu. Toto rozhraní v podstatě konfiguruje obsah tabulky ActionConfiguration RAM pro konkrétní akci, která se skládá jak z možností konfigurace související s řízením toku, tak z obsahu dynamického registru. Obsah dynamického registru lze konfigurovat buď ručně s úplnou kontrolou nad každou hodnotou registru (viz část 3.2.3: Pokročilá konfigurace rádia) nebo prostřednictvím zjednodušeného rozhraní (viz část 3.2.2: Základní konfigurace rádia). Zjednodušené rozhraní by mělo stačit téměř pro všechny případy použití.
Řídit tok
Karta toku řízení (viz obrázek 4) obsahuje některé základní možnosti konfigurace, jako je název akce a interval časového limitu akce. Název akce se nepoužívá pouze pro zobrazení ve vývojovém diagramu, ale je také přenesen do generovaného zdrojového kódu.
- Karta toku řízení (viz obrázek 4) obsahuje některé základní možnosti konfigurace, jako je název akce a interval časového limitu akce. Název akce se nepoužívá pouze pro zobrazení ve vývojovém diagramu, ale také se přenáší do generovaného zdrojového kódu.
- Nejdůležitější je, že karta toku řízení konfiguruje podmínku, na které závisí přechod na NextAction1 / NextAction2, a také interval přechodu a příznaky. Podmínku přechodu lze nakonfigurovat kliknutím na tlačítko označené „…“, čímž se zobrazí dialog pro výběr masky, jak je znázorněno na obrázku 5. Interval přechodu upravil vlastnost NextAction1Interval / NextAction2Interval tabulky RAM. Další informace o významu tohoto intervalu a významu příznaků SleepEn / ForceReload / ForceClear naleznete v referenční příručce STM32WL3x [1].
- Dále lze na tuto záložku přidat krátký popis bloku SeqAction. Tento popis se používá pouze pro účely dokumentace a přenáší se do vygenerovaného zdrojového kódu jako komentář ke zdrojovému kódu.
Základní konfigurace rádia
Kartu základní konfigurace rádia lze rozdělit do tří částí:
- Část nahoře, kde se konfigurují dva nejdůležitější parametry jakékoli akce: příkaz, který se má provést (TX, RX, NOP, SABORT atd.), a případně délka paketu k přenosu.
- Část vlevo, kde se konfigurují skutečné rádiové parametry, jako jsou: nosná frekvence, rychlost přenosu dat, vlastnosti modulace, prahy datové vyrovnávací paměti a časovače.
- Část vpravo, kde lze individuálně povolit přerušení CPU. Pro každé zaškrtnuté přerušení se vygeneruje obsluha přerušení. Tím se v podstatě konfiguruje obsah registru RFSEQ_IRQ_ENABLE.
Význam různých parametrů rádia naleznete v referenční příručce STM32WL3x [1].
Pokročilá konfigurace rádia
- Pokud jsou možnosti konfigurace zobrazené na záložce základní konfigurace rádia (oddíl 3.2.2: Základní konfigurace rádia) nedostatečné, karta pokročilé konfigurace rádia STM32WL3x umožňuje nastavení libovolného obsahu dynamického registru. Karta pokročilé konfigurace se aktivuje zaškrtnutím políčka Advanced Configuration v pravém horním rohu konfiguračního rozhraní s kartami.
- Není možné používat současně základní i pokročilé konfigurace, uživatel si musí vybrat jednu nebo druhou. Vygenerovaný zdrojový kód je ale samozřejmě také možné dodatečně ručně upravit a doplnit případně chybějící možnosti konfigurace.
Globální konfigurační dialog
- Dialog „Globální nastavení projektu“ je přístupný přes tlačítko na panelu nástrojů „Globální nastavení“. Dialog obsahuje jak možnosti konfigurace pro obsah statického registru, tak další nastavení projektu. Všimněte si, že prostřednictvím tohoto dialogu lze konfigurovat pouze malou část možností konfigurace statického registru. Tyto možnosti jsou poskytovány pouze pro urychlení aplikací prototypování aplikací pomocí STM32CubeWiSE-RadioCodeGenerator.
- Obvykle se očekává, že obsah statického registru je nastaven v ručně napsaném zdrojovém kódu aplikace.
- Význam dalších nastavení projektu je vysvětlen v samotném dialogu.
- Může být také poskytnut dodatečný C kód, který je vložen těsně před vytvořením tabulky Global Configuration RAM z obsahu statického registru. Toto pole lze použít k nastavení hodnot statických registrů, které jsou nepřístupné přes poskytnutou masku konfigurace statického registru.
Generování kódu
Vývojový diagram lze převést do úplného zdrojového kódu projektu C stisknutím tlačítka Generate Code na panelu nástrojů. Vygenerovaná složka projektu neobsahuje projekt files pro IAR, Keil® nebo GCC. Tyto files musí být přidáno ručně do projektu STMWL3x.
Toto je vygenerovaná struktura složek projektu:
Složka projektu
- vč
- SequencerFlowgraph.h: záhlaví file pro SequencerFlowgraph.c, statický. Toto neupravujte.
- stm32wl3x_hal_conf.h: Konfigurace STM32WL3x HAL file, statické.
- src
- SequencerFlowgraph.c: definice vývojového diagramu. To je důležité file který používá ovladač sekvenceru k definování tabulek RAM pro globální konfiguraci a konfiguraci akcí. Automaticky vygenerováno, neupravujte.
- main.c: Hlavní projekt file který ukazuje, jak načíst a použít definici vývojového grafu. Statický, upravte jej podle potřeby.
- Chcete-li upravit main.c nebo stm32wl3x_hal_conf.h, v nastavení projektu vyberte chování při přepisu Keep. Tímto způsobem se přepíše pouze SequencerFlowgraph.c.
Jak importovat vygenerovaný kód do CubeMX example
Import projektu generovaného STM32CubeWiSE-RadioCodeGenerator do CubeMX example (MRSUBG_Skeleton), je nutné provést následující kroky:
- Otevřete složku obsahující filegeneruje STM32CubeWiSE-RadioCodeGenerator a zkopíruje složky „Inc“ a „Src“.
- Vložte dvě složky do složky „MRSUBG_Skeleton“ a přepište dvě již existující.
- Otevřete projekt „MRSUBG_Skeleton“ v jednom z následujících IDE:
- EWARM
- MDK-ARM
- STM32CubeIDE
- Do projektu „MRSUBG_Skeleton“ přidejte soubor „SequencerFlowghraph.c“ file:
- U projektu EWARM je cesta k přidání file je následující: MRSUBG_Skeleton\Application\User
- U projektu MDK-ARM je cesta k přidání file je následující: MRSUBG_Skeleton\Application/User
- U projektu STM32CubeIDE cesta k přidání file je stejný:
MRSUBG_Skeleton\Application\User
- U projektu EWARM je cesta k přidání file je následující: MRSUBG_Skeleton\Application\User
- Do projektu MRSUBG_Skeleton přidejte stm32wl3x_hal_uart.c a stm32wl3x_hal_uart_ex.c files na následující cestu: MRSUBG_Skeleton\Drivers\STM32WL3x_HAL_Driver. Cesta je stejná pro všechna IDE. Ti dva files jsou umístěny na Firmware\Drivers\STM32WL3x_HAL_Driver\Src.
- Chcete-li používat funkce COM, stm32wl3x_nucleo_conf.h file, umístěný na Firmware\Projects\NUCLEOWL33CC\ Examples\MRSUBG\MRSUBG_Skeleton\Inc, je třeba upravit nastavení USE_BSP_COM_FEATURE a USE_COM_LOG na 1U:
- Zkopírujte následující kód do „stm32wl3x_it.c“, který se nachází v MRSUBG_Skeleton\Application\User.
Průtokový graf examples
- Čtyři exampSpolu se zdrojovým kódem jsou poskytovány vývojové diagramy souborů. Tyto exampsoubory lze načíst do STM32CubeWiSE-RadioCodeGenerator kliknutím na tlačítko „Načíst“ na panelu nástrojů.
AutoACK_RX
- Demo Auto-ACK ukazuje, jak spolu mohou dvě zařízení STM32WL3x automaticky hovořit s minimálním zásahem CPU, s pomocí hardwaru sekvenceru.
- Tento vývojový diagram implementuje chování (Auto-Transmit-ACK) zařízení A. V zařízení A je sekvencer inicializován ve stavu příjmu (WaitForMessage), ve kterém čeká na příchod zprávy.
- Jakmile přijde platná zpráva, sekvencer automaticky přejde do stavu vysílání (TransmitACK), ve kterém je odeslán ACK paket jako odpověď, bez zásahu CPU. Jakmile je toto dokončeno, sekvencer se resetuje do svého počátečního stavu WaitForMessage.
- Tento vývojový diagram implementuje stejné chování jako MRSUBG_SequencerAutoAck_Rx example z Exampsložka les\MRSUBG softwarového balíku STM32Cube WL3. Pokud na jednom zařízení bliká AutoACK_RX
Na některém zařízení B bliká A a AutoACK_TX, tato dvě zařízení posílají zprávy tam a zpět, jako ve hře ping-pong.
AutoACK_TX
- Demo „Auto-ACK“ ukazuje, jak spolu mohou dvě zařízení STM32WL3x automaticky komunikovat s minimálním zásahem CPU pomocí hardwaru sekvenceru.
- Tento vývojový diagram implementuje chování („Auto-Wait-for-ACK“) zařízení B. V zařízení B je sekvencer inicializován ve stavu vysílání (TransmitMessage), ve kterém vysílá zprávu. Jakmile je přenos dokončen, automaticky přejde do stavu příjmu, kde čeká na potvrzení od zařízení A (WaitForACK). Jakmile přijde platné potvrzení, sekvencer se resetuje do původního stavu TransmitMessage a celý proces začne znovu. V případě, že do 4 sekund není přijato žádné ACK, spustí se timeout a sekvencer se stejně vrátí do stavu TransmitMessage.
- Tento vývojový diagram implementuje stejné chování jako „MRSUBG_SequencerAutoAck_Tx“ example z Exampsložka les\MRSUBG softwarového balíku STM32Cube WL3. Pokud na jednom zařízení bliká AutoACK_RX, A a na jiném zařízení B bliká AutoACK_TX, obě zařízení posílají zprávy tam a zpět, jako ve hře ping-pong.
Poslouchat před hovorem (LBT)
- Tento example je převzato z referenční příručky STM32WL3x [1]. Další podrobnosti o tomto příkladu naleznete v tomto návoduample.
Režim čichání
- Tento example je převzato z referenční příručky STM32WL3x [1]. Další podrobnosti o tomto příkladu naleznete v tomto návoduample.
Historie revizí
Tabulka 2. Historie revizí dokumentu
Datum | Verze | Změny |
21-listopad-2024 | 1 | Počáteční vydání. |
10. února 2025 | 2 | Název zařízení byl aktualizován na rozsah STM32WL3x. |
DŮLEŽITÉ UPOZORNĚNÍ – ČTĚTE POZORNĚ
- STMicroelectronics NV a její dceřiné společnosti (“ST”) si vyhrazují právo provádět změny, opravy, vylepšení, úpravy a vylepšení produktů ST a/nebo tohoto dokumentu kdykoli bez upozornění. Kupující by měli před zadáním objednávky získat nejnovější relevantní informace o produktech ST. Produkty ST jsou prodávány v souladu s prodejními podmínkami ST platnými v době potvrzení objednávky.
- Kupující jsou výhradně odpovědní za výběr, výběr a použití produktů ST a ST nepřebírá žádnou odpovědnost za pomoc s aplikací nebo design produktů kupujících.
- Společnost ST zde neuděluje žádnou výslovnou ani předpokládanou licenci k právu duševního vlastnictví.
- Další prodej produktů ST s ustanoveními odlišnými od informací uvedených v tomto dokumentu ruší jakoukoli záruku poskytnutou společností ST na takový produkt.
- ST a logo ST jsou ochranné známky společnosti ST. Další informace o ochranných známkách ST najdete na www.st.com/trademarks. Všechny ostatní názvy produktů nebo služeb jsou majetkem jejich příslušných vlastníků.
- Informace v tomto dokumentu nahrazují a nahrazují informace dříve uvedené v předchozích verzích tohoto dokumentu.
- © 2025 STMicroelectronics – Všechna práva vyhrazena
FAQ
- Otázka: Jaké jsou minimální systémové požadavky pro STM32CubeWiSE-RadioCodeGenerator?
- A: Minimální systémové požadavky zahrnují alespoň 2 GB RAM, USB porty a Adobe Acrobat reader 6.0.
- Otázka: Jak mohu nastavit softwarový balíček STM32CubeWiSE-RadioCodeGenerator?
- A: Chcete-li nastavit softwarový balíček, extrahujte obsah dodaného zipu file do dočasného adresáře a spustit spustitelný soubor file podle pokynů na obrazovce.
Dokumenty / zdroje
![]() |
STMicroelectronics UM3399 Generátor rádiových kódů STM32Cube WiSE [pdfUživatelská příručka UM3399, UM3399 STM32 Cube WiSE Radio Code Generator, UM3399, STM32, Cube WiSE Radio Code Generator, Radio Code Generator, Code Generator, Generator |