Nothing Special   »   [go: up one dir, main page]

STM32WL3x-loigo

Pachetul software STM32WL3x

STM32WL3x-Pachet-Software-PRODCUCT

Specificații

  • Nume produs: pachet software STM32CubeWL3
  • Compatibilitate: microcontrolere STM32WL3x
  • Caracteristici principale:
    • API-uri low-layer (LL) și hardware abstraction layer (HAL).
    • Componentele middleware ale nucleului SigfoxTM, FatFS și FreeRTOSTM
    • Aplicații și demonstrații

Instrucțiuni de utilizare a produsului

Noțiuni de bază
Pentru a începe să utilizați pachetul software STM32CubeWL3, urmați acești pași:

  1. Descărcați pachetul software de la oficial website-ul.
  2. Instalați mediul de dezvoltare necesar (de exemplu, STM32CubeIDE, EWARM, MDK-ARM).
  3. Consultați exampfișiere și aplicații furnizate pentru îndrumare.

STM32CubeWL3 Architecture Overview
Pachetul software STM32CubeWL3 este construit în jurul a trei niveluri principale

  • Nivelul 0: Stratul de abstractizare hardware (HAL) și driverele BSP.
  • Nivelul 1: Aplicații, biblioteci și componente bazate pe protocol.

Întrebări frecvente (FAQ)

Î: Care sunt principalele caracteristici ale pachetului software STM32CubeWL3?
R: Principalele caracteristici includ API-uri low-layer și HAL, componente middleware precum SigfoxTM, FatFS, kernel FreeRTOSTM, aplicații și demonstrații.

Introducere

STM32Cube este o inițiativă originală STMicroelectronics de îmbunătățire semnificativă a productivității designerilor prin reducerea efortului, timpului și costurilor de dezvoltare. STM32Cube acoperă întregul portofoliu STM32.

STM32Cube include:

  • Un set de instrumente de dezvoltare software ușor de utilizat pentru a acoperi dezvoltarea proiectelor de la concepție până la realizare, printre care se numără:
    • STM32CubeMX, un instrument de configurare software grafic care permite generarea automată a codului de inițializare C folosind vrăjitori grafici
    • STM32CubeIDE, un instrument de dezvoltare all-in-one cu configurație periferică, generare de cod, compilare de cod și caracteristici de depanare
    • STM32CubeCLT, un set de instrumente de dezvoltare cu linie de comandă all-in-one cu compilare de cod, programare pe placă și caracteristici de depanare
    • STM32CubeProgrammer (STM32CubeProg), un instrument de programare disponibil în versiuni grafice și de linie de comandă
    • STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), instrumente puternice de monitorizare pentru reglarea fină a comportamentului și performanței aplicațiilor STM32 în timp real
  • Pachete MCU și MPU STM32Cube, platforme cuprinzătoare de software încorporat specifice fiecărei serii de microcontrolere și microprocesoare (cum ar fi STM32CubeWL3 pentru linia de produse STM32WL3x), care includ:
    • Stratul de abstractizare hardware (HAL) STM32Cube, asigurând portabilitate maximizată în portofoliul STM32
    • API-uri STM32Cube low-layer, asigurând cea mai bună performanță și amprentă cu un grad ridicat de control al utilizatorului asupra hardware-ului
    • Un set consistent de componente middleware, cum ar fi nucleul FreeRTOS™, FatFS și Sigfox™
    • Toate utilitățile software încorporate cu seturi complete de periferice și aplicative de examples
  • Pachetele de extindere STM32Cube, care conțin componente software încorporate care completează funcționalitățile pachetelor MCU și MPU STM32Cube cu:
    • Extensii middleware și straturi aplicative
    • Exampfișiere care rulează pe anumite plăci de dezvoltare STMicroelectronics

Acest manual de utilizare descrie cum să începeți cu pachetul MCU STM32CubeWL3.
Secțiunea 2 descrie principalele caracteristici ale STM32CubeWL3, iar Secțiunea 3 oferă o depășireview a arhitecturii sale și a structurii pachetului MCU.

Informații generale

STM32CubeWL3 rulează aplicații demonstrative sub-GHz, inclusiv binare Sigfox™, pe microcontrolere din linia de produse STM32WL3x bazate pe procesorul Arm® Cortex®‑M0+.
Microcontrolerele STM32WL3x încorporează perifericul radio RF de ultimă generație de la STMicroelectronics, compatibil sub-GHz, optimizat pentru un consum de energie ultra-scăzut și performanță radio excelentă, pentru o durată de viață de neegalat a bateriei.
Nota: Arm este o marcă înregistrată a Arm Limited (sau a filialelor sale) în SUA și/sau în altă parte.

Principalele caracteristici ale STM32CubeWL3

  • Pachetul MCU STM32CubeWL3 rulează pe microcontrolere STM32 pe 32 de biți bazate pe procesorul Arm® Cortex®‑M0+. Acesta reunește, într-un singur pachet, toate componentele software încorporate generice necesare dezvoltării unei aplicații pentru microcontrolerele din linia de produse STM32WL3x.
  • Pachetul include API-uri low-layer (LL) și hardware abstraction layer (HAL) care acoperă hardware-ul microcontrolerului, împreună cu un set extins de ex.ampfișierele care rulează pe plăci STMicroelectronics. API-urile HAL și LL sunt disponibile într-o licență BSD open-source pentru confortul utilizatorului. Include, de asemenea, componentele middleware ale nucleului Sigfox™, FatFS și FreeRTOS™.
  • Pachetul MCU STM32CubeWL3 oferă, de asemenea, mai multe aplicații și demonstrații care implementează toate componentele sale middleware.
  • Aspectul componentelor pachetului MCU STM32CubeWL3 este ilustrat în Figura 1.

Figura 1. Componentele pachetului MCU STM32CubeWL3 

STM32WL3x-Pachet-Software (2)

Arhitectura STM32CubeWL3 s-a terminatview

Soluția STM32CubeWL3 MCU Package este construită în jurul a trei niveluri independente care interacționează cu ușurință, așa cum este descris în Figura 2. STM32WL3x-Pachet-Software (3)Nivelul 0
Acest nivel este împărțit în trei substraturi:

  • Pachetul de suport pentru bord (BSP).
  • Stratul de abstractizare hardware (HAL):
    • Drivere periferice HAL
    • Drivere de nivel inferior
  • Utilizare periferică de bază examples.

Pachetul de suport pentru bord (BSP)
Acest strat oferă un set de API-uri legate de componentele hardware din plăcile hardware (cum ar fi LED-uri, butoane și drivere COM). Este compus din două părți:

  • componenta:
    Acesta este driverul relativ la dispozitivul extern de pe placă și nu la STM32. Driverul pentru componente oferă API-uri specifice componentelor externe ale driverului BSP și poate fi portabil pe orice altă placă.
  • Driver BSP:

Permite conectarea driverelor componente la o anumită placă și oferă un set de API-uri ușor de utilizat. Regula de numire API este BSP_FUNCT_Action().
Exampfișier: BSP_LED_Init(), BSP_LED_On()
BSP se bazează pe o arhitectură modulară care permite portarea ușoară pe orice hardware prin simpla implementare a rutinelor de nivel scăzut.

Stratul de abstractizare hardware (HAL) și stratul inferior (LL)
STM32CubeWL3 HAL și LL sunt complementare și acoperă o gamă largă de cerințe de aplicație:

  • Driverele HAL oferă API-uri extrem de portabile, de nivel înalt, orientate spre funcții. Ele ascund MCU și complexitatea periferică pentru utilizatorul final.
    Driverele HAL furnizează API-uri generice orientate spre funcții multi-instanțe, care simplifică implementarea aplicației utilizator prin furnizarea de procese gata de utilizare. De example, pentru perifericele de comunicație (I2C, UART și altele), oferă API-uri care permit inițializarea și configurarea perifericului, gestionarea transferului de date pe baza procesului de interogare, întrerupere sau DMA și gestionarea erorilor de comunicare care pot apărea în timpul comunicării. API-urile driverului HAL sunt împărțite în două categorii:
  1. API-uri generice, care oferă funcții comune și generice tuturor microcontrolerelor din seria STM32.
  2. API-uri de extensie, care oferă funcții specifice și personalizate pentru o anumită familie sau un anumit număr de piesă.
  • API-urile de nivel inferior oferă API-uri de nivel scăzut la nivel de registru, cu o optimizare mai bună, dar mai puțină portabilitate. Acestea necesită o cunoaștere profundă a MCU și a specificațiilor periferice.
    Driverele LL sunt proiectate pentru a oferi un strat rapid și ușor orientat către experți, care este mai aproape de hardware decât HAL. Spre deosebire de HAL, API-urile LL nu sunt furnizate pentru periferice unde accesul optimizat nu este o caracteristică cheie sau pentru cele care necesită o configurație de software grea sau o stivă complexă de nivel superior.

Caracteristicile driverelor LL:

  • Un set de funcții pentru a inițializa caracteristicile principale ale perifericelor în funcție de parametrii specificați în structurile de date.
  • Un set de funcții pentru a completa structurile de date de inițializare cu valorile de resetare corespunzătoare fiecărui câmp.
  • Funcție pentru dezinițializare periferică (registrele periferice restaurate la valorile implicite).
  • Un set de funcții inline pentru acces direct și la registrul atomic.
  • Independență deplină față de HAL și capacitatea de a fi utilizat în modul de sine stătător (fără drivere HAL).
  • Acoperire completă a caracteristicilor periferice acceptate.

Utilizare periferică de bază examples
Acest strat cuprinde exampfișierele construite peste perifericele STM32 folosind doar resursele HAL și BSP.
Demonstratie exampfișierele sunt, de asemenea, disponibile pentru a afișa exampscenarii cu periferice specifice, cum ar fi MRSUBG și LPAWUR.

Nivelul 1
Acest nivel este împărțit în două substraturi:

  • Componente middleware
  • Exampfișiere bazate pe componentele middleware

Componente middleware
Middleware-ul este un set de biblioteci care acoperă biblioteca de protocoale FreeRTOS™, FatFS și Sigfox™. Interacțiunea orizontală între componentele acestui strat se realizează prin apelarea API-urilor prezentate.
Interacțiunea verticală cu driverele de nivel inferior se realizează prin apeluri specifice și macro-uri statice implementate în interfața de apelare a sistemului de bibliotecă.
Principalele caracteristici ale fiecărei componente middleware sunt următoarele:

  • Nucleul FreeRTOS™: implementează un sistem de operare în timp real (RTOS), conceput pentru sisteme încorporate.
  • Sigfox™: implementează biblioteca de protocoale Sigfox™ compatibilă cu rețeaua de protocol Sigfox™ și include biblioteca de protocoale de testare RF pentru a testa împotriva instrumentelor RF Sigfox™.
  • FatFS: implementează FAT generic file modul de sistem.

Exampfișiere bazate pe componentele middleware
Fiecare componentă middleware vine cu unul sau mai multe exampfișiere, numite și aplicații, care arată cum să le folosească. Integrare exampDe asemenea, sunt furnizate fișiere care utilizează mai multe componente middleware.

Pachetul firmware STM32CubeWL3 s-a terminatview

Dispozitive și hardware STM32WL3x acceptate
STM32Cube oferă un strat de abstractizare hardware (HAL) extrem de portabil, construit în jurul unei arhitecturi generice. Permite principiul build-on-layers, cum ar fi utilizarea stratului middleware pentru a-și implementa funcțiile fără a ști, în profunzime, ce MCU este utilizat. Acest lucru îmbunătățește reutilizarea codului de bibliotecă și asigură o portabilitate ușoară pe alte dispozitive.

  • În plus, cu arhitectura sa stratificată, STM32CubeWL3 oferă suport complet pentru întreaga linie de produse STM32WL3x.
  • Utilizatorul trebuie să definească doar macro-ul potrivit în stm32wl3x.h.

Tabelul 1 arată macro-ul de definit în funcție de dispozitivul din linia de produse STM32WL3x utilizat. Această macrocomandă trebuie definită și în preprocesorul compilatorului.
Tabelul 1. Macrocomenzi pentru linia de produse STM32WL3x

Macro definită în stm32wl3x.h Dispozitive din linia de produse STM32WL3x
stm32wl33 Microcontrolere STM32WL33xx

STM32CubeWL3 dispune de un set bogat de exampfișiere și aplicații la toate nivelurile, facilitând înțelegerea și utilizarea oricărui driver HAL sau componente middleware. Aceste exampfișierele rulează pe plăcile STMicroelectronics enumerate în Tabelul 2.

Bord Dispozitive suportate de placa STM32WL3x
NUCLEO-WL33CC1 STM32WL33CC
NUCLEO-WL33CC2 STM32WL33CC

Pachetul MCU STM32CubeWL3 poate rula pe orice hardware compatibil. Utilizatorii pur și simplu actualizează driverele BSP pentru a porta exampfișierele de pe plăcile lor, dacă acestea au aceleași caracteristici hardware (cum ar fi LED-uri sau butoane).

Pachetul de firmware s-a terminatview
Soluția STM32CubeWL3 MCU Package este furnizată într-un singur pachet zip având structura prezentată în Figura 3.
Figura 3. Structura pachetului de firmware STM32CubeWL3

STM32WL3x-Pachet-Software (4)

Atenţie:

Utilizatorul nu trebuie să modifice componentele files. Utilizatorul poate edita doar sursele \Projects.
Pentru fiecare tabla, un set de exampfișierul este furnizat cu proiecte preconfigurate pentru lanțurile de instrumente EWARM, MDK-ARM și STM32CubeIDE.
Figura 4 prezintă structura proiectului pentru plăcile NUCLEO-WL33CCx. STM32WL3x-Pachet-Software (5)

Exampfișierele sunt clasificate în funcție de nivelul STM32CubeWL3 la care se aplică. Ele sunt denumite după cum urmează:

  • Nivelul 0 exampse numesc Examples, Examples_LL și Examples_MIX. Ei folosesc, respectiv, drivere HAL, drivere LL și o combinație de drivere HAL și LL fără nicio componentă middleware. Demonstratie exampsunt de asemenea disponibile.
  • Nivelul 1 exampfișierele se numesc Aplicații. Acestea oferă cazuri de utilizare tipice pentru fiecare componentă middleware.

Orice aplicație de firmware pentru o anumită placă poate fi construită rapid folosind proiectele șabloane disponibile în directoarele Templ ates și Templates_LL.

Examples, Examples_LL și Examples_MIX au aceeași structură:

  • Dosarul \Inc care conține toate anteturile files.
  • \Src folder care conține codul sursă.
  • folderele \EWARM, \MDK-ARM și \STM32CubeIDE care conțin proiectul preconfigurat pentru fiecare lanț de instrumente.
  • readme.md și readme.html descriind exampcomportamentul și mediul necesar pentru ca acesta să funcționeze.

Noțiuni introductive cu STM32CubeWL3

Conducerea unui prim example
Această secțiune explică cât de simplu este să rulezi un prim example în STM32CubeWL3. Folosește ca ilustrație generarea unui comutator LED simplu care rulează pe placa NUCLEO-WL33CC1:

  1. Descărcați pachetul MCU STM32CubeWL3.
  2. Dezarhivați-l sau rulați programul de instalare, dacă este furnizat, într-un director la alegere.
  3. Asigurați-vă că nu modificați structura pachetului prezentată în Figura 3. Structura pachetului firmware STM32CubeWL3. Rețineți că este recomandat să copiați pachetul într-o locație apropiată de volumul rădăcină (adică C:\ST sau G:\Tests), deoarece unele IDE-uri întâmpină probleme atunci când calea este prea lungă.

Cum să rulezi un HAL example
Înainte de a încărca și de a rula un example, este recomandat să citiți example readme file pentru orice configurație specifică.

  1. Navigați la \Projects\NUCLEO-WL33CC\Examples.
  2. Deschideți folderele \GPIO, apoi \GPIO_EXTI.
  3. Deschideți proiectul cu lanțul de instrumente preferat. Un peste rapidview despre cum să deschideți, să construiți și să rulați un exampfișierul cu lanțurile de instrumente acceptate este prezentat mai jos.
  4. Reconstruiește totul files și încărcați imaginea în memoria țintă.
  5. Rulați example. Pentru mai multe detalii, consultați example readme file.

Pentru a deschide, a construi și a rula un exampcu fiecare dintre lanțurile de instrumente acceptate, urmați pașii de mai jos:

  • EWARM:
  1. Sub Exampfișiere, deschideți subdosarul \EWARM.
  2. Lansați spațiul de lucru Project.eww (numele spațiului de lucru se poate schimba de la unul de example la altul).
  3. Reconstruiește totul files: [Proiect]>[Reconstruiți toate].
  4. Încărcați imaginea proiectului: [Proiect]>[Debug].
  5. Rulați programul: [Debug]>[Go (F5)].
  • MDK-ARM:
  1. Sub Exampfișiere, deschideți subdosarul \MDK-ARM.
  2. Deschideți spațiul de lucru Project.uvproj (numele spațiului de lucru se poate schimba de la un example la altul).
  3. Reconstruiește totul files: [Proiect]>[Reconstruiți toată ținta files].
  4. Încărcați imaginea proiectului: [Debug]>[Start/Stop Debug Session].
  5. Rulați programul: [Debug]>[Run (F5)].
  • STM32CubeIDE:
  1. Deschideți lanțul de instrumente STM32CubeIDE.
  2. Click pe [File]>[Switch Workspace]>[Other] și răsfoiți la directorul STM32CubeIDE spațiu de lucru.
  3. Click pe [File]>[Import], selectați [General]>[Proiecte existente în spațiul de lucru], apoi faceți clic pe [Next].
  4. Navigați la directorul spațiului de lucru STM32CubeIDE și selectați proiectul.
  5. Reconstruiți tot proiectul files: Selectați proiectul în fereastra Project Explorer apoi faceți clic pe
    meniul [Proiect]>[Construire proiect].
  6.  Rulați programul: [Run]>[Debug (F11)].

Dezvoltarea unei aplicații personalizate

Utilizarea STM32CubeMX pentru a dezvolta sau actualiza o aplicație
În pachetul STM32Cube MCU, aproape toate proiectele de exampfișierele sunt generate cu instrumentul STM32CubeMX pentru a inițializa sistemul, perifericele și middleware-ul.

Utilizarea directă a unui proiect existent exampfișierul din instrumentul STM32CubeMX necesită STM32CubeMX 6.12.0 sau o versiune ulterioară:

  • După instalarea STM32CubeMX, deschideți și, dacă este necesar, actualizați un proiect propus.
    Cel mai simplu mod de a deschide un proiect existent este să faceți dublu clic pe *.ioc file astfel încât STM32CubeMX deschide automat proiectul și sursa acestuia files. STM32CubeMX generează codul sursă de inițializare a unor astfel de proiecte.
  • Codul sursă principal al aplicației este conținut de comentariile „USER CODE BEGIN” și „USER CODE END”. Dacă selecția și setările perifericelor sunt modificate, STM32CubeMX actualizează partea de inițializare a codului, păstrând în același timp codul sursă al aplicației principale.

Pentru a dezvolta un proiect personalizat cu STM32CubeMX, urmați procesul pas cu pas:

  1. Configurați tot software-ul încorporat necesar utilizând un rezolutor de conflicte de pinout, un ajutor de setare a arborelui ceasului, un calculator de consum de energie și utilitarul care realizează configurarea periferice MCU (cum ar fi GPIO sau USART).
  2. Generați codul C de inițializare pe baza configurației selectate. Acest cod este gata de utilizare în mai multe medii de dezvoltare. Codul utilizatorului este păstrat la următoarea generație de cod.
    Pentru mai multe informații despre STM32CubeMX, consultați manualul de utilizare STM32CubeMX pentru configurarea STM32 și generarea codului C de inițializare (UM1718).

Aplicații pentru drivere

Aplicația HAL
Această secțiune descrie pașii necesari pentru a crea o aplicație HAL personalizată folosind STM32CubeWL3:

  1. Creați un proiect
    Pentru a crea un nou proiect, începeți fie de la proiectul șablon furnizat pentru fiecare placă sub \Projects\< STM32xxx_yyy>\Templates, fie de la orice proiect disponibil sub \Projects\ \Exampl es sau \Proiecte\ \Aplicații (unde se referă la numele consiliului). Proiectul Template oferă o funcție de buclă principală goală. Cu toate acestea, este un bun punct de plecare pentru a înțelege setările proiectului STM32CubeWL32. Șablonul are următoarele caracteristici:
    • Conține codul sursă HAL, driverele CMSIS și BSP, care sunt setul minim de componente necesare pentru a dezvolta un cod pe o placă dată.
    • Conține căile incluse pentru toate componentele firmware-ului.
    • Acesta definește dispozitivele din linia de produse STM32WL3x acceptate, permițând configurarea corectă a driverelor CMSIS și HAL.
    • Oferă utilizatorului gata de utilizare fileeste preconfigurat după cum se arată mai jos:
    • HAL inițializat cu baza de timp implicită cu SysTick de bază Arm®.
    • SysTick ISR implementat în scopul HAL_Delay().
      Notă: Când copiați un proiect existent într-o altă locație, asigurați-vă că toate căile incluse sunt actualizate.
  2. Configurați componentele firmware-ului
    Componentele HAL și middleware oferă un set de opțiuni de configurare în timpul construirii folosind macrocomenzi #define declarate într-un antet file. O configurație de șablon file este furnizat în fiecare componentă, care trebuie copiată în folderul proiectului (de obicei configurația file se numește xxx_conf_template.h, fragmentul _template trebuie eliminat atunci când îl copiați în folderul proiectului). Configurația file oferă suficiente informații pentru a înțelege impactul fiecărei opțiuni de configurare. Informații mai detaliate sunt disponibile în documentația furnizată pentru fiecare componentă.
  3. Porniți biblioteca HAL
    După ce săriți la programul principal, codul aplicației trebuie să apeleze API-ul HAL_Init() pentru a inițializa biblioteca HAL, care efectuează următoarele sarcini:
    • Configurarea preluării memoriei flash și a priorității întreruperii SysTick (prin macro-urile definite în stm3 2wl3x_hal_conf.h).
    •  Configurarea SysTick pentru a genera o întrerupere la fiecare milisecundă la prioritatea de întrerupere SysTick TICK_INT_PRIO definită în stm32wl3x_hal_conf.h.
    • Setarea priorității grupului NVIC la 0.
    • Apelul funcției de apel invers HAL_MspInit() definit în utilizatorul stm32wl3x_hal_msp.c file pentru a efectua inițializari hardware globale de nivel scăzut.
  4. Configurați ceasul sistemului
    Configurarea ceasului sistemului se face apelând cele două API-uri descrise mai jos:
    • HAL_RCC_OscConfig(): acest API configurează oscilatorii interni și externi. Utilizatorul alege să configureze unul sau toate oscilatoarele.
    • HAL_RCC_ClockConfig(): acest API configurează sursa ceasului sistemului, latența memoriei flash și prescalerele AHB și APB.
  5. Inițializați perifericul
    •  Mai întâi scrieți funcția de inițializare periferică. Procedați după cum urmează:
    • Activați ceasul periferic.
    • Configurați GPIO-urile periferice.
    • Configurați canalul DMA și activați întreruperea DMA (dacă este necesar).
    • Activați întreruperea periferică (dacă este necesar).
    • Editați stm32xxx_it.c pentru a apela gestionatorii de întreruperi necesari (periferice și DMA), dacă este necesar.
    •  Scrieți funcțiile de apelare completă a procesului, dacă este menit să fie utilizat o întrerupere periferică sau DMA.
    •  În meniul utilizatorului.c file, inițializați structura mânerului periferic, apoi apelați funcția de inițializare periferică pentru a inițializa perifericul.
  6. Dezvoltați o aplicație
    La acest stage, sistemul este gata și dezvoltarea codului aplicației utilizator poate începe.
    HAL oferă API-uri intuitive și gata de utilizare pentru a configura perifericele. Acceptă sondarea, întreruperile și un model de programare DMA, pentru a se adapta oricăror cerințe ale aplicației. Pentru mai multe detalii despre cum să utilizați fiecare periferic, consultați exampsetul de fișiere furnizat în pachetul MCU STM32CubeWL3.

Atenţie:
În implementarea HAL implicită, cronometrul SysTick este folosit ca bază de timp: generează întreruperi la intervale de timp regulate. Dacă HAL_Delay() este apelat din procesul ISR periferic, asigurați-vă că întreruperea SysTick are o prioritate mai mare (mai mică numeric) decât întreruperea periferică. În caz contrar, procesul ISR apelantului este
blocat. Funcțiile care afectează configurațiile bazei de timp sunt declarate ca __slabe pentru a face posibilă înlocuirea în cazul altor implementări în utilizator file (folosind un temporizator de uz general, de example, sau altă sursă de timp).
Pentru mai multe detalii, consultați HAL_TimeBase example.

Aplicație LL
Această secțiune descrie pașii necesari pentru a crea o aplicație LL personalizată folosind STM32CubeWL3.

  1. Creați un proiect
    Pentru a crea un proiect nou, fie porniți de la proiectul Templates_LL furnizat pentru fiecare tablă sub \Proiecte\ \Templates_LL sau din orice proiect disponibil sub \Proiecte\ \E xamples_LL ( se referă la numele plăcii, cum ar fi NUCLEO-WL32CC33).
    Proiectul șablon oferă o funcție de buclă principală goală, care este un bun punct de plecare pentru a înțelege setările proiectului pentru STM32CubeWL3. Principalele caracteristici ale șablonului sunt următoarele:
    • Conține codurile sursă ale driverelor LL și CMSIS, care reprezintă setul minim de componente necesare pentru a dezvolta codul pe o placă dată.
    • Conține căile incluse pentru toate componentele firmware necesare.
    • Selectează dispozitivul de linie de produse STM32WL3x acceptat și permite configurarea corectă a driverelor CMSIS și LL.
    • Oferă utilizatorului gata de utilizare files care sunt preconfigurate după cum urmează:
    • main.h: Stratul de abstractizare definiție LED și USER_BUTTON.
    • main.c: Configurarea ceasului de sistem pentru frecvența maximă.
  2. Port LL examppe:
    • Copiați/lipiți folderul Templates_LL – pentru a păstra sursa inițială – sau actualizați direct un proiect Templates_LL existent.
    • Apoi, portarea constă în principal în înlocuirea Templates_LL files de către Exampproiect vizat les_LL.
    • Păstrați toate piesele specifice plăcii. Din motive de claritate, părțile specifice plăcii sunt marcate cu specific tags:
      STM32WL3x-Pachet-Software (1)

Astfel, pașii principali de portare sunt următorii:

  • Înlocuiți stm32wl3x_it.h file.
  • Înlocuiți stm32wl3x_it.c file.
  • Înlocuiți principalul.h file și actualizați-l: păstrați definiția LED-ului și a butonului utilizator a șablonului LL în CONFIGURARE SPECIFĂ A PLACULUI tags.
  • Înlocuiți principal.c file și actualizați-l:
  • Păstrați configurația ceasului a funcției de șablon SystemClock_Config() LL în CONFIGURARE SPECIFĂ DE PLACĂ tags.
  • În funcție de definiția LED-ului, înlocuiți fiecare apariție LDx cu un alt LDy disponibil în file principal.h.

Cu aceste modificări, example rulează pe placa vizată.

Aplicații RF, demonstrații și examples
Diferite tipuri de aplicații RF, demonstrații și exampfișierele sunt disponibile în pachetul STM32CubeWL3. Ele sunt enumerate în cele două secțiuni de mai jos.

Sub-GHz example şi demonstraţii
Aceste example-urile demonstrează principalele caracteristici ale perifericelor radio MRSUBG și LPAWUR. Aceste exampfișierele sunt disponibile sub:

  • Proiecte\NUCLEO-WL33CC\Examples\MRSUBG
  • Proiecte\NUCLEO-WL33CC\Examples\LPAWUR
  • Proiecte\NUCLEO-WL33CC\Demonstrations\MRSUBG
  • Proiecte\NUCLEO-WL33CC\Demonstrations\LPAWUR

Fiecare exampfișierul sau demonstrația constă în general din două programe numite Tx și Rx care acționează ca emițător și respectiv receptor:

  • Examples/MRSUBG
    • MRSUBG_802_15_4: o implementare a stratului fizic definit de standardul 802.15.4. Acesta arată cum să configurați radioul să transmită sau să primească pachete 802.15.4.
    • MRSUBG_BasicGeneric: Un schimb de pachete de bază STM32WL3x MR_SUBG.
    • MRSUBG_Chat: O aplicație simplă care arată cum să utilizați Tx și Rx pe același dispozitiv.
    • MRSUBG_DatabufferHandler: Un exampfișierul care arată cum să schimbați din Databuffer 0 și 1.
    • MRSUBG_Sequencer AutoAck: Un exampchiul care transmite și primește confirmări de pachete (ACK) automat.
    • MRSUBG_WMBusSTD: Un schimb de mesaje WM-Bus.
    • WakeupRadio: Un example pentru a testa perifericul radio LPAWUR.
  • Demonstrații/MRSUBG
    • MRSUBG_RTC_Button_TX: Acest exampfișierul arată cum să setați SoC în modul deep-stop și să configurați MRSUBG pentru a activa SoC apăsând PB2 pentru a trimite un cadru sau după expirarea temporizatorului RTC.
    • MRSUBG_Sequencer_Sniff: Acest exampfișierul arată cum să setați secvențatorul MRSUBG să funcționeze în modul sniff. Acest example demonstrează partea receptorului și necesită un alt dispozitiv ca transmițător.
    • MRSUBG_Timer: Aplicația programează mai multe instanțe ale temporizatorului MRSUBG (cu încărcare automată) cu intervale de timp diferite.
    • MRSUBG_WakeupRadio_Tx: Acest example explică cum să setați SoC în modul de oprire profundă și să configurați MRSUBG pentru a activa SoC apăsând PB2 pentru a trimite un cadru. Acest example demonstrează partea transmițătorului și necesită un alt dispozitiv ca receptor LPAWUR. Receptorul exampfișierul se află în folderul NUCLEO-WL33CC\Demonstrations\LPAWUR\LPAWUR_WakeupRad io_Rx.
  • Demonstraţii/LPAWUR
    • LPAWUR_WakeupRadio_Rx: Acest example explică cum să setați SoC-ul în modul deep-stop și să configurați LPAWUR pentru a activa SoC-ul când sosește un cadru și este recepționat corect. Acest example demonstrează partea receptorului și necesită un alt dispozitiv ca transmițător. Transmițătorul exampfișierul se află în folderul NUCLEO-WL33CC\Demonstrations\MRSUBG\MRSUBG_WakeupRad io_Tx.

Aplicația Sigfox™
Aceste aplicații arată cum să implementați un scenariu Sigfox™ și să utilizați API-urile Sigfox™ disponibile. Sunt disponibile în calea proiectului Projects\NUCLEO-WL33CC\Applications\Sigfox\:

  • Sigfox_CLI: Această aplicație arată cum să utilizați o interfață de linie de comandă (CLI) pentru a trimite comenzi care utilizează protocolul Sigfox™ pentru a trimite mesaje și a efectua teste de precertificare.
  • Sigfox_PushButton: Această aplicație permite evaluarea capabilităților radio ale dispozitivului STM32WL33xx Sigfox™. Apăsarea PB1 transmite un cadru Sigfox™ de testare.

FAQ

  1. Când ar trebui să folosesc driverele HAL în loc de LL?
    Driverele HAL oferă API-uri de nivel înalt și orientate spre funcție, cu un nivel ridicat de portabilitate. Complexitatea produsului sau periferică este ascunsă pentru utilizatorii finali.
    Driverele LL oferă API-uri la nivel de registru de nivel inferior, cu o optimizare mai bună, dar mai puțin portabile. Acestea necesită cunoștințe aprofundate ale produsului sau ale specificațiilor IP.
  2. Driverele HAL și LL pot fi utilizate împreună? Dacă da, care sunt constrângerile?
    Este posibil să utilizați atât driverele HAL, cât și LL. Utilizați HAL pentru faza de inițializare periferică și apoi gestionați operațiunile I/O cu driverele LL.
    Diferența majoră dintre HAL și LL este că driverele HAL necesită să creeze și să utilizeze mânere pentru gestionarea operațiunilor, în timp ce driverele LL operează direct pe registrele periferice. Amestecarea HAL și LL este ilustrată în Examples_MIX examples.
  3. Cum sunt activate API-urile de inițializare LL?
    Definiția API-urilor de inițializare LL și a resurselor asociate (structuri, literale și prototipuri) este condiționată de comutatorul de compilare USE_FULL_LL_DRIVER.
    Pentru a putea folosi API-urile de inițializare LL, adăugați acest comutator în preprocesorul compilatorului lanțului de instrumente.
  4. Există vreun proiect șablon pentru ex. periferice MRSUBG/LPAWURamples?
    Pentru a crea un nou MRSUBG sau LPAWUR example proiect, fie porniți de la proiectul schelet furnizat în \Pr ojects\NUCLEO-WL33CC\Examples\MRSUBG sau \Projects\NUCLEO-WL33CC\Examples\LPAWUR, sau din orice proiect disponibil în aceleași directoare.
  5. Cum poate STM32CubeMX să genereze cod pe baza software-ului încorporat?
    STM32CubeMX are cunoștințe încorporate despre microcontrolerele STM32, inclusiv despre perifericele și software-ul acestora, ceea ce îi permite să ofere o reprezentare grafică utilizatorului și să genereze *.h sau *.c filese bazează pe configurația utilizatorului.

Istoricul reviziilor

Tabelul 3. Istoricul revizuirilor documentului

Data Revizuire Schimbări
29-mar-2024 1 Lansare inițială.
30-oct-2024 2 Integrarea completă a STM32CubeWL3 in STM32Cube. Actualizat:

Îndepărtat:

  • Instrumente PC, inclusiv Navigator, STM32WL3 GUI, și GUI MR-SUBG Sequencer
  • Cum poate WiSE-Studio IOMapper să genereze cod bazat pe software încorporat?
  • Navigator permite accesul la resursele pachetului software?

Documente/Resurse

Pachetul software ST STM32WL3x [pdf] Instrucțiuni
Pachet software STM32WL3x, STM32WL3x, pachet software, pachet

Referințe

Lasă un comentariu

Adresa ta de e-mail nu va fi publicată. Câmpurile obligatorii sunt marcate *