Gerador de código de rádio STMicroelectronics UM3399 STM32Cube WiSE
Instruções de uso do produto
- O aplicativo STM32CubeWiSE-RadioCodeGenerator requer pelo menos 2 Gbytes de RAM, portas USB e Adobe Acrobat Reader 6.0.
- Extraia o conteúdo do stm32wise-cgwin.zip file em um diretório temporário.
- Inicie o STM32CubeWiSE-RadioCodeGenerator_Vx.xxexe file e siga as instruções na tela.
- O pacote SW STM32CubeWiSE-RadioCodeGenerator files são organizados em pastas, incluindo 'app' e 'ex'ampeles'.
- Para construir um fluxograma no STM32CubeWiSE-RadioCodeGenerator:
- Adicione SeqActions ao fluxograma usando a barra de ferramentas ou o menu global.
- Conecte SeqActions ao ponto de entrada e entre si desenhando setas de transição de ação.
- Navegue pelo gráfico de fluxo arrastando ações e adicionando transições de ação conforme necessário.
Introdução
- Este documento descreve o pacote de software STM32CubeWiSE-RadioCodeGenerator (STM32CubeWiSEcg) com o gerador de código sequenciador STM32WL3x MRSUBG.
- STM32CubeWiSE-RadioCodeGenerator é um aplicativo de PC usado para criar um fluxograma que define quais ações do transceptor executar sob quais condições, usando o driver sequenciador MRSUBG.
- O rádio STM32WL3x Sub-GHz contém este sequenciador, que é um mecanismo semelhante a uma máquina de estados que permite o gerenciamento autônomo de transferências de RF, sem qualquer necessidade de intervenção da CPU.
- Se for necessária a intervenção da CPU, interrupções podem ser definidas. As ações do transceptor podem ser organizadas em um fluxograma. Neste documento, as ações individuais do transceptor são chamadas de SeqActions.
- Entretanto, o código-fonte não é a melhor representação para fluxogramas, pois oculta sua estrutura lógica e temporal.
- O STM32CubeWiSE-RadioCodeGenerator resolve esse problema fornecendo um método gráfico para criar fluxogramas e, em seguida, exportar os fluxogramas gerados como código-fonte C para integração em aplicativos do usuário.
- A definição do fluxograma é armazenada na RAM do microcontrolador na forma de:
- Um conjunto de tabelas RAM de ActionConfiguration, vinculadas entre si por meio de ponteiros. Esses ponteiros definem as SeqActions, ou seja, o tipo de ação (por exemplo,ample, transmissão, recepção, aborto), bem como parâmetros de rádio e condições específicos do SeqAction para transmissões de ação.
- Uma tabela RAM exclusiva de GlobalConfiguration. Ela define o ponto de entrada do fluxograma (a primeira SeqAction a ser executada), bem como alguns valores de sinalizadores padrão e parâmetros de rádio comuns.
- Os parâmetros de rádio, que podem ser configurados individualmente para cada SeqAction, são armazenados em um dos registradores dinâmicos, cujo conteúdo faz parte da tabela RAM de configuração de ação. Os parâmetros de rádio, que são fixos durante toda a execução do fluxograma (a menos que sejam modificados durante uma interrupção da CPU), são armazenados em registradores estáticos, cujo conteúdo faz parte da tabela RAM de configuração global.
informações gerais
Licenciamento
Este documento descreve o software executado no microcontrolador STM32WL3x baseado no Arm® Cortex ® -M0+.
Observação: Arm é uma marca registrada da Arm Limited (ou de suas subsidiárias) nos Estados Unidos e / ou em outro lugar.
Documentos relacionados
Tabela 1. Referências de documentos
Número | Referência | Título |
[1] | RM0511 | MCUs sub-GHz baseados em Arm® STM32WL30xx/31xx/33xx |
Começando
- Esta seção descreve todos os requisitos do sistema para executar o STM32CubeWiSE-RadioCodeGenerator.
- Ele também detalha o procedimento de instalação do pacote de software.
Requisitos do sistema
O aplicativo STM32CubeWiSE-RadioCodeGenerator tem os seguintes requisitos mínimos:
- PC com processador Intel® ou AMD® executando o sistema operacional Microsoft® Windows 10
- Pelo menos 2 Gbytes de RAM
- Portas USB
- Leitor Adobe Acrobat 6.0
Configuração do pacote SW STM32CubeWiSE-RadioCodeGenerator
Execute os seguintes passos:
- Extraia o conteúdo do stm32wise-cgwin.zip file em um diretório temporário.
- Extraia e execute o STM32CubeWiSE-RadioCodeGenerator_Vx.xxexe file e siga as instruções na tela.
Pacote SW STM32CubeWiSE-RadioCodeGenerator files
O pacote SW STM32CubeWiSE-RadioCodeGenerator files são organizados nas seguintes pastas:
- aplicativo: contém STM32CubeWiSE-RadioCodeGenerator.exe
- examples: esta pasta é organizada nas seguintes subpastas:
- código: esta pasta contém os fluxogramas example já exportado como código C, pronto para ser injetado em um projeto de aplicativo
- fluxogramas: esta pasta armazena alguns exampmenos cenários de operações autônomas do sequenciador MRSUBG
Notas de lançamento e licença files estão localizados na pasta raiz.
Descrição do software STM32CubeWiSE-RadioCodeGenerator
- Esta seção descreve as principais funções do aplicativo STM32CubeWiSE-RadioCodeGenerator. Para executar este utilitário, clique no ícone STM32CubeWiSE-RadioCodeGenerator.
Após iniciar o STM32CubeWiSE-RadioCodeGenerator, a janela principal do aplicativo aparece. Ela consiste em:
- Um menu global e barra de ferramentas
- A representação visual de arrastar e soltar do fluxograma
- A seção de configuração SeqAction (visível somente se uma SeqAction estiver sendo editada)
Construindo um fluxograma
Noções básicas
Os fluxogramas são construídos em duas etapas:
- Adicione SeqActions ao fluxograma. Isso pode ser feito usando o botão "Adicionar Ação" na barra de ferramentas, usando o menu global (Editar → Adicionar Ação) ou com o atalho "Ctrl+A".
- Conecte SeqActions ao ponto de entrada e entre si desenhando setas de transição de ação.
As condições sob as quais essas transições ocorrem são definidas posteriormente (consulte a Seção 3.2.1: Fluxo de controle).
Navegando no fluxograma, arrastando ações
Ao arrastar o fundo quadriculado do fluxograma com o ponteiro do mouse (clique esquerdo), o viewporta no fluxograma pode ser ajustada. A roda de rolagem do mouse pode ser usada para aumentar e diminuir o zoom. Clicar em qualquer lugar em uma ação (exceto para as portas de saída, o botão de exclusão e o botão de edição) para selecionar uma ação. As ações podem ser organizadas no fluxograma arrastando-as com o botão esquerdo do mouse.
Adicionando transições de ação
- Conforme mostrado na Figura 2, cada ação possui duas “portas de saída”, chamadas NextAction1 (NA1) e NextAction2 (NA2), que podem ser conectadas a SeqActions que são executadas após a conclusão da ação. Por exemplo:amppor exemplo, NextAction1 poderia ser usado para executar alguma ação se a ação atual fosse bem-sucedida e NextAction2 poderia ser acionado em caso de falha.
- Para criar uma transição de ação, passe o ponteiro do mouse sobre uma das portas de saída, pressione o botão esquerdo do mouse e mova o ponteiro do mouse para arrastar uma seta de transição. Mova o ponteiro do mouse sobre a porta de entrada à esquerda de alguma outra SeqAction e solte o botão esquerdo do mouse para tornar a conexão permanente. Para remover uma transição de ação, basta repetir os passos para criar uma transição de ação, mas soltar o botão esquerdo do mouse em algum lugar sobre o fundo quadriculado.
- Se uma saída (NextAction1, NextAction2) for deixada desconectada, o sequenciador será encerrado se esta próxima ação for acionada.
- Certifique-se também de conectar o "Ponto de Entrada" à porta de entrada de alguma SeqAction. Esta SeqAction é a primeira a ser executada assim que o sequenciador é acionado.
Editar e excluir ações
- SeqActions podem ser editadas clicando no botão de lápis no canto superior esquerdo de SeqAction. Elas podem ser excluídas clicando na cruz vermelha no canto superior direito (veja a Figura 3). Excluir uma SeqAction também remove quaisquer transições de ação de entrada e saída.
Configuração SeqAction
SeqActions podem ser configuradas por meio de uma interface de configuração com abas acessível por meio do botão de lápis no canto superior esquerdo de cada ação no fluxograma. Essa interface configura essencialmente o conteúdo da tabela ActionConfiguration RAM para a ação específica, consistindo em opções de configuração relacionadas ao fluxo de controle, bem como o conteúdo do registro dinâmico. O conteúdo do registro dinâmico pode ser configurado manualmente com controle completo sobre cada valor de registro (consulte a Seção 3.2.3: Configuração avançada de rádio) ou por meio de uma interface simplificada (consulte a Seção 3.2.2: Configuração básica de rádio). A interface simplificada deve ser suficiente para quase todos os casos de uso.
Controle de fluxo
A aba de fluxo de controle (veja a Figura 4) contém algumas opções básicas de configuração, como nome da ação e intervalo de tempo limite da ação. O nome da ação não é usado apenas para exibição no fluxograma, mas também é transferido para o código-fonte gerado.
- A aba de fluxo de controle (veja a Figura 4) contém algumas opções básicas de configuração, como nome da ação e intervalo de tempo limite da ação. O nome da ação não é usado apenas para exibição no fluxograma, mas também é transferido para o código-fonte gerado.
- Mais importante ainda, a aba de fluxo de controle configura a condição da qual depende uma transição para NextAction1 / NextAction2, bem como o intervalo de transição e os sinalizadores. A condição de transição pode ser configurada clicando no botão "...", que faz com que a caixa de diálogo de seleção de máscara mostrada na Figura 5 apareça. O intervalo de transição modificou a propriedade NextAction1Interval / NextAction2Interval da tabela RAM. Consulte o manual de referência do STM32WL3x [1] para obter mais informações sobre o significado deste intervalo e a importância dos sinalizadores SleepEn / ForceReload / ForceClear.
- Além disso, uma breve descrição do bloco SeqAction pode ser adicionada nesta aba. Essa descrição é usada apenas para fins de documentação e é transferida para o código-fonte gerado como um comentário.
Configuração básica de rádio
A guia de configuração básica de rádio pode ser subdividida em três partes:
- Uma seção na parte superior onde dois dos parâmetros mais importantes de qualquer ação são configurados: o comando a ser executado (TX, RX, NOP, SABORT e assim por diante) e, se aplicável, o comprimento do pacote a ser transferido.
- Uma seção à esquerda onde os parâmetros reais do rádio, como: frequência portadora, taxa de dados, propriedades de modulação, limites de buffer de dados e temporizadores são configurados.
- Uma seção à direita onde as interrupções da CPU podem ser habilitadas individualmente. Um manipulador de interrupção é gerado para cada uma das interrupções marcadas. Isso basicamente configura o conteúdo do registrador RFSEQ_IRQ_ENABLE.
Consulte o manual de referência STM32WL3x [1] para obter o significado dos vários parâmetros de rádio.
Configuração avançada de rádio
- Se as opções de configuração expostas por meio da aba de configuração básica de rádio (Seção 3.2.2: Configuração básica de rádio) forem insuficientes, a aba de configuração avançada de rádio STM32WL3x permite a configuração de conteúdos de registro dinâmico arbitrários. A aba de configuração avançada é habilitada marcando a caixa de seleção Advanced Configuration no canto superior direito da interface de configuração com abas.
- Não é possível usar as configurações básica e avançada simultaneamente; o usuário deve selecionar uma ou outra. No entanto, também é possível editar manualmente o código-fonte gerado posteriormente e adicionar opções de configuração potencialmente ausentes.
Caixa de diálogo de configuração global
- A caixa de diálogo "Configurações Globais do Projeto" pode ser acessada através do botão "Configurações Globais" na barra de ferramentas. A caixa de diálogo contém opções de configuração para o conteúdo do registrador estático, bem como configurações adicionais do projeto. Observe que apenas uma pequena fração das opções de configuração do registrador estático pode ser configurada por meio desta caixa de diálogo. Essas opções são fornecidas apenas para acelerar a prototipagem de aplicativos com o STM32CubeWiSE-RadioCodeGenerator.
- Geralmente, espera-se que o conteúdo do registro estático seja configurado no código-fonte escrito manualmente no aplicativo.
- O significado das outras configurações do projeto é explicado na própria caixa de diálogo.
- Código C adicional inserido imediatamente antes da criação da tabela RAM de Configuração Global a partir do conteúdo do registrador estático também pode ser fornecido. Este campo pode ser usado para configurar valores de registradores estáticos que são inacessíveis através da máscara de configuração de registradores estáticos fornecida.
Geração de código
O fluxograma pode ser traduzido para o código-fonte completo do projeto C clicando no botão Gerar Código na barra de ferramentas. A pasta do projeto gerado não contém o projeto. files para IAR, Keil® ou GCC. Estes files devem ser adicionados manualmente ao projeto STMWL3x.
Esta é a estrutura da pasta do projeto gerada:
Pasta de projeto
- inc
- SequencerFlowgraph.h: cabeçalho file para SequencerFlowgraph.c, estático. Não edite isto.
- stm32wl3x_hal_conf.h: configuração STM32WL3x HAL file, estático.
- fonte
- SequencerFlowgraph.c: definição de fluxograma. Este é o importante file que usa o driver sequenciador para definir as tabelas de RAM de configuração global e de configuração de ação. Gerado automaticamente, não edite.
- main.c: Projeto principal file que demonstra como carregar e aplicar a definição do fluxograma. Estático, modifique conforme necessário.
- Para editar main.c ou stm32wl3x_hal_conf.h, selecione overwrite behavior Keep nas configurações do projeto. Dessa forma, apenas SequencerFlowgraph.c é sobrescrito.
Como importar código gerado para um CubeMX example
Para importar um projeto gerado pelo STM32CubeWiSE-RadioCodeGenerator para um CubeMX example (MRSUBG_Skeleton), é necessário seguir os seguintes passos:
- Abra a pasta que contém o files gerados pelo STM32CubeWiSE-RadioCodeGenerator e copie as pastas “Inc” e “Src”.
- Cole as duas pastas na pasta “MRSUBG_Skeleton” sobrescrevendo as duas já presentes.
- Abra o projeto “MRSUBG_Skeleton” em um dos seguintes IDEs:
- EQUENTE
- MDK-ARM
- STM32CubeIDE
- Dentro do projeto “MRSUBG_Skeleton”, adicione o “SequencerFlowghraph.c” file:
- Para um projeto EWARM, o caminho para adicionar o file é o seguinte: MRSUBG_Skeleton\Application\User
- Para um projeto MDK-ARM, o caminho para adicionar o file é o seguinte: MRSUBG_Skeleton\Aplicativo/Usuário
- Para um projeto STM32CubeIDE, o caminho para adicionar o file é o mesmo:
MRSUBG_Skeleton\Aplicativo\Usuário
- Para um projeto EWARM, o caminho para adicionar o file é o seguinte: MRSUBG_Skeleton\Application\User
- Dentro do projeto MRSUBG_Skeleton, adicione stm32wl3x_hal_uart.c e stm32wl3x_hal_uart_ex.c filepara o seguinte caminho: MRSUBG_Skeleton\Drivers\STM32WL3x_HAL_Driver. O caminho é o mesmo para todos os IDEs. Os dois files estão localizados em Firmware\Drivers\STM32WL3x_HAL_Driver\Src.
- Para usar os recursos COM, stm32wl3x_nucleo_conf.h file, localizado em Firmware\Projetos\NUCLEOWL33CC\ Examples\MRSUBG\MRSUBG_Skeleton\Inc, deve ser modificado configurando USE_BSP_COM_FEATURE e USE_COM_LOG para 1U:
- Copie o seguinte código em “stm32wl3x_it.c”, localizado em MRSUBG_Skeleton\Application\User.
Fluxograma exampos
- Quatro exampOs fluxogramas são fornecidos junto com o código-fonte. Esses exampOs arquivos podem ser carregados no STM32CubeWiSE-RadioCodeGenerator clicando no botão “Carregar” na barra de ferramentas.
AutoACK_RX
- A demonstração do Auto-ACK ilustra como dois dispositivos STM32WL3x podem se comunicar automaticamente entre si com intervenção mínima da CPU, com a ajuda do hardware do sequenciador.
- Este fluxograma implementa o comportamento (Auto-Transmit-ACK) do dispositivo A. No dispositivo A, o sequenciador é inicializado em um estado de recebimento (WaitForMessage), no qual aguarda a chegada de uma mensagem.
- Assim que uma mensagem válida chega, o sequenciador transita automaticamente para um estado de transmissão (TransmitACK), no qual um pacote ACK é enviado como resposta, sem intervenção da CPU. Uma vez concluído, o sequenciador é redefinido para seu estado inicial de WaitForMessage.
- Este fluxograma implementa o mesmo comportamento do MRSUBG_SequencerAutoAck_Rx example do Examppasta les\MRSUBG do pacote de software STM32Cube WL3. Se o AutoACK_RX estiver instalado em um dispositivo
A, e o AutoACK_TX é atualizado em algum dispositivo, B, os dois dispositivos enviam mensagens de um lado para o outro, como em um jogo de pingue-pongue.
AutoACK_TX
- A demonstração “Auto-ACK” ilustra como dois dispositivos STM32WL3x podem se comunicar automaticamente com intervenção mínima da CPU com a ajuda do hardware sequenciador.
- Este fluxograma implementa o comportamento ("Auto-Wait-for-ACK") do dispositivo B. No dispositivo B, o sequenciador é inicializado em um estado de transmissão (TransmitMessage), no qual transmite uma mensagem. Assim que a transmissão é concluída, ele transita automaticamente para um estado de recepção, onde aguarda uma confirmação do dispositivo A (WaitForACK). Assim que uma confirmação válida chega, o sequenciador é redefinido para seu estado inicial de TransmitMessage e todo o processo é reiniciado. Caso nenhum ACK seja recebido em 4 segundos, um tempo limite é acionado e o sequenciador retorna ao estado de TransmitMessage de qualquer maneira.
- Este fluxograma implementa o mesmo comportamento do exemplo “MRSUBG_SequencerAutoAck_Tx”ample do ExampPasta les\MRSUBG do pacote de software STM32Cube WL3. Se o AutoACK_RX for instalado em um dispositivo, A, e o AutoACK_TX for instalado em outro dispositivo, B, os dois dispositivos enviam mensagens de um lado para o outro, como em um jogo de pingue-pongue.
Ouça antes de falar (LBT)
- Este example foi retirado do manual de referência STM32WL3x [1]. Consulte esse manual para obter mais detalhes sobre este exampeu.
Modo Sniff
- Este example foi retirado do manual de referência STM32WL3x [1]. Consulte esse manual para obter mais detalhes sobre este exampeu.
Histórico de revisão
Tabela 2. Histórico de revisão do documento
Data | Versão | Mudanças |
21-nov-2024 | 1 | Lançamento inicial. |
10-fev-2025 | 2 | Nome do dispositivo atualizado para o escopo STM32WL3x. |
AVISO IMPORTANTE – LEIA COM ATENÇÃO
- A STMicroelectronics NV e suas subsidiárias (“ST”) reservam-se o direito de fazer alterações, correções, aprimoramentos, modificações e melhorias nos produtos ST e/ou neste documento a qualquer momento, sem aviso prévio. Os compradores devem obter as informações relevantes mais recentes sobre os produtos ST antes de fazer pedidos. Os produtos ST são vendidos de acordo com os termos e condições de venda da ST em vigor no momento do reconhecimento do pedido.
- Os compradores são os únicos responsáveis pela escolha, seleção e uso dos produtos ST e a ST não assume nenhuma responsabilidade pela assistência na aplicação ou pelo design dos produtos dos compradores.
- Nenhuma licença, expressa ou implícita, para qualquer direito de propriedade intelectual é concedida pela ST aqui.
- A revenda de produtos ST com disposições diferentes das informações aqui estabelecidas anulará qualquer garantia concedida pela ST para tal produto.
- ST e o logotipo ST são marcas registradas da ST. Para obter informações adicionais sobre as marcas registradas da ST, consulte www.st.com/trademarks. Todos os outros nomes de produtos ou serviços são de propriedade de seus respectivos proprietários.
- As informações neste documento substituem e substituem informações fornecidas anteriormente em quaisquer versões anteriores deste documento.
- © 2025 STMicroelectronics – Todos os direitos reservados
Perguntas frequentes
- P: Quais são os requisitos mínimos de sistema para o STM32CubeWiSE-RadioCodeGenerator?
- A: Os requisitos mínimos do sistema incluem pelo menos 2 Gbytes de RAM, portas USB e Adobe Acrobat Reader 6.0.
- P: Como posso configurar o pacote de software STM32CubeWiSE-RadioCodeGenerator?
- A: Para configurar o pacote de software, extraia o conteúdo do zip fornecido file em um diretório temporário e inicie o executável file seguindo as instruções na tela.
Documentos / Recursos
![]() |
Gerador de código de rádio STMicroelectronics UM3399 STM32Cube WiSE [pdf] Manual do Usuário UM3399, UM3399 STM32 Cube WiSE Gerador de código de rádio, UM3399, STM32, Cube WiSE Gerador de código de rádio, Gerador de código de rádio, Gerador de código, Gerador |