Xerador de código de radio STMicroelectronics UM3399 STM32Cube WiSE
Instrucións de uso do produto
- A aplicación STM32CubeWiSE-RadioCodeGenerator require polo menos 2 Gbytes de RAM, portos USB e Adobe Acrobat Reader 6.0.
- Extrae o contido do ficheiro stm32wise-cgwin.zip file nun directorio temporal.
- Inicie o STM32CubeWiSE-RadioCodeGenerator_Vx.xxexe file e siga as instrucións que aparecen na pantalla.
- O paquete SW STM32CubeWiSE-RadioCodeGenerator files están organizados en cartafoles, incluíndo "app" e "examples'.
- Para construír un diagrama de fluxo en STM32CubeWiSE-RadioCodeGenerator:
- Engade SeqActions ao diagrama de fluxo mediante a barra de ferramentas ou o menú global.
- Conecta SeqActions co punto de entrada e entre si debuxando frechas de transición de accións.
- Navega polo gráfico de fluxo arrastrando accións e engadindo transicións de accións segundo sexa necesario.
Introdución
- Este documento describe o paquete SW STM32CubeWiSE-RadioCodeGenerator (STM32CubeWiSEcg) co xerador de código de secuenciador STM32WL3x MRSUBG.
- STM32CubeWiSE-RadioCodeGenerator é unha aplicación para PC que se usa para construír un diagrama de fluxo que define que accións do transceptor executar en que condición, utilizando o controlador do secuenciador MRSUBG.
- A radio sub-GHz STM32WL3x contén este secuenciador, que é un mecanismo parecido a unha máquina de estado que permite a xestión autónoma das transferencias de RF, sen necesidade de intervención da CPU.
- Se é necesaria a intervención da CPU, pódense definir interrupcións. As accións do transceptor pódense organizar nun gráfico de fluxo. Neste documento, as accións individuais do transceptor denomínanse SeqActions.
- Non obstante, o código fonte non é a mellor representación dos fluxogramas, xa que oculta a súa estrutura lóxica e temporal.
- STM32CubeWiSE-RadioCodeGenerator aborda este problema proporcionando un método gráfico para construír diagramas de fluxo e, a continuación, exportar os diagramas de fluxo xerados como código fonte C para a súa integración nas aplicacións do usuario.
- A definición do diagrama de fluxo almacénase na memoria RAM do microcontrolador en forma de:
- Un conxunto de táboas RAM de ActionConfiguration, ligadas entre si mediante punteiros. Estes punteiros definen as SeqActions, é dicir, o tipo de acción (por exemploample, transmisión, recepción, aborto), así como parámetros e condicións de radio específicos de SeqAction para transmisións de acción.
- Unha táboa RAM de configuración global única. Isto define o punto de entrada do diagrama de fluxo (a primeira SeqAction que se executa), así como algúns valores de bandeira predeterminados e parámetros de radio comúns.
- Os parámetros de radio, que poden configurarse individualmente para cada SeqAction, gárdanse nun dos rexistros dinámicos, cuxos contidos forman parte da táboa RAM de ActionConfiguration. Os parámetros de radio que se fixan durante toda a execución do diagrama de fluxo (a non ser que se modifiquen durante unha interrupción da CPU), almacénanse en rexistros estáticos, cuxos contidos forman parte da táboa RAM de configuración global.
Información xeral
Licenzas
Este documento describe o software que se executa no microcontrolador baseado en STM32WL3x Arm® Cortex ® -M0+.
Nota: Arm é unha marca rexistrada de Arm Limited (ou das súas filiais) nos EUA e/ou noutros lugares.
Documentos relacionados
Táboa 1. Referencias de documentos
Número | Referencia | Título |
[1] | RM 0511 | MCUs sub-GHz baseados en STM32WL30xx/31xx/33xx Arm® |
Comezando
- Esta sección describe todos os requisitos do sistema para executar STM32CubeWiSE-RadioCodeGenerator.
- Tamén detalla o procedemento de instalación do paquete de software.
Requisitos do sistema
A aplicación STM32CubeWiSE-RadioCodeGenerator ten os seguintes requisitos mínimos:
- PC cun procesador Intel® ou AMD® que executa o sistema operativo Microsoft® Windows 10
- Polo menos 2 Gbytes de RAM
- Portos USB
- Adobe Acrobat Reader 6.0
Configuración do paquete STM32CubeWiSE-RadioCodeGenerator SW
Realice os seguintes pasos:
- Extrae o contido do ficheiro stm32wise-cgwin.zip file nun directorio temporal.
- Extrae e inicie o STM32CubeWiSE-RadioCodeGenerator_Vx.xxexe file e siga as instrucións que aparecen na pantalla.
Paquete SW STM32CubeWiSE-RadioCodeGenerator files
O paquete SW STM32CubeWiSE-RadioCodeGenerator files organízanse nos seguintes cartafoles:
- aplicación: contén STM32CubeWiSE-RadioCodeGenerator.exe
- examples: este cartafol está organizado nos seguintes subcartafoles:
- código: este cartafol contén os fluxogramas exampli xa exportado como código C, listo para ser inxectado nun proxecto de aplicación
- fluxogramas: este cartafol almacena algúns exampos escenarios de operacións de secuenciador MRSUBG autónomos
Notas de lanzamento e licenza files están situados no cartafol raíz.
Descrición do software STM32CubeWiSE-RadioCodeGenerator
- Esta sección describe as principais funcións da aplicación STM32CubeWiSE-RadioCodeGenerator. Para executar esta utilidade, faga clic na icona STM32CubeWiSE-RadioCodeGenerator.
Despois de iniciar STM32CubeWiSE-RadioCodeGenerator, aparece a xanela principal da aplicación. Consta de:
- Un menú global e unha barra de ferramentas
- A representación visual de arrastrar e soltar do diagrama de fluxo
- A sección de configuración de SeqAction (só visible se se está editando unha SeqAction)
Construción dun diagrama de fluxo
Fundamentos
Os diagramas de fluxo constrúense en dous pasos:
- Engade SeqActions ao diagrama de fluxo. Isto pódese facer usando o botón "Engadir acción" da barra de ferramentas, usando o menú global (Editar → Engadir acción) ou co atallo "Ctrl+A".
- Conecta SeqActions co punto de entrada e entre si debuxando frechas de transición de accións.
As condicións nas que se producen estas transicións defínense máis adiante (ver Sección 3.2.1: Fluxo de control).
Navegando polo diagrama de fluxo, arrastrando accións
Ao arrastrar o fondo da táboa de dameira do diagrama de fluxo co punteiro do rato (clic esquerdo), o viewpódese axustar o porto do fluxograma. A roda de desprazamento do rato pódese usar para ampliar e diminuír. Facendo clic en calquera lugar dunha acción (excepto nos portos de saída, o botón de eliminación e o botón de edición) para seleccionar unha acción. As accións pódense organizar no diagrama de fluxo arrastrándoas co botón esquerdo do rato.
Engadindo transicións de acción
- Como se mostra na Figura 2, cada acción ten dous "portos de saída", chamados NextAction1 (NA1) e NextAction2 (NA2), que se poden conectar a SeqActions que se executan despois de completar a acción. Por example, NextAction1 podería usarse para executar algunha acción se a acción actual foi exitosa e NextAction2 podería activarse en caso de falla.
- Para crear unha transición de acción, pase o punteiro do rato sobre un dos portos de saída, prema o botón esquerdo do rato e move o punteiro do rato para arrastrar unha frecha de transición. Move o punteiro do rato sobre o porto de entrada á esquerda dalgún outro SeqAction e solta o botón esquerdo do rato para que a conexión sexa permanente. Para eliminar unha transición de acción, só tes que repetir os pasos para crear unha transición de acción, pero solta o botón esquerdo do rato nalgún lugar sobre o fondo do taboleiro.
- Se unha saída (NextAction1, NextAction2) queda desconectada, o secuenciador finaliza se se activa esta seguinte acción.
- Asegúrate de conectar tamén o "Punto de entrada" a algún porto de entrada de SeqAction. Esta SeqAction é a primeira que se executa tan pronto como se activa o secuenciador.
Edición e eliminación de accións
- SeqActions pódese editar facendo clic no botón do lapis na parte superior esquerda de SeqAction. Pódese eliminar facendo clic na cruz vermella na parte superior dereita (ver Figura 3). Ao eliminar unha SeqAction tamén se eliminan as transicións de accións entrantes e saíntes.
Configuración de SeqAction
As SeqActions pódense configurar mediante unha interface de configuración con pestanas accesible a través do botón do lapis na parte superior esquerda de cada acción no diagrama de fluxo. Esta interface configura esencialmente o contido da táboa RAM ActionConfiguration para a acción en particular, que consta tanto de opcións de configuración relacionadas co fluxo de control como do contido do rexistro dinámico. O contido do rexistro dinámico pódese configurar manualmente cun control total sobre cada valor do rexistro (ver Sección 3.2.3: Configuración avanzada de radio) ou mediante unha interface simplificada (ver Sección 3.2.2: Configuración básica da radio). A interface simplificada debería ser suficiente para case todos os casos de uso.
Control de fluxo
A pestana de fluxo de control (consulte a Figura 4) contén algunhas opcións de configuración básicas, como o nome da acción e o intervalo de tempo de espera da acción. O nome da acción non só se usa para mostrar no diagrama de fluxo senón que tamén se traslada ao código fonte xerado.
- A pestana de fluxo de control (consulte a Figura 4) contén algunhas opcións de configuración básicas, como o nome da acción e o intervalo de tempo de espera da acción. O nome da acción non só se usa para mostrar no diagrama de fluxo, senón que tamén se traslada ao código fonte xerado.
- O máis importante é que a pestana de fluxo de control configura a condición da que depende unha transición a NextAction1 / NextAction2, así como o intervalo de transición e as marcas. Pódese configurar a condición de transición facendo clic no botón denominado "...", o que fai que apareza o diálogo de selección de máscara que se mostra na Figura 5. O intervalo de transición modificou a propiedade NextAction1Interval / NextAction2Interval da táboa RAM. Consulte o manual de referencia STM32WL3x [1] para obter máis información sobre o significado deste intervalo e o significado das bandeiras SleepEn / ForceReload / ForceClear.
- Ademais, nesta pestana pódese engadir unha breve descrición do bloque SeqAction. Esta descrición só se utiliza para fins de documentación e transfórmase ao código fonte xerado como comentario do código fonte.
Configuración básica de radio
A pestana de configuración básica de radio pódese subdividir en tres partes:
- Un apartado na parte superior onde se configuran dous dos parámetros máis importantes de calquera acción: o comando a executar (TX, RX, NOP, SABORT, etc.) e, se é o caso, a lonxitude do paquete a transferir.
- Unha sección á esquerda onde se configuran os parámetros reais da radio como: frecuencia portadora, taxa de datos, propiedades de modulación, limiares de memoria intermedia de datos e temporizadores.
- Pódese activar individualmente unha sección á dereita onde as interrupcións da CPU. Xérase un controlador de interrupcións para cada unha das interrupcións marcadas. Isto basicamente configura o contido do rexistro RFSEQ_IRQ_ENABLE.
Consulte o manual de referencia STM32WL3x [1] para coñecer o significado dos distintos parámetros de radio.
Configuración avanzada de radio
- Se as opcións de configuración expostas a través da pestana de configuración básica de radio (Sección 3.2.2: Configuración básica de radio) son insuficientes, a pestana de configuración de radio avanzada STM32WL3x permite a configuración de contidos de rexistro dinámicos arbitrarios. A pestana de configuración avanzada habilitase marcando a caixa de verificación Configuración avanzada na parte superior dereita da interface de configuración con pestanas.
- Non é posible utilizar tanto as configuracións básicas como as avanzadas ao mesmo tempo, o usuario debe seleccionar unha ou outra. Non obstante, por suposto tamén é posible editar manualmente o código fonte xerado despois e engadir opcións de configuración que poidan faltar.
Diálogo de configuración global
- Pódese acceder ao diálogo "Configuración global do proxecto" a través do botón da barra de ferramentas "Configuración global". O diálogo contén tanto opcións de configuración para o contido do rexistro estático como opcións adicionais do proxecto. Teña en conta que só unha pequena fracción das opcións de configuración de rexistro estático se pode configurar a través deste diálogo. Estas opcións só se ofrecen para acelerar as aplicacións de creación de prototipos de aplicacións con STM32CubeWiSE-RadioCodeGenerator.
- Normalmente espérase que o contido do rexistro estático estea configurado no código fonte escrito manualmente da aplicación.
- O significado das outras configuracións do proxecto explícase no propio diálogo.
- Tamén se pode proporcionar código C adicional que se insire xusto antes de crear a táboa RAM de configuración global a partir do contido do rexistro estático. Este campo pode usarse para configurar valores de rexistro estático que son inaccesibles a través da máscara de configuración de rexistro estático proporcionada.
Xeración de código
O fluxograma pódese traducir nun código fonte C completo do proxecto premendo o botón Xerar código na barra de ferramentas. O cartafol do proxecto xerado non contén proxecto files para IAR, Keil® ou GCC. Estes files deben engadirse manualmente ao proxecto STMWL3x.
Esta é a estrutura do cartafol do proxecto xerada:
Cartafol do proxecto
- inc
- SequencerFlowgraph.h: cabeceira file para SequencerFlowgraph.c, estático. Non edites isto.
- stm32wl3x_hal_conf.h: configuración STM32WL3x HAL file, estático.
- src
- SequencerFlowgraph.c: definición do diagrama de fluxo. Este é o importante file que usa o controlador do secuenciador para definir as táboas RAM de configuración global e de configuración de acción. Xerado automaticamente, non editar.
- main.c: Proxecto principal file que demostra como cargar e aplicar a definición do gráfico de fluxo. Estático, modifique isto segundo sexa necesario.
- Para editar main.c ou stm32wl3x_hal_conf.h, seleccione o comportamento de sobrescribir Manter na configuración do proxecto. Deste xeito, só se sobrescribe SequencerFlowgraph.c.
Como importar o código xerado nun CubeMX example
Para importar un proxecto xerado por STM32CubeWiSE-RadioCodeGenerator nun CubeMX example (MRSUBG_Skeleton), é necesario seguir os seguintes pasos:
- Abra o cartafol que contén o files xerados por STM32CubeWiSE-RadioCodeGenerator e copie os cartafoles "Inc" e "Src".
- Pega os dous cartafoles no cartafol "MRSUBG_Skeleton" sobrescribindo os dous xa presentes.
- Abre o proxecto "MRSUBG_Skeleton" nun dos seguintes IDE:
- EWARM
- MDK-ARM
- STM32CubeIDE
- Dentro do proxecto "MRSUBG_Skeleton", engade o "SequencerFlowghraph.c" file:
- Para un proxecto EWARM, o camiño para engadir o file é o seguinte: MRSUBG_Skeleton\Application\User
- Para un proxecto MDK-ARM, o camiño para engadir o file é o seguinte: MRSUBG_Skeleton\Application/User
- Para un proxecto STM32CubeIDE, o camiño para engadir o file é o mesmo:
MRSUBG_Skeleton\Aplicación\Usuario
- Para un proxecto EWARM, o camiño para engadir o file é o seguinte: MRSUBG_Skeleton\Application\User
- Dentro do proxecto MRSUBG_Skeleton, engade stm32wl3x_hal_uart.c e stm32wl3x_hal_uart_ex.c files ao seguinte camiño: MRSUBG_Skeleton\Drivers\STM32WL3x_HAL_Driver. O camiño é o mesmo para todos os IDE. Os dous files están localizados en Firmware\Drivers\STM32WL3x_HAL_Driver\Src.
- Para usar as funcións COM, stm32wl3x_nucleo_conf.h file, situado en Firmware\Projects\NUCLEOWL33CC\ Examples\MRSUBG\MRSUBG_Skeleton\Inc, debe modificarse a configuración de USE_BSP_COM_FEATURE e USE_COM_LOG en 1U:
- Copia o seguinte código en "stm32wl3x_it.c", situado en MRSUBG_Skeleton\Application\User.
Fluxograma examples
- Catro exampOs diagramas de fluxo ofrécense xunto co código fonte. Estes exampOs ficheiros poden cargarse en STM32CubeWiSE-RadioCodeGenerator facendo clic no botón "Cargar" na barra de ferramentas.
AutoACK_RX
- A demostración de Auto-ACK ilustra como dous dispositivos STM32WL3x poden falarse automaticamente entre si cunha intervención mínima da CPU, coa axuda do hardware do secuenciador.
- Este fluxograma implementa o comportamento (Auto-Transmit-ACK) do dispositivo A. No dispositivo A, o secuenciador iníciase nun estado de recepción (WaitForMessage), no que espera a que chegue unha mensaxe.
- Unha vez que chega unha mensaxe válida, o secuenciador pasa automaticamente a un estado de transmisión (TransmitACK), no que se envía un paquete ACK como resposta, sen intervención da CPU. Unha vez rematado, o secuenciador restablece o seu estado WaitForMessage inicial.
- Este fluxograma implementa o mesmo comportamento que o MRSUBG_SequencerAutoAck_Rx, por exemploample do Examples\MRSUBG do paquete de software STM32Cube WL3. Se AutoACK_RX aparece nun dispositivo
A, e AutoACK_TX parpadea nalgún dispositivo, B, os dous dispositivos envían mensaxes de ida e volta, como nun xogo de ping-pong.
AutoACK_TX
- A demostración "Auto-ACK" ilustra como dous dispositivos STM32WL3x poden falar automaticamente entre si cunha intervención mínima da CPU coa axuda do hardware do secuenciador.
- Este fluxograma implementa o comportamento ("Auto-Wait-for-ACK") do dispositivo B. No dispositivo B, o secuenciador iníciase nun estado de transmisión (TransmitMessage), no que transmite unha mensaxe. Unha vez finalizada a transmisión, pasa automaticamente a un estado de recepción onde espera un acuse de recibo do dispositivo A (WaitForACK). Unha vez que chega un acuse de recibo válido, o secuenciador restablece ao seu estado inicial de TransmitMessage e todo o proceso comeza de novo. No caso de que non se reciba ningún ACK dentro de 4 segundos, activarase un tempo de espera e o secuenciador volve ao estado TransmitMessage de todos os xeitos.
- Este fluxograma implementa o mesmo comportamento que o "MRSUBG_SequencerAutoAck_Tx" example do Examples\MRSUBG do paquete de software STM32Cube WL3. Se AutoACK_RX aparece nun dispositivo, A e AutoACK_TX nalgún outro dispositivo, B, os dous dispositivos envían mensaxes de ida e volta, como nun xogo de ping-pong.
Escoitar antes de falar (LBT)
- Este example está tomado do manual de referencia STM32WL3x [1]. Consulte ese manual para obter máis detalles deste example.
Modo sniff
- Este example está tomado do manual de referencia STM32WL3x [1]. Consulte ese manual para obter máis detalles deste example.
Historial de revisións
Táboa 2. Historial de revisións de documentos
Data | Versión | Cambios |
21-novembro-2024 | 1 | Lanzamento inicial. |
10-Feb-2025 | 2 | Nome do dispositivo actualizado para o ámbito STM32WL3x. |
AVISO IMPORTANTE - LEA ATENTAMENTE
- STMicroelectronics NV e as súas subsidiarias (“ST”) resérvanse o dereito de realizar cambios, correccións, melloras, modificacións e melloras nos produtos ST e/ou neste documento en calquera momento sen previo aviso. Os compradores deben obter a información relevante máis recente sobre produtos ST antes de facer pedidos. Os produtos ST véndense de acordo cos termos e condicións de venda de ST existentes no momento do recoñecemento da orde.
- Os compradores son os únicos responsables da elección, selección e uso dos produtos ST e ST non asume ningunha responsabilidade pola asistencia á aplicación ou o deseño dos produtos dos compradores.
- ST non concede ningunha licenza, expresa ou implícita, a ningún dereito de propiedade intelectual.
- A revenda de produtos ST con disposicións diferentes da información aquí establecida anulará calquera garantía concedida por ST para tal produto.
- ST e o logotipo de ST son marcas comerciais de ST. Para obter información adicional sobre as marcas comerciais ST, consulte www.st.com/trademarks. Todos os outros nomes de produtos ou servizos son propiedade dos seus respectivos propietarios.
- A información deste documento substitúe e substitúe a información proporcionada anteriormente en calquera versión anterior deste documento.
- © 2025 STMicroelectronics – Todos os dereitos reservados
FAQ
- P: Cales son os requisitos mínimos do sistema para STM32CubeWiSE-RadioCodeGenerator?
- A: Os requisitos mínimos do sistema inclúen polo menos 2 Gbytes de RAM, portos USB e Adobe Acrobat Reader 6.0.
- P: Como podo configurar o paquete de software STM32CubeWiSE-RadioCodeGenerator?
- A: Para configurar o paquete de software, extrae o contido do zip proporcionado file nun directorio temporal e inicie o executable file seguindo as instrucións en pantalla.
Documentos/Recursos
![]() |
Xerador de código de radio STMicroelectronics UM3399 STM32Cube WiSE [pdfManual do usuario UM3399, UM3399 STM32 Cube WiSE Radio Code Generator, UM3399, STM32, Cube WiSE Radio Code Generator, Radio Code Generator, Code Generator, Generator |