STM32WL3x-loigo

Paquete de software STM32WL3x

STM32WL3x-Paquete de software-PRODCUCT

Especificacións

  • Nome do produto: paquete de software STM32CubeWL3
  • Compatibilidade: microcontroladores STM32WL3x
  • Características principais:
    • API de capa baixa (LL) e capa de abstracción de hardware (HAL).
    • Componentes de middleware do núcleo SigfoxTM, FatFS e FreeRTOSTM
    • Aplicacións e demostracións

Instrucións de uso do produto

Comezando
Para comezar a usar o paquete de software STM32CubeWL3, siga estes pasos:

  1. Descarga o paquete de software do oficial websitio.
  2. Instale o ambiente de desenvolvemento necesario (por exemplo, STM32CubeIDE, EWARM, MDK-ARM).
  3. Consulte o exampficheiros e aplicacións proporcionados para orientación.

STM32CubeWL3 Architecture Overview
O paquete de software STM32CubeWL3 está construído en torno a tres niveis principais

  • Nivel 0: Capa de abstracción de hardware (HAL) e controladores BSP.
  • Nivel 1: Aplicacións, bibliotecas e compoñentes baseados en protocolos.

Preguntas frecuentes (FAQ)

P: Cales son as principais características do paquete de software STM32CubeWL3?
R: As principais características inclúen API de capa baixa e HAL, compoñentes de middleware como SigfoxTM, FatFS, núcleo de FreeRTOSTM, aplicacións e demostracións.

Introdución

STM32Cube é unha iniciativa orixinal de STMicroelectronics para mellorar significativamente a produtividade dos deseñadores reducindo o esforzo, o tempo e o custo de desenvolvemento. STM32Cube cobre toda a carteira STM32.

STM32Cube inclúe:

  • Un conxunto de ferramentas de desenvolvemento de software fáciles de usar para abarcar o desenvolvemento de proxectos desde a concepción ata a realización, entre as cales están:
    • STM32CubeMX, unha ferramenta de configuración de software gráfico que permite a xeración automática de código de inicialización C mediante asistentes gráficos.
    • STM32CubeIDE, unha ferramenta de desenvolvemento todo en un con configuración de periféricos, xeración de código, compilación de código e funcións de depuración
    • STM32CubeCLT, un conxunto de ferramentas de desenvolvemento de liña de comandos todo en un con funcións de compilación de código, programación de placas e depuración
    • STM32CubeProgrammer (STM32CubeProg), unha ferramenta de programación dispoñible en versións gráficas e de liña de comandos
    • STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), poderosas ferramentas de monitorización para axustar o comportamento e o rendemento das aplicacións STM32 en tempo real
  • Paquetes STM32Cube MCU e MPU, plataformas completas de software integrado específicas para cada serie de microcontroladores e microprocesadores (como STM32CubeWL3 para a liña de produtos STM32WL3x), que inclúen:
    • Capa de abstracción de hardware STM32Cube (HAL), que garante a portabilidade máxima en toda a carteira STM32
    • API de capa baixa STM32Cube, que garanten o mellor rendemento e pegadas cun alto grao de control do usuario sobre] hardware
    • Un conxunto consistente de compoñentes de middleware como o núcleo FreeRTOS™, FatFS e Sigfox™
    • Todas as utilidades de software incorporadas con conxuntos completos de periféricos e aplicativosamples
  • Paquetes de expansión STM32Cube, que conteñen compoñentes de software integrados que complementan as funcionalidades dos paquetes MCU e MPU STM32Cube con:
    • Extensións de middleware e capas aplicativas
    • Exampficheiros que se executan nalgunhas placas de desenvolvemento de STMicroelectronics específicas

Este manual de usuario describe como comezar co paquete STM32CubeWL3 MCU.
A Sección 2 describe as principais características de STM32CubeWL3 e a Sección 3 ofrece un repasoview da súa arquitectura e da estrutura do paquete MCU.

Información xeral

STM32CubeWL3 executa aplicacións de demostración sub-GHz, incluíndo binarios Sigfox™, en microcontroladores da liña de produtos STM32WL3x baseados no procesador Arm® Cortex®‑M0+.
Os microcontroladores STM32WL3x incorporan o periférico de radio de radiofrecuencia sub-GHz de última xeración de STMicroelectronics, optimizado para un consumo de enerxía ultra baixo e un excelente rendemento da radio, para unha duración da batería incomparable.
Nota: Arm é unha marca rexistrada de Arm Limited (ou das súas subsidiarias) nos EUA e/ou noutro lugar.

Características principais do STM32CubeWL3

  • O paquete STM32CubeWL3 MCU funciona con microcontroladores STM32 de 32 bits baseados no procesador Arm® Cortex®‑M0+. Reúne, nun único paquete, todos os compoñentes xenéricos de software embebido necesarios para desenvolver unha aplicación para os microcontroladores da liña de produtos STM32WL3x.
  • O paquete inclúe API de capa baixa (LL) e capa de abstracción de hardware (HAL) que cobren o hardware do microcontrolador, xunto cun extenso conxunto de examparchivos que se executan en placas STMicroelectronics. As API HAL e LL están dispoñibles nunha licenza BSD de código aberto para comodidade do usuario. Tamén inclúe os compoñentes de middleware do núcleo Sigfox™, FatFS e FreeRTOS™.
  • O paquete STM32CubeWL3 MCU tamén ofrece varias aplicacións e demostracións que implementan todos os seus compoñentes de middleware.
  • A disposición dos compoñentes do paquete STM32CubeWL3 MCU móstrase na Figura 1.

Figura 1. Compoñentes do paquete STM32CubeWL3 MCU 

Paquete de software STM32WL3x (2)

Arquitectura STM32CubeWL3 rematadaview

A solución do paquete STM32CubeWL3 MCU está construída en torno a tres niveis independentes que interactúan facilmente como se describe na Figura 2. Paquete de software STM32WL3x (3)Nivel 0
Este nivel divídese en tres subcapas:

  • Paquete de soporte da placa (BSP).
  • Capa de abstracción de hardware (HAL):
    • Controladores periféricos HAL
    • Controladores de capa baixa
  • Uso básico de periféricos examples.

Paquete de soporte da placa (BSP)
Esta capa ofrece un conxunto de API relativos aos compoñentes de hardware das placas de hardware (como LEDs, botóns e controladores COM). Componse de dúas partes:

  • Compoñente:
    Este é o controlador relativo ao dispositivo externo da placa e non ao STM32. O controlador de compoñentes proporciona API específicas aos compoñentes externos do controlador BSP e pode ser portátil en calquera outra placa.
  • controlador BSP:

Permite ligar os controladores de compoñentes a unha placa específica e ofrece un conxunto de API amigables. A regra de nomeamento da API é BSP_FUNCT_Action().
Example: BSP_LED_Init(), BSP_LED_On()
BSP baséase nunha arquitectura modular que permite un fácil portado en calquera hardware con só implementar as rutinas de baixo nivel.

Capa de abstracción de hardware (HAL) e capa baixa (LL)
Os STM32CubeWL3 HAL e LL son complementarios e cobren unha ampla gama de requisitos de aplicación:

  • Os controladores HAL ofrecen API altamente portátiles de alto nivel orientadas a funcións. Ocultan o MCU e a complexidade do periférico ao usuario final.
    Os controladores HAL proporcionan API xenéricas orientadas a funcións de varias instancias, que simplifican a implementación da aplicación do usuario proporcionando procesos listos para usar. Por example, para os periféricos de comunicación (I2C, UART e outros), proporciona API que permiten inicializar e configurar o periférico, xestionar a transferencia de datos en función do proceso de sondeo, interrupción ou DMA e xestionar os erros de comunicación que poidan xurdir durante a comunicación. As API do controlador HAL divídense en dúas categorías:
  1. API xenéricas, que proporcionan funcións comúns e xenéricas a todos os microcontroladores da serie STM32.
  2. API de extensión, que proporcionan funcións específicas e personalizadas para unha familia específica ou un número de peza específico.
  • As API de capa baixa proporcionan API de baixo nivel a nivel de rexistro, cunha mellor optimización pero con menos portabilidade. Requiren un coñecemento profundo da MCU e das especificacións dos periféricos.
    Os controladores LL están deseñados para ofrecer unha capa rápida e lixeira orientada a expertos que está máis preto do hardware que o HAL. Ao contrario do HAL, as API LL non se proporcionan para periféricos nos que o acceso optimizado non é unha característica clave, nin para aqueles que requiren unha configuración de software pesada ou unha pila complexa de nivel superior.

Características dos controladores LL:

  • Un conxunto de funcións para inicializar as características principais dos periféricos segundo os parámetros especificados nas estruturas de datos.
  • Un conxunto de funcións para encher estruturas de datos de inicialización cos valores de reinicio correspondentes a cada campo.
  • Función de desinicialización de periféricos (rexistros periféricos restaurados aos seus valores predeterminados).
  • Un conxunto de funcións en liña para o acceso directo e ao rexistro atómico.
  • Total independencia de HAL e capacidade de usar en modo autónomo (sen controladores HAL).
  • Cobertura total das funcións periféricas admitidas.

Uso básico de periféricos examples
Esta capa encerra o exampficheiros construídos sobre os periféricos STM32 usando só os recursos HAL e BSP.
Demostración exampOs ficheiros tamén están dispoñibles para mostrar ex. máis complexosample escenarios con periféricos específicos, como o MRSUBG e o LPAWUR.

Nivel 1
Este nivel divídese en dúas subcapas:

  • Compoñentes de middleware
  • Exampficheiros baseados nos compoñentes de middleware

Compoñentes de middleware
O middleware é un conxunto de bibliotecas que abarcan o núcleo FreeRTOS™, FatFS e a biblioteca de protocolos Sigfox™. A interacción horizontal entre os compoñentes desta capa realízase chamando ás API destacadas.
A interacción vertical cos controladores de capa baixa realízase mediante devolucións de chamada específicas e macros estáticas implementadas na interface de chamada do sistema da biblioteca.
As principais características de cada compoñente de middleware son as seguintes:

  • Núcleo FreeRTOS™: implementa un sistema operativo en tempo real (RTOS), deseñado para sistemas integrados.
  • Sigfox™: implementa a biblioteca de protocolos Sigfox™ compatible coa rede de protocolos Sigfox™ e inclúe a biblioteca de protocolos de proba de RF para probar coas ferramentas de RF Sigfox™.
  • FatFS: implementa o FAT xenérico file módulo do sistema.

Exampficheiros baseados nos compoñentes de middleware
Cada compoñente de middleware vén cun ou máis examples, tamén chamados aplicacións, que mostran como usalo. Integración exampTamén se proporcionan ficheiros que usan varios compoñentes de middleware.

Paquete de firmware STM32CubeWL3 terminadoview

Dispositivos e hardware STM32WL3x compatibles
STM32Cube ofrece unha capa de abstracción de hardware (HAL) altamente portátil construída arredor dunha arquitectura xenérica. Permite o principio das capas de acumulación, como usar a capa de middleware para implementar as súas funcións sen saber en profundidade que MCU se usa. Isto mellora a reutilización do código da biblioteca e garante unha fácil portabilidade a outros dispositivos.

  • Ademais, coa súa arquitectura en capas, STM32CubeWL3 ofrece soporte completo para toda a liña de produtos STM32WL3x.
  • O usuario só debe definir a macro correcta en stm32wl3x.h.

A táboa 1 mostra a macro que se debe definir dependendo do dispositivo da liña de produtos STM32WL3x empregado. Esta macro tamén debe definirse no preprocesador do compilador.
Táboa 1. Macros para a liña de produtos STM32WL3x

Macro definida en stm32wl3x.h Dispositivos da liña de produtos STM32WL3x
stm32wl33 Microcontroladores STM32WL33xx

STM32CubeWL3 presenta un rico conxunto de exampficheiros e aplicacións a todos os niveis, o que facilita a comprensión e o uso de calquera controlador HAL ou compoñentes de middleware. Estes exampOs ficheiros execútanse nas placas de STMicroelectronics listadas na Táboa 2.

Xunta Dispositivos compatibles con placa STM32WL3x
NUCLEO-WL33CC1 STM32WL33CC
NUCLEO-WL33CC2 STM32WL33CC

O paquete STM32CubeWL3 MCU pode executarse en calquera hardware compatible. Os usuarios simplemente actualizan os controladores BSP para portar o exampficheiros nas súas placas, se estes teñen as mesmas características de hardware (como LED ou botóns).

Paquete de firmware rematadoview
A solución do paquete STM32CubeWL3 MCU ofrécese nun único paquete zip coa estrutura que se mostra na Figura 3.
Figura 3. Estrutura do paquete de firmware STM32CubeWL3

Paquete de software STM32WL3x (4)

Atención:

O usuario non debe modificar os compoñentes files. O usuario só pode editar as fontes \Projects.
Para cada taboleiro, un conxunto de examples proporciona proxectos preconfigurados para as cadeas de ferramentas EWARM, MDK-ARM e STM32CubeIDE.
A figura 4 mostra a estrutura do proxecto para as placas NUCLEO-WL33CCx. Paquete de software STM32WL3x (5)

O exampOs ficheiros clasifícanse dependendo do nivel STM32CubeWL3 ao que se aplican. Noméanse do seguinte xeito:

  • Nivel 0 exampos chámanse Examples, Examples_LL e Examples_MIX. Usan respectivamente controladores HAL, controladores LL e unha mestura de controladores HAL e LL sen ningún compoñente de middleware. Demostración exampos tamén están dispoñibles.
  • Nivel 1 exampOs ficheiros chámanse Aplicacións. Ofrecen casos de uso típicos de cada compoñente de middleware.

Pódese crear rapidamente calquera aplicación de firmware para unha placa determinada usando os proxectos de modelos dispoñibles nos directorios Templ ates e Templates_LL.

Examples, Examples_LL e Examples_MIX teñen a mesma estrutura:

  • Cartafol \Inc que contén toda a cabeceira files.
  • Cartafol \Src que contén o código fonte.
  • \EWARM, \MDK-ARM e \STM32CubeIDE que conteñen o proxecto preconfigurado para cada cadea de ferramentas.
  • readme.md e readme.html describindo o exampo comportamento e o ambiente necesario para facelo funcionar.

Comezando con STM32CubeWL3

Realizando un primeiro example
Esta sección explica o sinxelo que é executar un primeiro example dentro de STM32CubeWL3. Usa como ilustración a xeración dun simple alternador LED que se executa na placa NUCLEO-WL33CC1:

  1. Descarga o paquete STM32CubeWL3 MCU.
  2. Descomprimilo, ou executa o instalador, se o fornece, nun directorio que elixas.
  3. Asegúrese de non modificar a estrutura do paquete que se mostra na Figura 3. Estrutura do paquete do firmware STM32CubeWL3. Teña en conta que tamén se recomenda copiar o paquete nun lugar próximo ao volume raíz (é dicir, C:\ST ou G:\Tests), xa que algúns IDEs atopan problemas cando o camiño é demasiado longo.

Como executar un HAL example
Antes de cargar e executar un example, recoméndase encarecidamente ler o exampleame file para calquera configuración específica.

  1. Navega ata \Proxectos\NUCLEO-WL33CC\Examples.
  2. Abra os cartafoles \GPIO e despois \GPIO_EXTI.
  3. Abre o proxecto coa cadea de ferramentas preferida. Un paso rápidoview sobre como abrir, construír e executar un exampA continuación indícase o le coas cadeas de ferramentas compatibles.
  4. Reconstruír todo files e carga a imaxe na memoria de destino.
  5. Executar o example. Para máis detalles, consulte o exampleame file.

Para abrir, construír e executar un example con cada unha das cadeas de ferramentas admitidas, siga os pasos seguintes:

  • EWARM:
  1. Baixo o Examples, abra o subcartafol \EWARM.
  2. Inicie o espazo de traballo Project.eww (o nome do espazo de traballo pode cambiar dun example a outro).
  3. Reconstruír todo files: [Proxecto]> [Reconstruír todo].
  4. Carga a imaxe do proxecto: [Proxecto]>[Depurar].
  5. Executa o programa: [Depurar]>[Ir (F5)].
  • MDK-ARM:
  1. Baixo o Examples, abra o subcartafol \MDK-ARM.
  2. Abre o espazo de traballo Project.uvproj (o nome do espazo de traballo pode cambiar dun example a outro).
  3. Reconstruír todo files: [Proxecto]>[Reconstruír todo o destino files].
  4. Cargue a imaxe do proxecto: [Depurar]>[Iniciar/Deter sesión de depuración].
  5. Executar o programa: [Depurar]>[Executar (F5)].
  • STM32CubeIDE:
  1. Abra a cadea de ferramentas STM32CubeIDE.
  2. Prema en [File]>[Cambiar espazo de traballo]>[Outro] e navegue ata o directorio do espazo de traballo STM32CubeIDE.
  3. Prema en [File]>[Importar], seleccione [Xeral]>[Proxectos existentes no espazo de traballo] e, a continuación, faga clic en [Seguinte].
  4. Navega ata o directorio do espazo de traballo STM32CubeIDE e selecciona o proxecto.
  5. Reconstruír todo o proxecto files: Seleccione o proxecto na xanela do Explorador de proxectos e prema no botón
    Menú [Proxecto]>[Construír proxecto].
  6.  Executa o programa: [Executar]>[Depurar (F11)].

Desenvolvemento dunha aplicación personalizada

Usando STM32CubeMX para desenvolver ou actualizar unha aplicación
No paquete STM32Cube MCU, case todos os proxectos, por exemploampOs ficheiros xéranse coa ferramenta STM32CubeMX para inicializar o sistema, os periféricos e o middleware.

A utilización directa dun proxecto existente exampO ficheiro da ferramenta STM32CubeMX require STM32CubeMX 6.12.0 ou superior:

  • Despois da instalación de STM32CubeMX, abra e, se é necesario, actualice un proxecto proposto.
    O xeito máis sinxelo de abrir un proxecto existente é facer dobre clic no *.ioc file para que STM32CubeMX abra automaticamente o proxecto e a súa orixe files. STM32CubeMX xera o código fonte de inicialización destes proxectos.
  • O código fonte da aplicación principal está contido nos comentarios "COMEZAR CÓDIGO DE USUARIO" e "FIN DO CÓDIGO DE USUARIO". Se se modifican a selección e a configuración do periférico, STM32CubeMX actualiza a parte de inicialización do código conservando o código fonte da aplicación principal.

Para desenvolver un proxecto personalizado con STM32CubeMX, siga o proceso paso a paso:

  1. Configure todo o software incorporado necesario mediante un solucionador de conflitos de pinout, un axudante de configuración da árbore de reloxos, unha calculadora de consumo de enerxía e a utilidade que realiza a configuración de periféricos MCU (como GPIO ou USART).
  2. Xera o código C de inicialización en función da configuración seleccionada. Este código está listo para usar en varios ambientes de desenvolvemento. O código de usuario gárdase na seguinte xeración de código.
    Para obter máis información sobre STM32CubeMX, consulte o manual de usuario STM32CubeMX para a xeración de código C de configuración e inicialización de STM32 (UM1718).

Aplicacións de controladores

Aplicación HAL
Esta sección describe os pasos necesarios para crear unha aplicación HAL personalizada mediante STM32CubeWL3:

  1. Crear un proxecto
    Para crear un novo proxecto, inicie dende o proxecto Modelo proporcionado para cada placa en \Proxectos\< STM32xxx_yyy>\Modelos ou desde calquera proxecto dispoñible en \Proxectos\ \Exampl es ou \Proxectos\ \Aplicacións (onde fai referencia ao nome do consello). O proxecto Template ofrece unha función de bucle principal baleira. Non obstante, é un bo punto de partida para comprender a configuración do proxecto STM32CubeWL32. O modelo ten as seguintes características:
    • Contén o código fonte HAL, os controladores CMSIS e BSP, que son o conxunto mínimo de compoñentes necesarios para desenvolver un código nunha placa determinada.
    • Contén os camiños incluídos para todos os compoñentes do firmware.
    • Define os dispositivos da liña de produtos STM32WL3x compatibles, permitindo que os controladores CMSIS e HAL se configuren correctamente.
    • Ofrece ao usuario listo para usar fileestá preconfigurado como se mostra a continuación:
    • HAL inicializouse coa base de tempo predeterminada co SysTick central Arm®.
    • SysTick ISR implementado para HAL_Delay().
      Nota: ao copiar un proxecto existente noutra localización, asegúrate de que todos os camiños incluídos estean actualizados.
  2. Configure os compoñentes do firmware
    Os compoñentes HAL e middleware ofrecen un conxunto de opcións de configuración en tempo de compilación mediante macros #define declaradas nunha cabeceira file. Unha configuración de modelo file se proporciona dentro de cada compoñente, que debe ser copiado no cartafol do proxecto (normalmente a configuración file chámase xxx_conf_template.h, o fragmento _template debe eliminarse ao copialo no cartafol do proxecto). A configuración file proporciona información suficiente para comprender o impacto de cada opción de configuración. A información máis detallada está dispoñible na documentación proporcionada para cada compoñente.
  3. Inicia a biblioteca HAL
    Despois de saltar ao programa principal, o código da aplicación debe chamar á API HAL_Init() para inicializar a biblioteca HAL, que leva a cabo as seguintes tarefas:
    • Configuración da captura previa da memoria flash e da prioridade de interrupción de SysTick (a través de macros definidas en stm3 2wl3x_hal_conf.h).
    •  Configuración do SysTick para xerar unha interrupción cada milisegundo na prioridade de interrupción SysTick TICK_INT_PRIO definida en stm32wl3x_hal_conf.h.
    • Configuración da prioridade do grupo NVIC en 0.
    • Chamada á función de devolución de chamada HAL_MspInit() definida no usuario stm32wl3x_hal_msp.c file para realizar inicializacións de hardware de baixo nivel global.
  4. Configura o reloxo do sistema
    A configuración do reloxo do sistema realízase chamando ás dúas API descritas a continuación:
    • HAL_RCC_OscConfig(): esta API configura os osciladores internos e externos. O usuario elixe configurar un ou todos os osciladores.
    • HAL_RCC_ClockConfig(): esta API configura a fonte do reloxo do sistema, a latencia da memoria flash e os preescaladores AHB e APB.
  5. Inicializa o periférico
    •  Primeiro escriba a función de inicialización do periférico. Proceda do seguinte xeito:
    • Activa o reloxo periférico.
    • Configurar os GPIO periféricos.
    • Configure a canle DMA e active a interrupción DMA (se é necesario).
    • Activa a interrupción do periférico (se é necesario).
    • Edite o stm32xxx_it.c para chamar aos controladores de interrupcións necesarios (periférico e DMA), se é necesario.
    •  Escriba as funcións de devolución de chamada completas do proceso se se pretende utilizar unha interrupción periférica ou DMA.
    •  No usuario principal.c file, inicialice a estrutura do controlador periférico e logo chame á función de inicialización do periférico para inicializar o periférico.
  6. Desenvolver unha aplicación
    Neste stage, o sistema está listo e pode comezar o desenvolvemento do código da aplicación de usuario.
    O HAL ofrece API intuitivas e listas para usar para configurar o periférico. Admite sondaxes, interrupcións e un modelo de programación DMA, para acomodar calquera requisito da aplicación. Para obter máis detalles sobre como usar cada periférico, consulte o exampconxunto de ficheiros proporcionado no paquete MCU STM32CubeWL3.

Atención:
Na implementación HAL predeterminada, o temporizador SysTick úsase como base de tempo: xera interrupcións a intervalos de tempo regulares. Se se chama HAL_Delay() desde o proceso ISR periférico, asegúrese de que a interrupción SysTick teña unha prioridade máis alta (numericamente máis baixa) que a interrupción periférica. En caso contrario, o proceso ISR da chamada é
bloqueado. As funcións que afectan ás configuracións da base de tempo decláranse como __débiles para facer posible a substitución no caso de outras implementacións no usuario file (usando un temporizador de propósito xeral, por exemploample ou outra fonte temporal).
Para obter máis detalles, consulte HAL_TimeBase example.

Aplicación LL
Esta sección describe os pasos necesarios para crear unha aplicación LL personalizada usando STM32CubeWL3.

  1. Crear un proxecto
    Para crear un novo proxecto, inicie desde o proxecto Templates_LL proporcionado para cada taboleiro en \Proxectos\ \Templates_LL ou desde calquera proxecto dispoñible en \Proxectos\ \E xamples_LL ( fai referencia ao nome da placa, como NUCLEO-WL32CC33).
    O proxecto modelo ofrece unha función de bucle principal baleiro, que é un bo punto de partida para comprender a configuración do proxecto para STM32CubeWL3. As principais características do modelo son as seguintes:
    • Contén os códigos fonte dos controladores LL e CMSIS, que son o conxunto mínimo de compoñentes necesarios para desenvolver o código nunha placa determinada.
    • Contén os camiños incluídos para todos os compoñentes de firmware necesarios.
    • Selecciona o dispositivo da liña de produtos STM32WL3x compatible e permite a configuración correcta dos controladores CMSIS e LL.
    • Ofrece ao usuario listo para o seu uso files que están preconfigurados do seguinte xeito:
    • main.h: capa de abstracción de definición de LED e USER_BUTTON.
    • main.c: configuración do reloxo do sistema para a frecuencia máxima.
  2. Porta o LL exampLe:
    • Copie/pegue o cartafol Templates_LL (para manter a fonte inicial) ou actualice directamente un proxecto Templa tes_LL existente.
    • Despois, a portabilidade consiste principalmente en substituír Templates_LL files polo Exampproxecto dirixido a les_LL.
    • Manteña todas as partes específicas da placa. Por razóns de claridade, as partes específicas do taboleiro están marcadas con específicas tags:
      Paquete de software STM32WL3x (1)

Así, os principais pasos de portabilidade son os seguintes:

  • Substitúe o ficheiro stm32wl3x_it.h file.
  • Substitúe o ficheiro stm32wl3x_it.c file.
  • Substitúe o principal.h file e actualízao: mantén a definición do LED e do botón de usuario do modelo LL en CONFIGURACIÓN ESPECÍFICA DA PLACA tags.
  • Substitúe o principal.c file e actualízao:
  • Mantén a configuración do reloxo da función de modelo SystemClock_Config() LL en CONFIGURACIÓN ESPECÍFICA DA PLACA tags.
  • Dependendo da definición do LED, substitúe cada aparición de LDx por outro LDy dispoñible no file principal.h.

Con estas modificacións, o example execútase no taboleiro de destino.

Aplicacións de RF, demostracións e examples
Diferentes tipos de aplicacións de RF, demostracións e exampos ficheiros están dispoñibles no paquete STM32CubeWL3. Enuméranse nas dúas seccións a continuación.

Sub-GHz examples e demostracións
Estes exampmostran as principais características dos periféricos de radio MRSUBG e LPAWUR. Estes exampos ficheiros están dispoñibles en:

  • Proxectos\NUCLEO-WL33CC\Examples\MRSUBG
  • Proxectos\NUCLEO-WL33CC\Examples\LPAWUR
  • Proxectos\NUCLEO-WL33CC\Demostracións\MRSUBG
  • Proxectos\NUCLEO-WL33CC\Demostracións\LPAWUR

Cada exampO ficheiro ou demostración consiste xeralmente en dous programas chamados Tx e Rx que actúan como transmisor e receptor, respectivamente:

  • Examples/MRSUBG
    • MRSUBG_802_15_4: unha implementación da capa física definida pola norma 802.15.4. Mostra como configurar a radio para transmitir ou recibir paquetes 802.15.4.
    • MRSUBG_BasicGeneric: un intercambio de paquetes básicos STM32WL3x MR_SUBG.
    • MRSUBG_Chat: unha aplicación sinxela que mostra como usar Tx e Rx no mesmo dispositivo.
    • MRSUBG_DatabufferHandler: un exampque mostra como intercambiar desde Databuffer 0 e 1.
    • MRSUBG_Sequencer AutoAck: un examplieiro que transmite e recibe acuse de recibo de paquetes (ACK) automaticamente.
    • MRSUBG_WMBusSTD: un intercambio de mensaxes WM-Bus.
    • WakeupRadio: un example para probar o periférico de radio LPAWUR.
  • Manifestacións/MRSUBG
    • MRSUBG_RTC_Button_TX: Este example mostra como configurar o SoC en modo de parada profunda e configurar o MRSUBG para espertar o SoC premendo PB2 para enviar un cadro ou despois da expiración do temporizador RTC.
    • MRSUBG_Sequencer_Sniff: Este example mostra como configurar o secuenciador MRSUBG para que funcione no modo sniff. Este example demostra o lado do receptor e require outro dispositivo como transmisor.
    • MRSUBG_Timer: a aplicación programa varias instancias do temporizador MRSUBG (con carga automática) con diferentes intervalos de tempo.
    • MRSUBG_WakeupRadio_Tx: este example explica como configurar o SoC en modo de parada profunda e configurar o MRSUBG para espertar o SoC premendo PB2 para enviar un cadro. Este example mostra o lado do transmisor e require outro dispositivo como receptor LPAWUR. O receptor example atópase no cartafol NUCLEO-WL33CC\Demonstrations\LPAWUR\LPAWUR_WakeupRad io_Rx.
  • Manifestacións/LPAWUR
    • LPAWUR_WakeupRadio_Rx: Este example explica como configurar o SoC en modo de parada profunda e configurar o LPAWUR para espertar o SoC cando chega un fotograma e se recibe correctamente. Este example demostra o lado do receptor e require outro dispositivo como transmisor. O transmisor example atópase no cartafol NUCLEO-WL33CC\Demonstrations\MRSUBG\MRSUBG_WakeupRad io_Tx.

Aplicación Sigfox™
Estas aplicacións mostran como implementar un escenario Sigfox™ e utilizar as API de Sigfox™ dispoñibles. Están dispoñibles na ruta do proxecto Projects\NUCLEO-WL33CC\Applications\Sigfox\:

  • Sigfox_CLI: esta aplicación mostra como usar unha interface de liña de comandos (CLI) para enviar comandos que utilizan o protocolo Sigfox™ para enviar mensaxes e realizar probas de precertificación.
  • Sigfox_PushButton: esta aplicación permite a avaliación das capacidades de radio do dispositivo Sigfox™ STM32WL33xx. Premendo PB1 transmite un cadro Sigfox™ de proba.

FAQ

  1. Cando debo usar HAL en lugar dos controladores LL?
    Os controladores HAL ofrecen API de alto nivel e orientadas a funcións, cun alto nivel de portabilidade. A complexidade do produto ou do periférico está oculta para os usuarios finais.
    Os controladores LL ofrecen API de nivel de rexistro de capa baixa, cunha mellor optimización pero menos portátil. Requiren un coñecemento profundo das especificacións do produto ou IP.
  2. Pódense usar os controladores HAL e LL xuntos? En caso afirmativo, cales son as limitacións?
    É posible utilizar controladores HAL e LL. Use o HAL para a fase de inicialización de periféricos e, a continuación, xestione as operacións de E/S con controladores LL.
    A principal diferenza entre HAL e LL é que os controladores HAL requiren crear e usar identificadores para a xestión de operacións mentres que os controladores LL operan directamente en rexistros periféricos. A mestura de HAL e LL está ilustrada no Examples_MIX examples.
  3. Como se activan as API de inicialización de LL?
    A definición das API de inicialización de LL e os recursos asociados (estruturas, literais e prototipos) está condicionada polo interruptor de compilación USE_FULL_LL_DRIVER.
    Para poder usar as API de inicialización de LL, engade este interruptor no preprocesador do compilador da cadea de ferramentas.
  4. Existe algún modelo de proxecto para o periférico MRSUBG/LPAWUR, por exemploamples?
    Para crear un novo MRSUBG ou LPAWUR por exemploample proxecto, pode comezar a partir do proxecto esqueleto proporcionado en \Pr ojects\NUCLEO-WL33CC\Examples\MRSUBG ou \Proxectos\NUCLEO-WL33CC\Examples\LPAWUR, ou desde calquera proxecto dispoñible nestes mesmos directorios.
  5. Como pode STM32CubeMX xerar código baseado en software incorporado?
    STM32CubeMX ten un coñecemento incorporado dos microcontroladores STM32, incluíndo os seus periféricos e software, o que lle permite proporcionar unha representación gráfica ao usuario e xerar *.h ou *.c files en función da configuración do usuario.

Historial de revisións

Táboa 3. Historial de revisións de documentos

Data Revisión Cambios
29-mar-2024 1 Lanzamento inicial.
30-outubro-2024 2 Integración total de STM32CubeWL3 in Cubo STM32. Actualizado:

Eliminado:

  • Ferramentas de PC, incluíndo Navegador, STM32WL3 GUI, e GUI do secuenciador MR-SUBG
  • Como pode WiSE-Studio IOMapper xerar código baseado en software incorporado?
  • O navegador permite o acceso aos recursos do paquete de software?

Documentos/Recursos

Paquete de software ST STM32WL3x [pdfInstrucións
Paquete de software STM32WL3x, STM32WL3x, Paquete de software, Paquete

Referencias

Deixa un comentario

O teu enderezo de correo electrónico non será publicado. Os campos obrigatorios están marcados *