ST-LOGO

STM32WL3x mikrokontroleri

STM32WL3x-Mikrokontroleri-PROIZVOD

Upute za upotrebu proizvoda

  • STM32CubeWL3 paket uključuje API-je niskog sloja (LL) i sloja apstrakcije hardvera (HAL) koji pokrivaju hardver mikrokontrolera.
  • Takođe pruža međuverske komponente kao što su SigfoxTM, FatFS i FreeRTOS kernel.
  • Paket dolazi sa exampdatoteke i aplikacije za laku implementaciju.
  • Arhitektura STM32CubeWL3 je izgrađena oko tri nivoa: aplikacije, HAL i LL.
  • HAL i LL API pokrivaju širok spektar zahtjeva aplikacija.
  • HAL nudi osnovnu perifernu upotrebu npramples, a LL pruža rutine niskog nivoa.
  • Ovaj nivo uključuje paket podrške za ploču (BSP) i HAL podslojeve.
  • BSP nudi API-je za hardverske komponente na pločama, dok HAL pruža osnovnu upotrebu periferije, npramples.
  • BSP drajveri povezuju drajvere komponenti sa određenim pločama, što olakšava prenos na drugi hardver.
  • STM32CubeWL3 HAL i LL su komplementarni, pokrivajući širok spektar zahtjeva primjene.
  • Korisnici mogu iskoristiti ove API-je za efikasnu interakciju sa hardverom mikrokontrolera.

Uvod

STM32Cube je originalna inicijativa STMicroelectronics za značajno poboljšanje produktivnosti dizajnera smanjenjem truda, vremena i troškova razvoja. STM32Cube pokriva čitav STM32 portfolio. STM32Cube uključuje:

STM32Cube uključuje:

  • Skup alata za razvoj softvera prilagođenih korisniku koji pokrivaju razvoj projekta od ideje do realizacije, među kojima su:
    • STM32CubeMX, grafički softverski alat za konfiguraciju koji omogućava automatsko generiranje C koda za inicijalizaciju pomoću grafičkih čarobnjaka
    • STM32CubeIDE, sve-u-jednom razvojni alat s perifernom konfiguracijom, generiranjem koda, kompilacijom koda i funkcijama za otklanjanje grešaka
    • STM32CubeCLT, sve-u-jednom skup alata za razvoj naredbenog retka sa kompilacijom koda, programiranjem ploče i funkcijama za otklanjanje grešaka
    • STM32CubeProgrammer (STM32CubeProg), alat za programiranje dostupan u grafičkim verzijama i verzijama sa komandne linije
    • STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), moćni alati za praćenje za fino podešavanje ponašanja i performansi STM32 aplikacija u realnom vremenu
  • STM32Cube MCU i MPU paketi, sveobuhvatne platforme ugrađenog softvera specifične za svaku seriju mikrokontrolera i mikroprocesora (kao što je STM32CubeWL3 za liniju proizvoda STM32WL3x), koje uključuju:
    • STM32Cube hardverski apstrakcijski sloj (HAL), osiguravajući maksimalnu prenosivost kroz STM32 portfolio
    • STM32Cube API-ji niskog sloja, koji osiguravaju najbolje performanse i otiske uz visok stepen korisničke kontrole nad hardverom
    • Konzistentan skup međuverskih komponenti kao što su FreeRTOS™ kernel, FatFS i Sigfox™
    • Svi ugrađeni softverski uslužni programi s punim setovima perifernih i aplikativnih examples
  • STM32Cube paketi proširenja, koji sadrže ugrađene softverske komponente koje dopunjuju funkcionalnost STM32Cube MCU i MPU paketa sa:
    • Proširenja međuvera i aplikativni slojevi
    • Exampleže rade na nekim specifičnim razvojnim pločama STMicroelectronics
  • Ovaj korisnički priručnik opisuje kako započeti s STM32CubeWL3 MCU paketom.

Poglavlje 2 opisuje glavne karakteristike STM32CubeWL3, a Odjeljak 3 pružaview njegove arhitekture i strukture MCU paketa.

Opće informacije

  • STM32CubeWL3 pokreće demonstracijske aplikacije ispod GHz, uključujući Sigfox™ binarne datoteke, na mikrokontrolerima linije proizvoda STM32WL3x baziranim na procesoru Arm® Cortex®‑M0+.
  • STM32WL3x mikrokontroleri ugrađuju STMicroelectronics-ovu najmoderniju RF radio periferiju usklađenu sa sub-GHz, optimiziranu za ultra-nisku potrošnju energije i odlične radio performanse, za neusporedivi vijek trajanja baterije.

Napomena: Arm je registrirani zaštitni znak kompanije Arm Limited (ili njenih podružnica) u SAD -u i/ili drugdje.

STM32WL3x-Mikrokontroleri-SLIKA-1

STM32CubeWL3 glavne karakteristike

  • STM32CubeWL3 MCU paket radi na STM32 32-bitnim mikrokontrolerima baziranim na Arm® Cortex®‑M0+ procesoru. On okuplja, u jednom paketu, sve generičke ugrađene softverske komponente potrebne za razvoj aplikacije za STM32WL3x linija proizvoda mikrokontroleri.
  • Paket uključuje API-je niskog sloja (LL) i sloja apstrakcije hardvera (HAL) koji pokrivaju hardver mikrokontrolera, zajedno sa opsežnim skupom exampleže rade na STMicroelectronics pločama. HAL i LL API-ji su dostupni u BSD licenci otvorenog koda radi praktičnosti korisnika. Takođe uključuje Sigfox™, FatFS i FreeRTOS™ međuverske komponente kernela.
  • STM32CubeWL3 MCU paket takođe pruža nekoliko aplikacija i demonstracija implementirajući sve njegove komponente međuverskog softvera.
  • Izgled komponente STM32CubeWL3 MCU paketa je ilustrovan na slici 1.

STM32WL3x-Mikrokontroleri-SLIKA-2

STM32CubeWL3 arhitektura je završenaview

  • Rješenje STM32CubeWL3 MCU paketa izgrađeno je oko tri nezavisna nivoa koji lako stupaju u interakciju kao što je opisano na slici 2.

STM32WL3x-Mikrokontroleri-SLIKA-3

Nivo 0
Ovaj nivo je podeljen na tri podsloja:

  • Paket podrške za ploče (BSP).
  • Sloj hardverske apstrakcije (HAL):
    • HAL periferni drajveri
    • Drajveri niskog sloja
  • Osnovna upotreba periferije npramples.

Paket podrške za ploču (BSP)
Ovaj sloj nudi skup API-ja u odnosu na hardverske komponente u hardverskim pločama (kao što su LED diode, dugmad i COM drajveri). Sastoji se iz dva dela:

komponenta:

  • Ovo je drajver u odnosu na eksterni uređaj na ploči, a ne na STM32. Upravljački program komponente pruža specifične API-je vanjskim komponentama BSP drajvera i može biti prenosiv na bilo koju drugu ploču.
    • BSP vozač:
  • Omogućava povezivanje drajvera komponenti sa određenom pločom i pruža skup API-ja prilagođenih korisniku. Pravilo imenovanja API-ja je BSP_FUNCT_Action().
  • Example: BSP_LED_Init(), BSP_LED_On()

BSP je baziran na modularnoj arhitekturi koja omogućava lako prenošenje na bilo koji hardver samo implementacijom rutina niskog nivoa.

Hardverski apstrakcijski sloj (HAL) i niski sloj (LL)

STM32CubeWL3 HAL i LL su komplementarni i pokrivaju širok spektar zahtjeva primjene:

  • HAL drajveri nude visoko prenosive API-je koji su orijentisani ka funkcijama. Oni skrivaju MCU i perifernu složenost krajnjem korisniku.
    HAL drajveri obezbeđuju generičke multi-instance orijentisane API-je, koji pojednostavljuju implementaciju korisničke aplikacije obezbeđujući procese spremne za upotrebu. Za nprampZa komunikacijske periferije (I2C, UART i druge), pruža API-je koji omogućavaju inicijalizaciju i konfiguraciju periferije, upravljanje prijenosom podataka na osnovu prozivanja, prekidanja ili DMA procesa i rukovanje komunikacijskim greškama koje mogu nastati tokom komunikacije. API-ji HAL drajvera su podijeljeni u dvije kategorije:
    • Generički API-ji, koji pružaju zajedničke i generičke funkcije svim mikrokontrolerima serije STM32.
    • API-ji proširenja, koji pružaju specifične i prilagođene funkcije za određenu porodicu ili određeni broj dijela.
  • API-ji niskog sloja pružaju API-je niskog nivoa na nivou registra, sa boljom optimizacijom, ali manje prenosivosti.
    Oni zahtijevaju duboko poznavanje MCU i perifernih specifikacija.
    LL drajveri su dizajnirani da ponude brzi, lagani, stručno orijentisani sloj koji je bliži hardveru od HAL-a. Za razliku od HAL-a, LL API-ji nisu obezbeđeni za periferne uređaje gde optimizovani pristup nije ključna karakteristika, ili za one koji zahtevaju tešku softversku konfiguraciju ili složeni stek višeg nivoa.
    Funkcija drajvera LL:
  • Skup funkcija za inicijalizaciju perifernih glavnih karakteristika prema parametrima navedenim u strukturama podataka.
  • Skup funkcija za popunjavanje inicijalizacijskih struktura podataka s vrijednostima resetovanja koje odgovaraju svakom polju.
  • Funkcija za deinicijalizaciju periferije (periferijski registri vraćeni na njihove zadane vrijednosti).
  • Skup inline funkcija za direktan i atomski pristup registrima.
  • Potpuna nezavisnost od HAL-a i mogućnost korištenja u samostalnom načinu rada (bez HAL drajvera).
  • Potpuna pokrivenost podržanih perifernih funkcija.

Osnovna upotreba periferije npramples
Ovaj sloj obuhvata exampdatoteke izgrađene preko STM32 perifernih uređaja koristeći samo HAL i BSP resurse.
Napomena: Demonstracija examplesovi su također dostupni za prikaz složenijih nprample scenarije sa specifičnim periferijama, kao što su MRSUBG i LPAWUR.

Nivo 1
Ovaj nivo je podeljen na dva podsloja:

  • Middleware komponente
  • Exampdatoteke zasnovane na komponentama međuvera

Middleware komponente
Međuover je skup biblioteka koje pokrivaju FreeRTOS™ kernel, FatFS i Sigfox™ biblioteku protokola.
Horizontalna interakcija između komponenti ovog sloja se vrši pozivanjem istaknutih API-ja.
Vertikalna interakcija sa drajverima niskog sloja se vrši kroz specifične povratne pozive i statičke makroe implementirane u interfejs poziva sistema biblioteke.
Glavne karakteristike svake komponente srednjeg softvera su sljedeće:

  • FreeRTOS™ kernel: implementira operativni sistem u realnom vremenu (RTOS), dizajniran za ugrađene sisteme.
  • Sigfox™: implementira biblioteku protokola Sigfox™ usklađenu sa mrežom protokola Sigfox™ i uključuje biblioteku RF test protokola za testiranje u odnosu na RF Sigfox™ alate.
  • FatFS: implementira generički FAT file sistemski modul.

Exampdatoteke zasnovane na komponentama međuvera

  • Svaka komponenta srednjeg softvera dolazi sa jednim ili više examples, koji se naziva i aplikacijama, koji pokazuje kako se koristi.
  • Integracija prampDostupne su i datoteke koje koriste nekoliko komponenti međuverskog softvera.

STM32CubeWL3 paket firmvera je završenview

Podržani STM32WL3x uređaji i hardver

  • STM32Cube nudi visoko prenosivi sloj apstrakcije hardvera (HAL) izgrađen oko generičke arhitekture. Omogućava princip slojeva nadograđivanja, kao što je korištenje međuverskog sloja za implementaciju njihovih funkcija bez detaljnog saznanja koji se MCU koristi. Ovo poboljšava ponovnu upotrebu koda biblioteke i osigurava laku prenosivost na druge uređaje.
  • Osim toga, svojom slojevitom arhitekturom, STM32CubeWL3 nudi punu podršku za svu liniju proizvoda STM32WL3x.
  • Korisnik mora samo definirati pravi makro u stm32wl3x.h.
  • Tabela 1 prikazuje makro koji treba definirati ovisno o korištenom uređaju linije proizvoda STM32WL3x. Ovaj makro također mora biti definiran u pretprocesoru kompajlera.

Tabela 1. Makroi za liniju proizvoda STM32WL3x

Makro definiran u STM32WL3X.h STM32WL3x uređaji iz linije proizvoda
stm32wl3x STM32WL30xx mikrokontroleri STM32WL31xx mikrokontroleri STM32WL33xx mikrokontroleri

Tabela 2. Ploče za liniju proizvoda STM32WL3x

Board Uređaji koji podržavaju STM32WL3x ploču
NUCLEO-WL33CC1 STM32WL33CC
NUCLEO-WL33CC2 STM32WL33CC

STM32CubeWL3 MCU paket može raditi na bilo kojem kompatibilnom hardveru. Korisnici ažuriraju BSP drajvere kako bi prenijeli date exampdatoteke na njihovim pločama, ako imaju iste hardverske karakteristike (kao što su LED diode ili dugmad).

Firmware paket je gotovview

  • Rešenje STM32CubeWL3 MCU paketa je obezbeđeno u jednom zip paketu, sa strukturom prikazanom na slici 3.

STM32WL3x-Mikrokontroleri-SLIKA-4

Oprez: Korisnik ne smije mijenjati komponente files. Korisnik može samo uređivati ​​izvore \Projects. Za svaku ploču, set examples ima unapred konfigurisane projekte za EWARM, MDK-ARM i STM32CubeIDE lance alata.
Slika 4 prikazuje strukturu projekta za NUCLEO-WL33CCx ploče.

STM32WL3x-Mikrokontroleri-SLIKA-5

Bivšiampdatoteke su klasifikovane u zavisnosti od nivoa STM32CubeWL3 na koji se odnose. Nazivaju se na sljedeći način:

  • Nivo 0 pramplesovi se zovu Examples, pramples_LL, i pramples_MIX. Oni koriste HAL drajvere, LL drajvere i mešavinu HAL i LL drajvera bez ikakve komponente međuverskog softvera. Demonstracija exampLes je takođe dostupan.
  • Nivo 1 prampdatoteke se zovu aplikacije. Oni pružaju tipične slučajeve upotrebe svake komponente međuopreme.

Bilo koja aplikacija firmvera za datu ploču može se brzo izgraditi koristeći šablonske projekte koji su dostupni u direktorijumima Templates i Templates_LL.
Examples, pramples_LL, i pramples_MIX imaju istu strukturu:

  • \Inc folder koji sadrži sva zaglavlja files.
  • \Src folder koji sadrži izvorni kod.
  • \EWARM, \MDK-ARM i \STM32CubeIDE folderi koji sadrže unaprijed konfigurirani projekat za svaki lanac alata.
  • readme.md i readme.html koji opisuju exampponašanje i potrebno okruženje da bi to funkcioniralo.

Početak rada sa STM32CubeWL3

Trčanje prvog bivšegample
Ovaj odjeljak objašnjava kako je jednostavno pokrenuti prvi example u okviru STM32CubeWL3. Kao ilustraciju koristi generisanje jednostavnog LED prekidača koji radi na ploči NUCLEO-WL33CC1:

  1. Preuzmite STM32CubeWL3 MCU paket.
  2. Raspakujte ga ili pokrenite instalacijski program ako postoji, u direktorij po vašem izboru.
  3. Pazite da ne mijenjate strukturu paketa prikazanu na slici 3. Struktura paketa firmvera STM32CubeWL3. Imajte na umu da se također preporučuje kopiranje paketa na lokaciju blizu korijenskog volumena (što znači C:\ST ili G:\Tests), jer neki IDE-ovi nailaze na probleme kada je put predugačak.

Kako pokrenuti HAL example
Prije učitavanja i pokretanja example, toplo se preporučuje da pročitate example readme file za bilo koju konfiguraciju.

  1. Potražite na \Projects\NUCLEO-WL33CC\Examples.
  2. Otvorite fascikle \GPIO, zatim \GPIO_EXTI.
  3. Otvorite projekat sa željenim lancem alata. Brzi krajview o tome kako otvoriti, izgraditi i pokrenuti example sa podržanim lancima alata dat je u nastavku.
  4. Rebuild all files i učitajte sliku u ciljnu memoriju.
  5. Pokreni example. Za više detalja, pogledajte prample readme file.

Da biste otvorili, napravili i pokrenuli exampsa svakim od podržanih lanaca alata, slijedite dolje navedene korake:

  • EWARM:
    1. Pod Examples folder, otvorite podfolder \EWARM.
    2. Pokrenite radni prostor Project.eww (ime radnog prostora može se promijeniti iz jednog example do drugog).
    3. Rebuild all files: [Projekat]>[Ponovo izgradi sve].
    4. Učitajte sliku projekta: [Projekt]>[Debug].
    5. Pokrenite program: [Debug]>[Go (F5)].
  • MDK-ARM:
    1. Pod Examples folder, otvorite podfolder \MDK-ARM.
    2. Otvorite radni prostor Project.uvproj (ime radnog prostora može se promijeniti iz jednog example do drugog).
    3. Rebuild all files: [Projekat]>[Ponovo izgradi sve ciljeve files].
    4. Učitajte sliku projekta: [Debug]>[Start/Stop Debug Session].
    5. Pokrenite program: [Debug]>[Run (F5)].
  • STM32CubeIDE:
    1. Otvorite lanac alata STM32CubeIDE.
    2. Kliknite na [File]>[Switch Workspace]>[Other] i pretražite STM32CubeIDE direktorij radnog prostora.
    3. Kliknite na [File]>[Uvoz], odaberite [Općenito]>[Postojeći projekti u radni prostor], a zatim kliknite [Dalje].
    4. Dođite do direktorija radnog prostora STM32CubeIDE i odaberite projekt.
    5. Ponovo izgradite sav projekat files: Odaberite projekat u prozoru Project Explorer, a zatim kliknite na meni [Projekt]>[Izgradnja projekta].
    6. Pokrenite program: [Run]>[Debug (F11)].

Razvoj prilagođene aplikacije

Korištenje STM32CubeMX za razvoj ili ažuriranje aplikacije

  • U STM32Cube MCU paketu, gotovo svi projekti exampdatoteke se generišu pomoću alata STM32CubeMX za inicijalizaciju sistema, perifernih uređaja i međuvera.

Direktno korištenje postojećeg projekta nprample iz STM32CubeMX alata zahtijeva STM32CubeMX 6.12.0 ili noviju:

  • Nakon instalacije STM32CubeMX, otvorite i po potrebi ažurirajte predloženi projekat.
    Najjednostavniji način za otvaranje postojećeg projekta je dvostruki klik na *.ioc file tako da STM32CubeMX automatski otvara projekat i njegov izvor files. STM32CubeMX generiše inicijalizacijski izvorni kod takvih projekata.
  • Glavni izvorni kod aplikacije je sadržan u komentarima “KORISNIČKI KOD POČINJE” i “KORISNIČKI KOD KRAJ”. Ako su izbor i postavke periferije promijenjene, STM32CubeMX ažurira dio inicijalizacijskog koda uz očuvanje izvornog koda glavne aplikacije.
  • Da biste razvili prilagođeni projekat sa STM32CubeMX, slijedite korak po korak proces:
    1. Konfigurirajte sav potreban ugrađeni softver koristeći rješavač pinout-konflikta, pomoćnik za podešavanje stabla sata, kalkulator potrošnje energije i uslužni program koji izvodi MCU perifernu konfiguraciju (kao što je GPIO ili USART).
    2. Generirajte inicijalizacijski C kod na osnovu odabrane konfiguracije. Ovaj kod je spreman za upotrebu u nekoliko razvojnih okruženja. Korisnički kod se čuva pri sljedećem generiranju koda.
      Za više informacija o STM32CubeMX, pogledajte korisnički priručnik STM32CubeMX za STM32 konfiguraciju i generiranje C koda za inicijalizaciju (UM1718).

Aplikacije za vozače
HAL aplikacija
Ovaj odjeljak opisuje korake potrebne za kreiranje prilagođene HAL aplikacije pomoću STM32CubeWL3

  1. Kreirajte projekat
    Da kreirate novi projekat, počnite ili od predloška projekta koji je obezbeđen za svaku ploču pod \Projekti\ \Šabloni ili iz bilo kojeg dostupnog projekta pod \Projekti\ \Pramples ili \projekti\ \Aplikacije (gdje odnosi se na naziv odbora).
    Projekt Template pruža praznu funkciju glavne petlje. Međutim, to je dobra polazna tačka za razumijevanje postavki projekta STM32CubeWL3. Šablon ima sljedeće karakteristike:
    • Sadrži HAL izvorni kod, CMSIS i BSP drajvere, koji su minimalni skup komponenti potrebnih za razvoj koda na datoj ploči.
    • Sadrži uključene putanje za sve komponente firmvera.
    • Definiše podržane STM32WL3x uređaje iz linije proizvoda, omogućavajući CMSIS i HAL drajvere da budu ispravno konfigurisani.
    • Pruža korisnika koji je spreman za upotrebu fileje unaprijed konfigurisan kao što je prikazano ispod:
    • HAL je inicijaliziran sa zadanom vremenskom bazom pomoću Arm® jezgre SysTicka.
    • SysTick ISR implementiran za HAL_Delay() svrhu.
    • Napomena: Prilikom kopiranja postojećeg projekta na drugu lokaciju, provjerite jesu li sve uključene staze ažurirane.
  2. Konfigurišite komponente firmvera
    HAL i komponente međuverskog softvera nude skup opcija konfiguracije za vrijeme izgradnje koristeći makronaredbe #define deklarirane u zaglavlju file. Konfiguracija šablona file je obezbeđen unutar svake komponente, koja se mora kopirati u fasciklu projekta (obično konfiguraciju file je nazvan xxx_conf_template.h, fragment
    • predložak treba ukloniti kada ga kopirate u projektnu fasciklu). Konfiguracija file pruža dovoljno informacija za razumijevanje utjecaja svake opcije konfiguracije. Detaljnije informacije dostupne su u dokumentaciji za svaku komponentu.
  3. Pokrenite HAL biblioteku
    Nakon skoka na glavni program, kod aplikacije mora pozvati HAL_Init() API da inicijalizira HAL biblioteku, koja izvršava sljedeće zadatke:
    • Konfiguracija prethodnog preuzimanja flash memorije i SysTick prioriteta prekida (preko makronaredbi definiranih u stm32 wl3x_hal_conf.h).
    • Konfiguracija SysTicka za generiranje prekida svake milisekunde na SysTick prioritetu prekida TICK_INT_PRIO definiranom u stm32wl3x_hal_conf.h.
    • Postavljanje prioriteta NVIC grupe na 0.
    • Poziv funkcije povratnog poziva HAL_MspInit() definirane u korisniku stm32wl3x_hal_msp.c file za izvođenje globalnih hardverskih inicijalizacija niskog nivoa.
  4. Konfigurišite sistemski sat
    Konfiguracija sistemskog sata se vrši pozivanjem dva API-ja opisana u nastavku:
    • HAL_RCC_OscConfig(): ovaj API konfiguriše interne i eksterne oscilatore. Korisnik bira da
      konfigurirati jedan ili sve oscilatore.
    • HAL_RCC_ClockConfig(): ovaj API konfiguriše izvor sistemskog takta, kašnjenje fleš memorije i AHB i APB predskalere.
  5. Inicijalizirajte periferiju
    • Prvo napišite funkciju inicijalizacije periferije. Postupite na sljedeći način:
    • Omogućite periferni sat.
    • Konfigurirajte periferne GPIO.
    • Konfigurišite DMA kanal i omogućite DMA prekid (ako je potrebno).
    • Omogućite periferni prekid (ako je potrebno).
    • Uredite stm32xxx_it.c da pozovete potrebne rukovaoce prekida (periferijski i DMA), ako je potrebno.
    • Napišite proces potpune funkcije povratnog poziva ako je predviđeno da se koristi periferni prekid ili DMA.
    • U korisniku main.c file, inicijalizirajte strukturu periferne ručke, a zatim pozovite funkciju inicijalizacije periferije da inicijalizira periferiju.
  6. Razviti aplikaciju
    Kod ovog stage, sistem je spreman i razvoj koda korisničke aplikacije može početi.
    HAL pruža intuitivne i spremne za korištenje API-je za konfiguraciju periferije. Podržava prozivanje, prekide i DMA model programiranja, kako bi zadovoljio sve zahtjeve aplikacije. Za više detalja o tome kako koristiti svaki periferni uređaj, pogledajte bogati exampset koji se nalazi u STM32CubeWL3 MCU paketu.

Oprez: U podrazumevanoj HAL implementaciji, SysTick tajmer se koristi kao vremenska baza: generiše prekide u redovnim vremenskim intervalima. Ako je HAL_Delay() pozvan iz perifernog ISR procesa, uvjerite se da SysTick prekid ima veći prioritet (numerički niži) od perifernog prekida. U suprotnom, proces ISR pozivatelja je blokiran. Funkcije koje utječu na konfiguraciju vremenske baze deklarirane su kao __slabe kako bi se omogućilo nadjačavanje u slučaju drugih implementacija u korisniku file (koristeći tajmer opšte namene, nprample, ili drugi izvor vremena). Za više detalja, pogledajte HAL_TimeBase example.

LL aplikacija
Ovaj odjeljak opisuje korake potrebne za kreiranje prilagođene LL aplikacije pomoću STM32CubeWL3.

  1. Kreirajte projekat
    Da kreirate novi projekat, ili počnite od Templates_LL projekta koji je obezbeđen za svaku ploču pod \Projekti\ \Templates_LL ili iz bilo kojeg dostupnog projekta pod \Projekti\ \Pramples_ LL ( odnosi se na naziv ploče, kao što je NUCLEO-WL32CC33).
    Predložak projekta pruža praznu funkciju glavne petlje, što je dobra polazna tačka za razumijevanje projektnih postavki za STM32CubeWL3. Glavne karakteristike šablona su sljedeće:
    • Sadrži izvorne kodove LL i CMSIS drajvera, koji su minimalni skup komponenti potrebnih za razvoj koda na datoj ploči.
    • Sadrži uključene putanje za sve potrebne komponente firmvera.
    • On bira podržani STM32WL3x uređaj iz linije proizvoda i omogućava ispravnu konfiguraciju CMSIS i LL drajvera.
    • Pruža korisniku spremnom za korištenje filekoji su unapred konfigurisani na sledeći način:
    • main.h: LED i sloj apstrakcije definicije USER_BUTTON.
    • main.c: Konfiguracija sistemskog sata za maksimalnu frekvenciju.
  2. Port LL example:
    • Kopirajte/zalijepite folder Templates_LL – da zadržite početni izvor – ili direktno ažurirajte postojeći Template s_LL projekat.
    • Zatim, prijenos se uglavnom sastoji u zamjeni Templates_LL files od strane Examples_LL ciljani projekat.
    • Zadržite sve dijelove specifične za ploču. Radi jasnoće, specifični dijelovi ploče su označeni sa specifičnim tags:STM32WL3x-Mikrokontroleri-SLIKA-6
    • Dakle, glavni koraci prenosa su sljedeći:
    • Zamijenite stm32wl3x_it.h file.
    • Zamijenite stm32wl3x_it.c file.
    • Zamijenite main.h file i ažurirajte ga: Zadržite LED i korisničku tipku definiciju LL šablona pod SPECIFIČNA KONFIGURACIJA BOARD tags.
    • Zamijenite main.c file i ažurirajte ga:
    • Zadržite konfiguraciju sata funkcije predloška SystemClock_Config() LL pod SPECIFIČNA KONFIGURACIJA BOARDA tags.
    • Ovisno o LED definiciji, zamijenite svako pojavljivanje LDx s drugim LDy dostupnim u file main.h.
    • Sa ovim modifikacijama, example radi na ciljanoj ploči.

RF aplikacije, demonstracije i npramples
Različite vrste RF aplikacija, demonstracija i nprampdatoteke su dostupne u STM32CubeWL3 paketu.
Oni su navedeni u dva odjeljka ispod.

Sub-GHz examplesa i demonstracija
Ove examples pokazuju glavne karakteristike MRSUBG i LPAWUR radio periferije. Ove exampDostupni su pod:

  • Projekti\NUCLEO-WL33CC\Pramples\MRSUBG
  • Projekti\NUCLEO-WL33CC\Pramples\LPAWUR
  • Projekti\NUCLEO-WL33CC\Demonstracije\MRSUBG
  • Projekti\NUCLEO-WL33CC\Demonstracije\LPAWUR

Svaki example ili demonstracija se uglavnom sastoji od dva programa nazvana Tx i Rx koji djeluju kao predajnik i prijemnik, respektivno:

Examples/MRSUBG

  • MRSUBG_802_15_4: implementacija fizičkog sloja definisanog standardom 802.15.4. Pokazuje kako da konfigurišete radio da prenosi ili prima 802.15.4 pakete.
  • MRSUBG_BasicGeneric: Razmjena STM32WL3x MR_SUBG osnovnih paketa.
  • MRSUBG_Chat: Jednostavna aplikacija koja pokazuje kako koristiti Tx i Rx na istom uređaju.
  • MRSUBG_DatabufferHandler: prample koji pokazuje kako zamijeniti bafer podataka 0 i 1.
  • MRSUBG_Sequencer AutoAck: prampfajl koji automatski prenosi i prima potvrde paketa (ACK-ove).
  • MRSUBG_WMBusSTD: Razmjena WM-Bus poruka.
  • WakeupRadio: Bivšiampda testiramo LPAWUR radio periferiju.

Demonstracije/MRSUBG

  • MRSUBG_RTC_Button_TX: Ovaj prample pokazuje kako postaviti SoC u režim dubokog zaustavljanja i konfigurirati MRSUBG da probudi SoC pritiskom na PB2 za slanje okvira ili nakon isteka RTC tajmera.
  • MRSUBG_Sequencer_Sniff: Ovaj prample pokazuje kako podesiti MRSUBG sekvencer da radi u režimu njuškanja. Ovaj example pokazuje stranu prijemnika i zahteva drugi uređaj kao predajnik.
  • MRSUBG_Timer: Aplikacija planira nekoliko instanci MRSUBG tajmera (sa automatskim ponovnim učitavanjem) sa različitim vremenskim intervalima.
  • MRSUBG_WakeupRadio_Tx: Ovaj prample objašnjava kako postaviti SoC u način dubokog zaustavljanja i konfigurirati MRSUBG da probudi SoC pritiskom na PB2 za slanje okvira. Ovaj example pokazuje stranu predajnika i zahtijeva drugi uređaj kao LPAWUR prijemnik. Prijemnik example se nalazi ispod fascikle NUCLEO-WL33CC\Demonstrations\LPAWUR\LPAWUR_WakeupRadio_Rx.

Demonstracije/LPAWUR

  • LPAWUR_WakeupRadio_Rx: Ovaj prample objašnjava kako postaviti SoC u režim dubokog zaustavljanja i konfigurirati LPAWUR da probudi SoC kada okvir stigne i bude ispravno primljen. Ovaj example pokazuje stranu prijemnika i zahtijeva drugi uređaj kao predajnik. Predajnik example se nalazi u fascikli NUCLEO-WL33CC\Demonstrations\MRSUBG\MRSUBG_WakeupRadio_Tx.

Sigfox™ aplikacija
Ove aplikacije pokazuju kako implementirati Sigfox™ scenario i koristiti dostupne Sigfox™ API-je. Dostupni su na putu projekta Projects\NUCLEO-WL33CC\Applications\Sigfox\:

  • Sigfox_CLI: Ova aplikacija pokazuje kako koristiti sučelje komandne linije (CLI) za slanje komandi koje koriste Sigfox™ protokol za slanje poruka i izvođenje predsertifikacijskih testova.
  • Sigfox_PushButton: Ova aplikacija omogućava procjenu radio mogućnosti STM32WL33xx Sigfox™ uređaja. Pritiskom na PB1 prenosi se probni Sigfox™ okvir.

Istorija revizija

Tabela 3. Istorija revizije dokumenta

Datum Revizija Promjene
29-Mar-2024 1 Prvo izdanje.
30-okt-2024 2 Potpuna integracija STM32CubeWL3 u STM32Cube. Ažurirano:

•         Uvod

•         Odjeljak 2: Glavne karakteristike STM32CubeWL3

•         Odjeljak 3.2.1: Komponente srednjeg softvera

•         Odjeljak 4: STM32CubeWL3 paket firmvera je završenview

•         Odjeljak 5.1: Izvođenje prvog example

•         Odjeljak 5.3: RF aplikacije, demonstracije i npramples

Dodato:

•         Odjeljak 5.1.1: Kako pokrenuti HAL example

•         Odjeljak 5.2.1: Upotreba STM32CubeMX za razvoj ili ažuriranje aplikacije

• Sodeljak 6.4: Postoji li šablonski projekat za MRSUBG/LPAWUR periferne uređaje npramples?

•         Odjeljak 6.5: Kako STM32CubeMX može generirati kod na osnovu ugrađenog softvera?

Uklonjeno:

•         PC alati, uključujući Navigator, STM32WL3 GUI, i GUI sekvencera MR-SUBG

•         Kako WiSE-Studio IOMapper može generirati kod baziran na ugrađenom softveru?

•         Da li Navigator dozvoljava pristup resursima softverskog paketa?

22-jan-2025 3 Proširen raspon primenljivih uređaja na STM32WL30xx i STM32WL31xx mikrokontrolere u tabeli 1. Makroi za liniju proizvoda STM32WL3x.

VAŽNA NAPOMENA – PAŽLJIVO PROČITAJTE

  • STMicroelectronics NV i njegove podružnice (“ST”) zadržavaju pravo na izmjene, ispravke, poboljšanja, modifikacije i poboljšanja ST proizvoda i/ili ovog dokumenta u bilo koje vrijeme bez prethodne najave. Kupci bi trebali dobiti najnovije relevantne informacije o ST proizvodima prije nego što daju narudžbu. ST proizvodi se prodaju u skladu sa ST-ovim odredbama i uslovima prodaje koji su na snazi ​​u trenutku potvrde narudžbe.
  • Kupci su isključivo odgovorni za izbor, odabir i korištenje ST proizvoda, a ST ne preuzima nikakvu odgovornost za pomoć u primjeni ili dizajn proizvoda kupaca.
  • ST ovdje ne daje nikakvu licencu, izričitu ili impliciranu, za bilo koje pravo intelektualne svojine.
  • Preprodaja ST proizvoda sa odredbama koje se razlikuju od informacija navedenih ovde poništava svaku garanciju koju ST daje za takav proizvod.
  • ST i ST logo su zaštitni znakovi ST. Za dodatne informacije o ST zaštitnim znakovima, pogledajte www.st.com/trademarks. Svi ostali nazivi proizvoda ili usluga vlasništvo su njihovih vlasnika.
  • Informacije u ovom dokumentu zamjenjuju i zamjenjuju informacije koje su prethodno date u prethodnim verzijama ovog dokumenta.
  • © 2025 STMicroelectronics – Sva prava zadržana

FAQ

Kada trebam koristiti HAL umjesto LL drajvera?

HAL drajveri nude API-je visokog nivoa i funkcionalno orijentisane, sa visokim nivoom prenosivosti. Složenost proizvoda ili periferije je skrivena za krajnje korisnike. LL drajveri nude API-je niskog nivoa registra sa boljom optimizacijom, ali manje prenosivim. Oni zahtijevaju dubinsko poznavanje proizvoda ili IP specifikacija.

Kako su omogućeni API-ji za inicijalizaciju LL?

Definicija LL inicijalizacijskih API-ja i pridruženih literala i prototipova struktura resursa uvjetovana je prekidačem za kompilaciju USE_FULL_LL_DRIVER. Da biste mogli koristiti API-je za inicijalizaciju LL, dodajte ovaj prekidač u pretprocesor kompajlera alata.

Postoji li neki predložak projekta za MRSUBG/LPAWUR periferiju examples?

Za kreiranje novog MRSUBG ili LPAWUR exampprojekta, ili počnite od skeletnog projekta predviđenog u okviru Projekta NUCLEO- 33CC Examples MRSUBG ili ProjectsNUCLEO-WL33CC Examples LPAWUR ili iz bilo kojeg dostupnog projekta u tim istim imenicima.

Kako STM32CubeMX može generirati kod na osnovu ugrađenog softvera?

STM32CubeMX ima ugrađeno znanje o STM32 mikrokontrolerima, uključujući njihove periferije i softver, što mu omogućava da pruži grafički prikaz korisniku i generiše .h ili .c files na osnovu konfiguracije korisnika.

Dokumenti / Resursi

ST STM32WL3x mikrokontroleri [pdf] Korisnički priručnik
STM32WL3x Mikrokontroleri, STM32WL3x, Mikrokontroleri

Reference

Ostavite komentar

Vaša email adresa neće biti objavljena. Obavezna polja su označena *