STMicroelectronics UM3399 STM32Cube WiSE generator de coduri radio
Instrucțiuni de utilizare a produsului
- Aplicația STM32CubeWiSE-RadioCodeGenerator necesită cel puțin 2 Gbytes de RAM, porturi USB și Adobe Acrobat reader 6.0.
- Extrageți conținutul stm32wise-cgwin.zip file într-un director temporar.
- Lansați STM32CubeWiSE-RadioCodeGenerator_Vx.xxexe file și urmați instrucțiunile de pe ecran.
- Pachetul STM32CubeWiSE-RadioCodeGenerator SW fileE-urile sunt organizate în foldere, inclusiv „aplicație” și „examples'.
- Pentru a construi un flux în STM32CubeWiSE-RadioCodeGenerator:
- Adăugați SeqActions la diagrama de flux folosind bara de instrumente sau meniul global.
- Conectați SeqActions la punctul de intrare și unul la celălalt desenând săgeți de tranziție a acțiunii.
- Navigați prin graficul de flux trăgând acțiuni și adăugând tranziții de acțiune după cum este necesar.
Introducere
- Acest document descrie pachetul SW STM32CubeWiSE-RadioCodeGenerator (STM32CubeWiSEcg) cu generatorul de coduri de secvențiere STM32WL3x MRSUBG.
- STM32CubeWiSE-RadioCodeGenerator este o aplicație pentru PC care este utilizată pentru a construi un flux care definește acțiunile transceiver-ului care trebuie executate în ce condiții, folosind driverul de secvențiere MRSUBG.
- Radioul STM32WL3x Sub-GHz conține acest secvențior, care este un mecanism asemănător mașinii de stat, care permite gestionarea autonomă a transferurilor RF, fără a fi nevoie de intervenția CPU.
- Dacă este necesară intervenția CPU, pot fi definite întreruperi. Acțiunile transceiverului pot fi aranjate într-un grafic de flux. În acest document, acțiunile individuale ale transceiver-ului sunt denumite SeqActions.
- Cu toate acestea, codul sursă nu este cea mai bună reprezentare pentru fluxuri, deoarece ascunde structura lor logică și temporală.
- STM32CubeWiSE-RadioCodeGenerator abordează această problemă oferind o metodă grafică pentru a construi diagrame de flux și apoi exportând diagramele de flux generate ca cod sursă C pentru integrare în aplicațiile utilizator.
- Definiția graficului de flux este stocată în memoria RAM al microcontrolerului sub forma:
- Un set de tabele RAM ActionConfiguration, legate între ele folosind pointeri. Acești indicatori definesc SeqActions, adică tipul de acțiune (de example, transmisie, recepție, anulare), precum și parametrii radio specifici SeqAction și condițiile pentru transmisiile de acțiuni.
- Un tabel RAM unic GlobalConfiguration. Aceasta definește punctul de intrare al diagramei de flux (prima SeqAction care se execută), precum și unele valori implicite de flag și parametri radio comuni.
- Parametrii radio, care pot fi configurați individual pentru fiecare SeqAction, sunt stocați într-unul dintre registrele dinamice, al căror conținut face parte din tabelul ActionConfiguration RAM. Parametrii radio care sunt fixați pe întreaga execuție a fluxului (cu excepția cazului în care sunt modificați în timpul unei întreruperi a CPU), sunt stocați în registre statice, al căror conținut face parte din tabelul RAM de configurare globală.
Informații generale
Licențiere
Acest document descrie software-ul care rulează pe microcontrolerul bazat pe STM32WL3x Arm® Cortex® -M0+.
Nota: Arm este o marcă înregistrată a Arm Limited (sau a filialelor sale) în SUA și / sau în alte părți.
Documente aferente
Tabelul 1. Referințe documente
Număr | Referinţă | Titlu |
[1] | RM0511 | MCU-uri sub-GHz bazate pe STM32WL30xx/31xx/33xx Arm® |
Noțiuni de bază
- Această secțiune descrie toate cerințele de sistem pentru a rula STM32CubeWiSE-RadioCodeGenerator.
- De asemenea, detaliază procedura de instalare a pachetului software.
Cerințe de sistem
Aplicația STM32CubeWiSE-RadioCodeGenerator are următoarele cerințe minime:
- PC cu un procesor Intel® sau AMD® care rulează sistemul de operare Microsoft® Windows 10
- Cel puțin 2 Gbytes de RAM
- porturi USB
- Adobe Acrobat Reader 6.0
Configurarea pachetului STM32CubeWiSE-RadioCodeGenerator SW
Efectuați următorii pași:
- Extrageți conținutul stm32wise-cgwin.zip file într-un director temporar.
- Extrageți și lansați STM32CubeWiSE-RadioCodeGenerator_Vx.xxexe file și urmați instrucțiunile de pe ecran.
Pachetul SW STM32CubeWiSE-RadioCodeGenerator files
Pachetul STM32CubeWiSE-RadioCodeGenerator SW filesunt organizate în următoarele foldere:
- aplicație: conține STM32CubeWiSE-RadioCodeGenerator.exe
- exampfișiere: acest folder este organizat în următoarele subdosare:
- cod: acest folder conține diagramele de flux exampfișierul deja exportat ca cod C, gata pentru a fi injectat într-un proiect de aplicație
- diagrame de flux: acest folder stochează unele exampscenariile de operații autonome de secvențiere MRSUBG
Note de lansare și licență files se află în folderul rădăcină.
Descrierea software-ului STM32CubeWiSE-RadioCodeGenerator
- Această secțiune descrie principalele funcții ale aplicației STM32CubeWiSE-RadioCodeGenerator. Pentru a rula acest utilitar, faceți clic pe pictograma STM32CubeWiSE-RadioCodeGenerator.
După lansarea STM32CubeWiSE-RadioCodeGenerator, apare fereastra principală a aplicației. Se compune din:
- Un meniu global și o bară de instrumente
- Reprezentarea vizuală prin glisare și plasare a fluxului
- Secțiunea de configurare SeqAction (vizibilă numai dacă o SeqAction este în curs de editare)
Construirea unui diagramă de flux
Bazele
Graficele de flux sunt construite în doi pași:
- Adăugați SeqActions la diagrama de flux. Acest lucru se poate face folosind butonul „Adăugați acțiune” din bara de instrumente, folosind meniul global (Editare → Adăugare acțiune) sau cu comanda rapidă „Ctrl+A”.
- Conectați SeqActions la punctul de intrare și unul la celălalt desenând săgeți de tranziție a acțiunii.
Condițiile în care apar aceste tranziții sunt definite mai târziu (vezi Secțiunea 3.2.1: Flux de control).
Navigarea în diagrama de flux, tragerea acțiunilor
Tragând fundalul tablei de șah al diagramei de flux cu indicatorul mouse-ului (clic stânga), viewportul de pe diagrama de flux poate fi reglat. Rotița de defilare a mouse-ului poate fi folosită pentru a mări și micșora. Făcând clic oriunde pe o acțiune (cu excepția porturilor de ieșire, a butonului de ștergere și a butonului de editare) pentru a selecta o acțiune. Acțiunile pot fi aranjate în fluxul trăgându-le cu butonul stâng al mouse-ului.
Adăugarea de tranziții de acțiune
- După cum se arată în Figura 2, fiecare acțiune are două „porturi de ieșire”, numite NextAction1 (NA1) și NextAction2 (NA2), care pot fi conectate la SeqActions care sunt executate după ce acțiunea a fost finalizată. De example, NextAction1 ar putea fi folosit pentru a executa o acțiune dacă acțiunea curentă a avut succes și NextAction2 ar putea fi declanșat în caz de eșec.
- Pentru a crea o tranziție de acțiune, plasați cursorul mouse-ului peste unul dintre porturile de ieșire, apăsați butonul stâng al mouse-ului și mutați indicatorul mouse-ului pentru a trage o săgeată de tranziție. Mutați cursorul mouse-ului peste portul de intrare din stânga unei alte SeqAction și eliberați butonul stâng al mouse-ului pentru a face conexiunea permanentă. Pentru a elimina o tranziție de acțiune, repetați pașii pentru crearea unei tranziții de acțiune, dar eliberați butonul stâng al mouse-ului undeva peste fundalul tablei de șah.
- Dacă o ieșire (NextAction1, NextAction2) este lăsată neconectată, secvențatorul se termină dacă această acțiune următoare este declanșată.
- Asigurați-vă că conectați și „Punctul de intrare” la un port de intrare al SeqAction. Această SeqAction este prima care se execută imediat ce sequencerul este declanșat.
Acțiuni de editare și ștergere
- SeqActions pot fi editate făcând clic pe butonul creion din partea stângă sus a SeqAction. Poate fi șters făcând clic pe crucea roșie din dreapta sus (vezi Figura 3). Ștergerea unei SeqAction elimină, de asemenea, orice tranziție de acțiune de intrare și de ieșire.
Configurare SeqAction
SeqActions pot fi configurate printr-o interfață de configurare cu file, accesibilă prin butonul creion din partea stângă sus a fiecărei acțiuni din diagrama de flux. Această interfață configurează în esență conținutul tabelului RAM ActionConfiguration pentru acțiunea particulară, constând atât din opțiunile de configurare legate de fluxul de control, cât și din conținutul registrului dinamic. Conținutul registrului dinamic poate fi configurat fie manual, cu control complet asupra fiecărei valori a registrului (vezi Secțiunea 3.2.3: Configurare radio avansată) sau printr-o interfață simplificată (vezi Secțiunea 3.2.2: Configurare radio de bază). Interfața simplificată ar trebui să fie suficientă pentru aproape toate cazurile de utilizare.
Controlul fluxului
Fila flux de control (vezi Figura 4) conține câteva opțiuni de configurare de bază, cum ar fi numele acțiunii și intervalul de expirare a acțiunii. Numele acțiunii nu este folosit doar pentru afișare în diagrama de flux, ci este și transferat în codul sursă generat.
- Fila flux de control (vezi Figura 4) conține câteva opțiuni de configurare de bază, cum ar fi numele acțiunii și intervalul de expirare a acțiunii. Numele acțiunii nu este folosit doar pentru afișare în flux, ci și transferat în codul sursă generat.
- Cel mai important, fila flux de control configurează condiția de care depinde o tranziție la NextAction1 / NextAction2, precum și intervalul de tranziție și semnalizatoarele. Condiția de tranziție poate fi configurată făcând clic pe butonul etichetat „…”, ceea ce face să apară dialogul de selectare a măștii prezentat în Figura 5. Intervalul de tranziție a modificat proprietatea NextAction1Interval / NextAction2Interval a tabelului RAM. Consultați manualul de referință STM32WL3x [1] pentru mai multe informații despre semnificația acestui interval și semnificația semnalizatoarelor SleepEn / ForceReload / ForceClear.
- Mai mult, o scurtă descriere a blocului SeqAction poate fi adăugată în această filă. Această descriere este utilizată numai în scopuri de documentare și este transmisă la codul sursă generat ca comentariu la codul sursă.
Configurație radio de bază
Fila de configurare radio de bază poate fi subdivizată în trei părți:
- O secțiune în partea de sus în care sunt configurați doi dintre cei mai importanți parametri ai oricărei acțiuni: comanda de executat (TX, RX, NOP, SABORT și așa mai departe) și, dacă este cazul, lungimea pachetului de transferat.
- O secțiune din stânga în care sunt configurați parametrii radio actuali, cum ar fi: frecvența purtătoarei, rata de date, proprietățile modulației, pragurile buffer-ului de date și temporizatoarele.
- O secțiune din dreapta unde întreruperile CPU poate fi activată individual. Un handler de întreruperi este generat pentru fiecare dintre întreruperile bifate. Aceasta configurează practic conținutul registrului RFSEQ_IRQ_ENABLE.
Consultați manualul de referință STM32WL3x [1] pentru semnificația diferiților parametri radio.
Configurație radio avansată
- Dacă opțiunile de configurare expuse prin fila de configurare radio de bază (Secțiunea 3.2.2: Configurare radio de bază) sunt insuficiente, fila de configurare radio avansată STM32WL3x permite setarea conținutului registrului dinamic arbitrar. Fila de configurare avansată este activată bifând caseta de selectare Configurare avansată din dreapta sus a interfeței de configurare cu file.
- Nu este posibil să se utilizeze atât configurațiile de bază, cât și cele avansate în același timp, utilizatorul trebuie să selecteze una sau alta. Cu toate acestea, este, desigur, și posibil să editați manual codul sursă generat ulterior și să adăugați opțiuni de configurare potențial lipsă.
Dialog de configurare globală
- Dialogul „Setări globale de proiect” poate fi accesat prin butonul din bara de instrumente „Setări globale”. Dialogul conține atât opțiuni de configurare pentru conținutul registrului static, cât și setări suplimentare ale proiectului. Rețineți că doar o mică parte din opțiunile de configurare a registrului static poate fi configurată prin acest dialog. Aceste opțiuni sunt furnizate doar pentru a accelera aplicațiile de prototipare a aplicațiilor cu STM32CubeWiSE-RadioCodeGenerator.
- De obicei, este de așteptat ca conținutul registrului static să fie configurat în codul sursă scris manual al aplicației.
- Semnificația celorlalte setări ale proiectului este explicată în dialogul în sine.
- Poate fi furnizat și codul C suplimentar care este inserat chiar înainte de a crea tabelul RAM de configurare globală din conținutul registrului static. Acest câmp poate fi utilizat pentru a seta valori de registru static care sunt inaccesibile prin masca de configurare a registrului static furnizată.
Generarea codului
Diagrama de flux poate fi tradus într-un cod sursă complet al proiectului C prin apăsarea butonului Generare cod din bara de instrumente. Dosarul de proiect generat nu conține proiect files pentru IAR, Keil® sau GCC. Aceste filetrebuie adăugate manual la proiectul STMWL3x.
Aceasta este structura folderului de proiect generată:
Dosarul proiectului
- inc
- SequencerFlowgraph.h: antet file pentru SequencerFlowgraph.c, static. Nu editați acest lucru.
- stm32wl3x_hal_conf.h: configurație STM32WL3x HAL file, static.
- src
- SequencerFlowgraph.c: definiția fluxului. Acesta este important file care utilizează driverul de secvențiere pentru a defini tabelele RAM de configurare globală și de configurare a acțiunii. Generat automat, nu editați.
- main.c: Principalul proiect file care demonstrează cum să încărcați și să aplicați definiția graficului de flux. Static, modificați-l după cum este necesar.
- Pentru a edita main.c sau stm32wl3x_hal_conf.h, selectați comportamentul de suprascriere Păstrați în setările proiectului. În acest fel, numai SequencerFlowgraph.c este suprascris.
Cum se importă codul generat într-un CubeMX example
Pentru a importa un proiect generat de STM32CubeWiSE-RadioCodeGenerator într-un CubeMX examp(MRSUBG_Skeleton), este necesar să urmați următorii pași:
- Deschideți folderul care conține filesunt generate de STM32CubeWiSE-RadioCodeGenerator și copiați folderele „Inc” și „Src”.
- Lipiți cele două foldere în folderul „MRSUBG_Skeleton” suprascriind pe cele două deja prezente.
- Deschideți proiectul „MRSUBG_Skeleton” într-unul dintre următoarele IDE-uri:
- EWARM
- MDK-ARM
- STM32CubeIDE
- În cadrul proiectului „MRSUBG_Skeleton”, adăugați „SequencerFlowghraph.c” file:
- Pentru un proiect EWARM, calea pentru adăugarea file este următorul: MRSUBG_Skeleton\Application\User
- Pentru un proiect MDK-ARM, calea pentru adăugarea file este următorul: MRSUBG_Skeleton\Application/User
- Pentru un proiect STM32CubeIDE, calea pentru adăugarea file este la fel:
MRSUBG_Skeleton\Aplicație\Utilizator
- Pentru un proiect EWARM, calea pentru adăugarea file este următorul: MRSUBG_Skeleton\Application\User
- În cadrul proiectului MRSUBG_Skeleton, adăugați stm32wl3x_hal_uart.c și stm32wl3x_hal_uart_ex.c files la următoarea cale: MRSUBG_Skeleton\Drivers\STM32WL3x_HAL_Driver. Calea este aceeași pentru toate IDE-urile. Cei doi filese află pe Firmware\Drivers\STM32WL3x_HAL_Driver\Src.
- Pentru a utiliza funcțiile COM, stm32wl3x_nucleo_conf.h file, situat pe Firmware\Projects\NUCLEOWL33CC\ Examples\MRSUBG\MRSUBG_Skeleton\Inc, trebuie modificate setările USE_BSP_COM_FEATURE și USE_COM_LOG la 1U:
- Copiați următorul cod în „stm32wl3x_it.c”, situat în MRSUBG_Skeleton\Application\User.
Graficul de flux examples
- Patru exampDiagramele de flux sunt furnizate alături de codul sursă. Aceste exampfișierele pot fi încărcate în STM32CubeWiSE-RadioCodeGenerator făcând clic pe butonul „Încărcare” din bara de instrumente.
AutoACK_RX
- Demo-ul Auto-ACK ilustrează modul în care două dispozitive STM32WL3x pot vorbi între ele automat, cu o intervenție minimă a CPU, cu ajutorul hardware-ului secvențatorului.
- Acest flowgraph implementează comportamentul (Auto-Transmit-ACK) al dispozitivului A. În dispozitivul A, secvențatorul este inițializat într-o stare de recepție (WaitForMessage), în care așteaptă sosirea unui mesaj.
- Odată ce sosește un mesaj valid, secvențiatorul trece automat într-o stare de transmisie (TransmitACK), în care un pachet ACK este trimis ca răspuns, fără intervenția CPU. Odată ce acest lucru este terminat, secvențatorul este resetat în starea inițială WaitForMessage.
- Acest flowgraph implementează același comportament ca și MRSUBG_SequencerAutoAck_Rx example din Exampfolderul les\MRSUBG al pachetului software STM32Cube WL3. Dacă AutoACK_RX este intermitent pe un dispozitiv
A, iar AutoACK_TX este flash pe un dispozitiv, B, cele două dispozitive trimit mesaje înainte și înapoi, ca într-un joc de ping-pong.
AutoACK_TX
- Demo-ul „Auto-ACK” ilustrează modul în care două dispozitive STM32WL3x pot vorbi automat între ele, cu o intervenție minimă a CPU, cu ajutorul hardware-ului secvențatorului.
- Acest flowgraph implementează comportamentul („Auto-Wait-for-ACK”) al dispozitivului B. În dispozitivul B, secvențatorul este inițializat într-o stare de transmisie (TransmitMessage), în care transmite un mesaj. Odată ce transmisia este terminată, trece automat într-o stare de recepție în care așteaptă o confirmare de la dispozitivul A (WaitForACK). Odată ce sosește o confirmare validă, secvențiatorul este resetat în starea sa inițială TransmitMessage și întregul proces începe din nou. În cazul în care nu se primește niciun ACK în 4 secunde, se declanșează un timeout și sechencerul revine oricum la starea TransmitMessage.
- Acest flowgraph implementează același comportament ca și „MRSUBG_SequencerAutoAck_Tx” example din Exampfolderul les\MRSUBG al pachetului software STM32Cube WL3. Dacă AutoACK_RX este flash pe un dispozitiv, A și AutoACK_TX este flash pe alt dispozitiv, B, cele două dispozitive trimit mesaje înainte și înapoi, ca într-un joc de ping-pong.
Ascultă înainte de a vorbi (LBT)
- Acest exampfișierul este preluat din manualul de referință STM32WL3x [1]. Consultați acel manual pentru mai multe detalii despre acest example.
Modul sniff
- Acest exampfișierul este preluat din manualul de referință STM32WL3x [1]. Consultați acel manual pentru mai multe detalii despre acest example.
Istoricul reviziilor
Tabelul 2. Istoricul revizuirilor documentului
Data | Versiune | Schimbări |
21-Nov-2024 | 1 | Lansare inițială. |
10-feb-2025 | 2 | Numele dispozitivului a fost actualizat pentru domeniul STM32WL3x. |
NOTIFICARE IMPORTANT – CITIȚI CU ATENTIE
- STMicroelectronics NV și filialele sale („ST”) își rezervă dreptul de a face modificări, corecții, îmbunătățiri, modificări și îmbunătățiri produselor ST și/sau acestui document în orice moment, fără notificare. Cumpărătorii trebuie să obțină cele mai recente informații relevante despre produsele ST înainte de a plasa comenzi. Produsele ST sunt vândute în conformitate cu termenii și condițiile de vânzare ale ST în vigoare la momentul confirmării comenzii.
- Cumpărătorii sunt singurii responsabili pentru alegerea, selecția și utilizarea produselor ST, iar ST nu își asumă nicio responsabilitate pentru asistența la aplicare sau proiectarea produselor cumpărătorilor.
- Nicio licență, expresă sau implicită, pentru niciun drept de proprietate intelectuală nu este acordată de către ST prin prezenta.
- Revânzarea produselor ST cu prevederi diferite de informațiile prezentate aici va anula orice garanție acordată de ST pentru un astfel de produs.
- ST și sigla ST sunt mărci comerciale ale ST. Pentru informații suplimentare despre mărcile comerciale ST, consultați www.st.com/trademarks. Toate celelalte nume de produse sau servicii sunt proprietatea proprietarilor respectivi.
- Informațiile din acest document înlocuiesc și înlocuiesc informațiile furnizate anterior în orice versiuni anterioare ale acestui document.
- © 2025 STMicroelectronics – Toate drepturile rezervate
FAQ
- Î: Care sunt cerințele minime de sistem pentru STM32CubeWiSE-RadioCodeGenerator?
- A: Cerințele minime de sistem includ cel puțin 2 Gbytes de RAM, porturi USB și Adobe Acrobat reader 6.0.
- Î: Cum pot configura pachetul software STM32CubeWiSE-RadioCodeGenerator?
- A: Pentru a configura pachetul software, extrageți conținutul zip-ului furnizat file într-un director temporar și lansați executabilul file urmând instrucțiunile de pe ecran.
Documente/Resurse
![]() |
STMicroelectronics UM3399 STM32Cube WiSE generator de coduri radio [pdfManual de utilizare UM3399, UM3399 STM32 Cube WiSE Radio Code Generator, UM3399, STM32, Cube WiSE Radio Code Generator, Radio Code Generator, Code Generator, Generator |