STMicroelectronics-logo

STMicroelectronics STM32WBA Series Miwiti

STMicroelectronics-STM32WBA-Series-Miwiti-anjir-1

Informasi produk

Spesifikasi:

  • Jeneng produk: Paket STM32CubeWBA MCU
  • Produsen: STMicroelectronics
  • Kompatibilitas: Mikrokontroler seri STM32WBA
  • Lisensi: Lisensi BSD sumber terbuka

Pandhuan Panggunaan Produk

Fitur Utama Paket STM32CubeWBA MCU:
Paket MCU STM32CubeWBA nyedhiyakake kabeh komponen piranti lunak sing dibutuhake kanggo ngembangake aplikasi ing mikrokontroler seri STM32WBA. Iku banget portabel ing seri STM32 lan dilengkapi HAL lan LL API, examples, lan komponen middleware.

Arsitektur Overview:
Arsitektur Paket STM32CubeWBA MCU kasusun saka telung tingkat - Aplikasi, Pustaka lan komponen basis protokol, lapisan abstraksi Hardware, driver BSP, driver inti, lan Low-layer API.

FAQ

  • Apa sing kalebu ing Paket MCU STM32CubeWBA?
    Paket kalebu low-layer (LL) lan hardware abstraction layer (HAL) API, contoneamples, aplikasi, komponen middleware kaya FileX/LevelX, NetX Duo, perpustakaan mbed-crypto, lan liya-liyane.
  • Apa Paket STM32CubeWBA MCU kompatibel karo generator kode STM32CubeMX?
    Ya, paket kasebut kompatibel karo generator kode STM32CubeMX kanggo ngasilake kode wiwitan.

Pambuka

  • STM32Cube minangka inisiatif asli STMicroelectronics kanggo nambah produktivitas desainer kanthi signifikan kanthi nyuda gaweyan, wektu, lan biaya pangembangan. STM32Cube nyakup kabeh portofolio STM32.
    STM32Cube kalebu:
    • Seperangkat alat pangembangan piranti lunak sing ramah pangguna kanggo nutupi pangembangan proyek saka konsepsi nganti realisasi, ing antarane yaiku:
      • STM32CubeMX, alat konfigurasi piranti lunak grafis sing ngidini generasi otomatis kode inisialisasi C nggunakake penyihir grafis
      • STM32CubeIDE, alat pangembangan kabeh-ing-siji kanthi konfigurasi periferal, nggawe kode, kompilasi kode, lan fitur debug
      • STM32CubeCLT, toolset pangembangan baris perintah kabeh-ing-siji kanthi kompilasi kode, pemrograman papan, lan fitur debug
      • STM32CubeProgrammer (STM32CubeProg), alat pemrograman sing kasedhiya ing versi grafis lan baris perintah
      • STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), alat pemantauan sing kuat kanggo nyempurnakake prilaku lan kinerja aplikasi STM32 ing wektu nyata
    • Paket STM32Cube MCU lan MPU, platform piranti lunak sing dipasang lengkap khusus kanggo saben seri mikrokontroler lan mikroprosesor (kayata STM32CubeWBA kanggo seri STM32WBA), sing kalebu:
      • STM32Cube hardware abstraction layer (HAL), njamin portabilitas maksimal ing portofolio STM32
      • STM32Cube low-layer API, njamin kinerja lan jejak sing paling apik kanthi tingkat kontrol pangguna sing dhuwur babagan hardware
      • Seperangkat komponen middleware sing konsisten kayata ThreadX, FileX / LevelX, NetX Duo, USBX, perpustakaan tutul, mbed-crypto, TFM, MCUboot, OpenBL, lan STM32_WPAN (kalebu Bluetooth® Low Energy profiles lan layanan, Mesh, Zigbee®, OpenThread, Matter, lan lapisan MAC 802.15.4)
      • Kabeh piranti lunak sing dipasang kanthi set lengkap peripheral lan aplikatifamples
    • Paket Ekspansi STM32Cube, sing ngemot komponen piranti lunak sing dipasang sing nglengkapi fungsionalitas Paket STM32Cube MCU lan MPU kanthi:
      • Ekstensi Middleware lan lapisan aplikatif
      • Examples mlaku ing sawetara Papan pangembangan STMicroelectronics tartamtu
  • Manual pangguna iki nerangake carane miwiti karo Paket STM32CubeWBA MCU.
    • Bagean 2 Fitur utama STM32CubeWBA nggambarake fitur utama Paket MCU STM32CubeWBA.
    • Bagian 3 STM32CubeWBA arsitektur liwatview nyedhiyakake liwatview saka arsitektur STM32CubeWBA lan struktur Paket MCU.

Informasi umum

Paket STM32CubeWBA MCU nganggo mikrokontroler STM32 32-bit adhedhasar prosesor Arm® Cortex®-M33 kanthi Arm® TrustZone® lan FPU.
Cathetan: Arm lan TrustZone minangka merek dagang kadhaptar saka Arm Limited (utawa anak perusahaan) ing AS lan/utawa ing papan liya.

STM32CubeWBA fitur utama

  • Paket STM32CubeWBA MCU nganggo mikrokontroler STM32 32-bit adhedhasar prosesor Arm® Cortex®-M33 kanthi TrustZone® lan FPU.
  • STM32CubeWBA nglumpukake, ing paket siji, kabeh komponen piranti lunak sing ditempelake umum sing dibutuhake kanggo ngembangake aplikasi mikrokontroler seri STM32WBA. Selaras karo inisiatif STM32Cube, set komponen iki portabel banget, ora mung ing mikrokontroler seri STM32WBA nanging uga ing seri STM32 liyane.
  • STM32CubeWBA kompatibel karo generator kode STM32CubeMX, kanggo ngasilake kode wiwitan. Paket kasebut kalebu API lapisan rendah (LL) lan lapisan abstraksi hardware (HAL) sing nutupi hardware mikrokontroler, bebarengan karo set ekstensif examples mlaku ing papan STMicroelectronics. API HAL lan LL kasedhiya ing lisensi BSD sumber terbuka kanggo kenyamanan pangguna.
  • Paket MCU STM32CubeWBA uga ngemot komponen middleware lengkap sing dibangun ing sekitar middleware Microsoft® Azure® RTOS, lan tumpukan in-house lan open-source liyane, kanthi mantan sing cocog.amples.
  • Padha teka karo syarat lisensi gratis lan pangguna-loropaken:
    • Azure® RTOS sing terintegrasi lan lengkap: Azure® RTOS ThreadX
    • Implementasi CMSIS-RTOS karo Azure® RTOS ThreadX
    • USB Host lan Piranti tumpukan teka karo akeh kelas: Azure® RTOS USBX
    • Majeng file sistem lan lapisan terjemahan lampu kilat: FileX / LevelX
    • Tumpukan jaringan kelas industri: dioptimalake kanggo kinerja kanthi akeh protokol IoT: NetX Duo
    • OpenBootloader
    • Solusi integrasi Arm® Trusted Firmware-M (TF‑M).
    • perpustakaan mbed-crypto
    • Perpustakaan ST Netwok
    • Solusi perpustakaan sensing tutul SMTTouch
  • Sawetara aplikasi lan demonstrasi sing ngetrapake kabeh komponen middleware iki uga kasedhiya ing Paket MCU STM32CubeWBA.
  • Tata letak komponen Paket STM32CubeWBA MCU digambarake ing Gambar 1. komponen Paket STM32CubeWBA MCU.

    STMicroelectronics-STM32WBA-Series-Miwiti-anjir-2

STM32CubeWBA arsitektur liwatview

Solusi paket STM32CubeWBA MCU dibangun watara telung tingkat independen sing gampang sesambungan minangka diterangake ing Figure 2. STM32CubeWBA MCU arsitektur paket.

STMicroelectronics-STM32WBA-Series-Miwiti-anjir-3

Tingkat 0

Tingkat iki dipérang dadi telung sublayers:

  • Paket Dukungan Papan (BSP).
  • Lapisan abstraksi hardware (HAL):
    • driver periferal HAL
    • Pembalap lapisan rendah
  • Panggunaan periferal dhasar examples.

Paket Dukungan Papan (BSP)
Lapisan iki nawakake sakumpulan API sing ana gandhengane karo komponen hardware ing papan hardware (kayata driver LCD, Audio, microSD™, lan MEMS). Iku kasusun saka rong bagéan:

  • Driver komponen:
    driver iki related kanggo piranti external ing Papan, lan ora kanggo piranti STM32. Driver komponen nyedhiyakake API khusus kanggo komponen eksternal driver BSP lan bisa uga portabel ing papan liyane.
  • Driver BSP:
    Driver BSP ngidini ngubungake driver komponen menyang Papan tartamtu, lan menehi pesawat saka pangguna-loropaken
    API. Aturan penamaan API yaiku BSP_FUNCT_Action().
    Example: BSP_LED_Init(), BSP_LED_On()
    BSP adhedhasar arsitektur modular sing ngidini porting gampang ing piranti keras apa wae kanthi mung ngetrapake rutinitas tingkat rendah.

Lapisan abstraksi hardware (HAL) lan lapisan rendah (LL)
STM32CubeWBA HAL lan LL minangka pelengkap lan nyakup macem-macem syarat aplikasi:

  • Pembalap HAL nawakake API sing portabel sing berorientasi fungsi tingkat dhuwur. Dheweke ndhelikake MCU lan kerumitan periferal menyang pangguna pungkasan.
    Driver HAL nyedhiyakake API berorientasi fitur multi-instance umum, sing nyederhanakake implementasi aplikasi pangguna kanthi nyedhiyakake proses sing siap digunakake. Kanggo example, kanggo peripheral komunikasi (I2S, UART, lan liya-liyane), menehi API ngidini initializing lan configuring peripheral, ngatur transfer data adhedhasar polling, interrupting, utawa proses DMA, lan nangani kesalahan komunikasi sing bisa njedhul nalika komunikasi. API driver HAL dipérang dadi rong kategori:
    1. API umum, sing nyedhiyakake fungsi umum lan umum kanggo kabeh mikrokontroler seri STM32.
    2. API ekstensi, sing nyedhiyakake fungsi khusus lan khusus kanggo kulawarga tartamtu utawa nomer bagean tartamtu.
  • API lapisan rendah nyedhiyakake API tingkat rendah ing tingkat registrasi, kanthi optimalisasi sing luwih apik nanging kurang portabilitas.
    • Dheweke mbutuhake kawruh babagan MCU lan spesifikasi periferal.
    • Pembalap LL dirancang kanggo nawakake lapisan berorientasi ahli sing entheng cepet sing luwih cedhak karo hardware tinimbang HAL. Nalisir HAL, LL API ora kasedhiya kanggo peripheral ngendi akses optimized ora fitur tombol, utawa kanggo sing mbutuhake konfigurasi lunak abot utawa tumpukan tingkat ndhuwur Komplek.
    • Fitur driver LL:
      • Sakumpulan fungsi kanggo miwiti fitur utama periferal miturut paramèter sing ditemtokake ing struktur data.
      • Sakumpulan fungsi kanggo ngisi struktur data initialization kanthi nilai reset sing cocog karo saben lapangan.
      • Fungsi kanggo deinitialization periferal (register peripheral dibalèkaké menyang nilai standar).
      • Sakumpulan fungsi inline kanggo akses register langsung lan atom.
      • Kamardikan lengkap saka HAL lan kemampuan kanggo digunakake ing mode mandiri (tanpa driver HAL).
      • Jangkoan lengkap fitur periferal sing didhukung.

Panggunaan periferal dhasar examples
Lapisan iki nutupi mantanamples dibangun liwat peripheral STM32 mung nggunakake sumber HAL lan BSP.

Tingkat 1

Tingkat iki dipérang dadi rong sublayers:

  • Komponen Middleware
  • Examples adhedhasar komponen middleware

Komponen Middleware

  • Middleware minangka kumpulan perpustakaan sing nyakup Bluetooth® Low Energy (Linklayer, HCI, Stack), Thread®, Zigbee®,
  • Matter, OpenBootloader, Microsoft® Azure® RTOS, TF‑M, MCUboot, lan mbed-crypto.
  • Interaksi horisontal antarane komponen lapisan iki ditindakake kanthi nelpon API sing ditampilake.
  • Interaksi vertikal karo pembalap lapisan kurang wis rampung liwat callbacks tartamtu lan macro statis dipun ginakaken ing antarmuka telpon sistem perpustakaan.
  • Fitur utama saben komponen middleware yaiku:
    • Microsoft® Azure® RTOS
      • Azure® RTOS ThreadX: Sistem operasi wektu nyata (RTOS), dirancang kanggo sistem sing dipasang kanthi rong mode fungsional.
        • Mode umum: Fungsi umum RTOS kayata manajemen thread lan sinkronisasi, manajemen blumbang memori, olahpesen, lan penanganan acara.
        • Mode modul: Mode pangguna canggih sing ngidini mbukak lan mbongkar modul ThreadX sing wis disambungake kanthi cepet liwat manajer modul.
      • NetX Duo
      • FileX
      • USBX
    • Bluetooth® Low Energy (BLE): Nindakake protokol Bluetooth® Low Energy kanggo lapisan Link lan Stack.
    • MCUboot (perangkat lunak sumber terbuka)
    • Protokol Zigbee® kanggo tumpukan lan kluster sing gegandhengan.
    • Tumpukan protokol Thread® lan lapisan link.
    • Arm® trusted firmware-M, TF‑M (open-source software): Referensi implementasi arsitektur keamanan platform Arm® (PSA) kanggo TrustZone® karo layanan aman sing gegandhengan.
    • mbed-crypto (software open-source): Middleware mbed-crypto nyedhiyakake implementasi API kriptografi PSA.
    • Perpustakaan STM32 Touch sensing: STMTouch capacitive touch sensing solution, support proximity, touchkey, linear and rotary touch sensors. Iki adhedhasar prinsip akuisisi transfer muatan permukaan sing wis kabukten.

Examples adhedhasar komponen middleware
Saben komponèn middleware nerangake karo siji utawa luwih examples (uga disebut aplikasi) nuduhake carane nggunakake. Integrasi examples sing nggunakake sawetara komponen middleware kasedhiya uga.

Paket firmware STM32CubeWBA liwatview

Piranti lan hardware seri STM32WBA sing didhukung

  • STM32Cube nawakake lapisan abstraksi hardware (HAL) portebel banget sing dibangun ing babagan arsitektur umum. Iki ngidini prinsip lapisan mbangun, kayata nggunakake lapisan middleware kanggo ngleksanakake fungsi tanpa ngerti, ing-ambane, apa MCU digunakake. Iki mbenakake reusability kode perpustakaan lan njamin portability gampang kanggo piranti liyane.
  • Kajaba iku, amarga arsitektur berlapis, STM32CubeWBA nawakake dhukungan lengkap kanggo kabeh seri STM32WBA.
  • Pangguna mung kudu nemtokake makro tengen ing stm32wbaxx.h.
  • Tabel 1 nuduhake makro kanggo nemtokake gumantung piranti seri STM32WBA digunakake. Makro iki uga kudu ditetepake ing preprocessor compiler.
    Tabel 1. Makro kanggo seri STM32WBA
    Makro ditetepake ing stm32wbaxx.h Piranti seri STM32WBA
    stm32wba52xx STM32WBA52CGU6, STM32WBA52KGU6, STM32WBA52CEU6, STM32WBA52KEU6
    stm32wba55xx STM32WBA55CGU6, STM32WBA55CGU6U, STM32WBA55CGU7, STM32WBA55CEU6, STM32WBA55CEU7

     

  • STM32CubeWBA nduwe set sugih mantanamples lan aplikasi ing kabeh tingkat supaya gampang mangertos lan nggunakake sembarang driver HAL utawa komponen middleware. Iki mantanamples mbukak ing papan STMicroelectronics kadhaptar ing Tabel 2.
    Tabel 2. Papan kanggo seri STM32WBA
    Papan Papan STM32WBA piranti sing didhukung
    NUCLEO-WBA52CG STM32WBA52CGU6
    NUCLEO-WBA55CG STM32WBA55CGU6
    STM32WBA55-DK1 STM32WBA55CGU7
  • Paket STM32CubeWBA MCU bisa mlaku ing piranti keras apa wae sing kompatibel. Pangguna mung nganyari driver BSP kanggo port ex sing kasedhiyaamples ing Papan, yen sing terakhir nduweni fitur hardware sing padha (kayata LED, tampilan LCD, lan tombol).
Paket firmware rampungview
  • Solusi paket STM32CubeWBA kasedhiya ing siji paket zip duwe struktur ditampilake ing Figure 3. Struktur paket perangkat kukuh STM32CubeWBA.

    STMicroelectronics-STM32WBA-Series-Miwiti-anjir-4

  • Kanggo saben Papan, pesawat saka examples kasedhiya karo proyèk preconfigured kanggo EWARM, MDK-ARM, lan toolchains STM32CubeIDE.
  • Gambar 4. STM32CubeWBA examples liwatview nuduhake struktur proyek kanggo papan NUCLEO‑WBA52CG, NUCLEO-WBA55CG lan STM32WBA55G-DK1.

    STMicroelectronics-STM32WBA-Series-Miwiti-anjir-5

  • mantanamples diklasifikasikake gumantung saka tingkat STM32Cube sing ditrapake, lan dijenengi kaya ing ngisor iki:
    • Level 0 examples diarani Examples, Examples_LL, lan Examples_MIX. Dheweke nggunakake driver HAL, driver LL, lan campuran driver HAL lan LL tanpa komponen middleware.
    • Level 1 examples disebut Aplikasi. Padha nyedhiyakake kasus panggunaan khas saben komponen middleware. Aplikasi perangkat kukuh apa wae kanggo papan tartamtu bisa dibangun kanthi cepet amarga proyek cithakan sing kasedhiya ing direktori Templ ates lan Templates_LL.

Proyek sing diaktifake TrustZone®

  • TrustZone® aktif Exampjeneng les ngemot awalan _TrustZone. Aturan kasebut uga ditrapake kanggo Applicatio ns (kajaba TFM lan SBSFU, sing asli kanggo TrustZone®).
  • TrustZone®-aktif Examples lan Aplikasi diwenehake karo struktur multiproyek dumadi saka subproyek aman lan nonsecure minangka presented ing Figure 5. struktur project aman lan nonsecure multiproyek.
  • Proyek sing diaktifake TrustZone® dikembangake miturut cithakan piranti CMSIS-5, ditambahi kanggo nyakup header partisi sistem file partisi_ .h, sing utamané tanggung jawab kanggo persiyapan unit ngubungake aman (SAU), FPU, lan tugas interrupts aman / nonsecure ing negara eksekusi aman.
  • persiyapan iki dileksanakake ing aman CMSIS SystemInit () fungsi, kang disebut ing wiwitan sadurunge ngetik aplikasi aman utama () fungsi. Deleng dokumentasi Arm® TrustZone®-M pedoman piranti lunak.

    STMicroelectronics-STM32WBA-Series-Miwiti-anjir-6

  • Paket firmware paket STM32CubeWBA nyedhiyakake partisi memori standar ing partisi _ .h filekasedhiya ing: \Drivers\CMSIS\Device\ST\STM32WBAxx\Include\T emplates
  • Ing pemisahan iki files, SAU dipatèni minangka standar. Akibate, pemetaan memori IDAU digunakake kanggo atribusi keamanan. Deleng tokoh Pemisahan sing aman / ora aman nggunakake teknologi TrustZone® ing manual referensi RM0495.
  • Yen pangguna ngaktifake SAU, konfigurasi wilayah SAU standar wis ditemtokake ing partisi files minangka nderek:
    • Wilayah SAU 0: 0x08080000 – 0x081FFFFF (setengah memori lampu kilat sing ora aman (512 Kbyte))
    • Wilayah SAU 1: 0x0BF88000 – 0x0BF97FFF (memori sistem ora aman)
    • Wilayah SAU 2: 0x0C07E000 – 0x0C07FFFF (aman, ora aman bisa ditelpon)
    • Wilayah SAU 3: 0x20010000 – 0x2001FFFF (SRAM2 ora aman (64 Kbyte))
    • Wilayah SAU 4: 0x40000000 – 0x4FFFFFFF (memori peta periferal sing ora aman)
  • Kanggo cocog karo pemisahan standar, piranti seri STM32WBAxx kudu duwe pilihan bita pangguna ing ngisor iki:
    • TZEN = 1 (piranti sing diaktifake TrustZone®)
    • SECWM1_PSTRT = 0x0 SECWM1_PEND = 0x3F (64 saka 128 kaca memori lampu kilat internal disetel minangka aman) Wigati: Memori lampu kilat internal wis aman kanthi standar ing TZEN = 1. Pilihan pangguna bita SECWM1_PSTRT/ SECWM1_PEND kudu disetel miturut aplikasi konfigurasi memori (wilayah SAU, yen SAU diaktifake). Linker proyek aplikasi aman/ora aman files uga kudu didadekake siji.
  • Kabeh mantanamples duwe struktur sing padha:
    • \Inc folder ngemot kabeh header files.
    • Folder Src sing ngemot kode sumber.
    • \EWARM, \MDK-ARM, lan \STM32CubeIDE folder ngemot project preconfigured kanggo saben toolchain.
    • readme.md lan readme.html nggambarake mantanample prilaku lan lingkungan needed kanggo nggawe iku bisa.
    • ioc file sing ngidini kedhaftar kanggo mbukak paling saka firmware Examples ing STM32CubeMX.

Miwiti karo STM32CubeWBA

Mlaku mantan HAL pisananample

Bagian iki nerangake carane prasaja iku kanggo mbukak mantan pisananample ing STM32CubeWBA. Migunakake minangka ilustrasi generasi saklar LED prasaja sing mlaku ing papan NUCLEO-WBA52CG:

  1. Unduh paket MCU STM32CubeWBA.
  2. Unzip menyang direktori sing dipilih.
  3. Priksa manawa ora kanggo ngowahi struktur paket ditampilake ing Figure 1. Sampeyan uga dianjurake kanggo nyalin paket ing lokasi cedhak volume ROOT (tegese C: \ ST utawa G: \ Tests), minangka sawetara IDE nemokke masalah nalika path dawa banget.

Mbukak TrustZone® pisanan sing aktifample

  • Sadurunge mbukak lan mbukak TrustZone® aktif example, iku wajib maca mantanampaku maca file kanggo konfigurasi tartamtu, sing njamin keamanan diaktifake kaya sing diterangake ing Bagean 4.2.1 proyek sing diaktifake TrustZone® (TZEN = 1 (byte pilihan pangguna)).
    1. Telusuri menyang \Projects\NUCLEO-WBA52CG\Examples.
    2. Bukak \GPIO, banjur \GPIO_IOToggle_TrustZone folder.
    3. Bukak proyek nganggo toolchain sing disenengi. A cepet liwatview carane mbukak, mbangun, lan mbukak mantanample karo toolchains sing didhukung diwenehi ing ngisor iki.
    4. Mbangun maneh kanthi urutan kabeh proyek sing aman lan ora aman files lan mbukak gambar sing aman lan ora aman menyang memori target.
    5. Run mantanample: ajeg, aplikasi aman malih LD2 saben detik, lan aplikasi nonsecure malih LD3 kaping pindho minangka cepet. Kanggo rincian liyane, waca readme file saka mantanample.
  • Kanggo mbukak, mbangun lan mbukak mantanampkaro toolchains sing didhukung, tindakake langkah ing ngisor iki:
    • EWARM:
      1. Ing ngisor mantanamping folder, mbukak \EWARM subfolder.
      2. Bukak ruang kerja Project.eww
      3. Mbangun maneh proyek aman xxxxx_S files: [Proyek]> [Mbangun maneh kabeh].
      4. Setel proyek xxxxx_NS nonsecure minangka aplikasi Aktif (klik tengen ing proyek xxxxx_NS [Set as Active])
      5. Mbangun maneh proyek ora aman xxxxx_NS files: [Proyek]> [Mbangun maneh kabeh].
      6. Lampu kilat binar sing ora aman nganggo [Proyek]>[Download]>[Ngunduh aplikasi aktif] .
      7. Setel xxxxx_S minangka aplikasi Aktif (klik tengen ing proyek xxxxx_S [Set minangka Aktif].
      8. Lampu kilat binar aman kanthi [Ngunduh lan Debug] (Ctrl+D).
      9. Jalankan program: [Debug]>[Go(F5)]
    • MDK-ARM:
      1. Bukak \MDK-ARM toolchain.
      2. Bukak ruang kerja Multiprojects file Project.uvmpw.
      3. Pilih proyek xxxxx_s minangka aplikasi Aktif ([Set minangka Proyek Aktif]).
      4. Mbangun proyek xxxxx_s.
      5. Pilih proyek xxxxx_ns minangka proyek Aktif ([Set minangka Proyek Aktif]).
      6. Mbangun proyek xxxxxx_ns.
      7. Muat biner sing ora aman ([F8]). Iki ngundhuh \MDK-ARM\xxxxx_ns\Exe\xxxxx_ns.axf menyang memori flash)
      8. Pilih Project_s project as Active project ([Set as Active Project]).
      9. Muat binar aman ([F8]). Iki ngundhuh \MDK-ARM\xxxxx_s\Exe\xxxxx_s.axf menyang memori lampu kilat).
      10. Run mantanample.
    • STM32CubeIDE:
      1. Bukak toolchain STM32CubeIDE.
      2. Bukak ruang kerja Multiprojects file .proyek.
      3. Mbangun maneh proyek xxxxx_Secure.
      4. Mbangun maneh proyek xxxxx_NonSecure.
      5. Bukak aplikasi [Debug minangka STM32 Cortex-M C/C++] kanggo proyek aman.
      6. Ing jendhela [Sunting konfigurasi], pilih panel [Mulai], lan nambah mbukak gambar lan simbol saka project nonsecure.
        penting: Proyek sing ora aman kudu dimuat sadurunge proyek aman.
      7. Klik [Ok].
      8. Run mantanampbabagan perspektif debug.

Mbukak TrustZone® pisanan dipatèni example

  • Sadurunge mbukak lan mbukak TrustZone® dipatèni example, iku wajib maca mantanampaku maca file kanggo konfigurasi tartamtu. Yen ora ana sebutno tartamtu, mesthekake yen piranti Papan wis keamanan dipatèni (TZEN = 0 (byte pilihan pangguna)). Waca FAQ kanggo nindakake regresi opsional menyang TZEN = 0
    1. Telusuri menyang \Projects\NUCLEO-WBA52CG\Examples.
    2. Bukak \GPIO, banjur \GPIO_EXTI folder.
    3. Bukak proyek nganggo toolchain sing disenengi. A cepet liwatview carane mbukak, mbangun, lan mbukak mantanample karo toolchains sing didhukung diwenehi ing ngisor iki.
    4. Mbangun maneh kabeh files lan mbukak gambar menyang memori target.
    5. Run mantanample: Saben tombol push [USER] ditekan, LED LD1 malih. Kanggo rincian liyane, waca readme file saka mantanample.
  • Kanggo mbukak, mbangun lan mbukak mantanampkaro toolchains sing didhukung, tindakake langkah ing ngisor iki:
    • EWARM:
      1. Ing ngisor mantanamping folder, mbukak \EWARM subfolder.
      2. Bukak ruang kerja Project.eww (jeneng ruang kerja bisa diganti saka siji example menyang liyane).
      3. Mbangun maneh kabeh files: [Proyek]> [Mbangun maneh kabeh].
      4. Muat gambar proyek: [Proyek]>[Debug].
      5. Run program: [Debug]>[Go (F5)].
    • MDK-ARM:
      1. Ing ngisor mantanampfolder kasebut, bukak subfolder \MDK-ARM.
      2. Bukak ruang kerja Project.uvproj (jeneng ruang kerja bisa diganti saka siji example menyang liyane).
      3. Mbangun maneh kabeh files:[Proyek]>[Mbangun maneh kabeh target files].
      4. Muat gambar proyek: [Debug]>[Start/Stop Debug Session].
      5. Run program: [Debug]>[Run (F5)].
    • STM32CubeIDE:
      1. Bukak toolchain STM32CubeIDE.
      2. Klik [File]>[Ganti Workspace]>[Liyane] banjur telusuri menyang direktori ruang kerja STM32CubeIDE.
      3. Klik [File]>[Import] , pilih [General]>[Existing Projects into Workspace], banjur klik [Next].
      4. Telusuri direktori ruang kerja STM32CubeIDE lan pilih proyek kasebut.
      5. Mbangun maneh kabeh proyek files: Pilih proyek ing jendhela [Project Explorer] banjur klik menu [Project]> [Build project].
      6. Jalankan program: [Run]>[Debug (F11)]
Ngembangake aplikasi khusus

Cathetan: Piranti lunak kudu ngaktifake cache instruksi (ICACHE) kanggo entuk 0 eksekusi negara ngenteni saka memori lampu kilat, lan tekan kinerja maksimal lan konsumsi daya sing luwih apik.

Nggunakake STM32CubeMX kanggo ngembangake utawa nganyari aplikasi

  • Ing paket STM32CubeWBA MCU, meh kabeh project examples kui karo alat STM32CubeMX kanggo initialize sistem, peripheral, lan middleware.
  • Panggunaan langsung saka proyek sing ana example saka alat STM32CubeMX mbutuhake STM32CubeMX 6.10.0 utawa luwih dhuwur:
    • Sawise instalasi STM32CubeMX, bukak lan yen perlu nganyari proyek sing diusulake. Cara paling gampang kanggo mbukak proyek sing wis ana yaiku klik kaping pindho ing *.ioc file supaya STM32CubeMX kanthi otomatis mbukak proyek lan sumbere files.
    • STM32CubeMX ngasilake kode sumber inisialisasi proyek kasebut. Kode sumber aplikasi utama ngemot komentar "KODE PENGGUNA BEGIN" lan "KODE PENGGUNA END". Yen pilihan lan setelan IP diowahi, STM32CubeMX nganyari bagean initialization saka kode nanging ngreksa kode sumber aplikasi utama.
  • Kanggo ngembangake proyek khusus ing STM32CubeMX, tindakake proses langkah demi langkah:
    1. Pilih mikrokontroler STM32 sing cocog karo set periferal sing dibutuhake.
    2. Konfigurasi kabeh piranti lunak sing ditempelake sing dibutuhake nggunakake solver konflik pinout, helper setelan jam-wit, kalkulator konsumsi daya, lan utilitas sing nindakake konfigurasi periferal MCU (kayata GPIO utawa USART) lan tumpukan middleware (kayata USB).
    3. Gawe kode C initialization adhedhasar konfigurasi sing dipilih. Kode iki siap digunakake ing sawetara lingkungan pangembangan. Kode pangguna disimpen ing generasi kode sabanjure.
  • Kanggo informasi luwih lengkap babagan STM32CubeMX, waca manual pangguna STM32CubeMX kanggo konfigurasi STM32 lan wiwitan kode C generasi (UM1718).
  • Kanggo dhaptar proyek kasedhiya examples kanggo STM32CubeWBA, deleng cathetan aplikasi STM32Cube firmware examples kanggo seri STM32WBA (AN5929).

Aplikasi driver

aplikasi HAL
Bagean iki nerangake langkah-langkah sing dibutuhake kanggo nggawe aplikasi HAL khusus nggunakake STM32CubeWBA:

  1. Nggawe proyek
    • Kanggo nggawe proyek anyar, miwiti salah siji saka proyek Cithakan sing kasedhiya kanggo saben papan ing \Projects\ \Cithakan utawa saka proyek apa wae sing kasedhiya ing \Proyek\ \Ujian utawa \Proyek\ \Aplikasi (ngendi nuduhake jeneng Papan, kayata STM32CubeWBA).
    • Proyek Cithakan nyedhiyakake fungsi loop utama kosong. Nanging, iku titik wiwitan apik kanggo ngerti setelan project STM32CubeWBA. Cithakan nduweni ciri ing ngisor iki:
      • Isine kode sumber HAL, CMSIS, lan driver BSP, yaiku set komponen minimal sing dibutuhake kanggo ngembangake kode ing papan tartamtu.
      • Isine dalan sing kalebu kanggo kabeh komponen perangkat kukuh.
      • Iki nemtokake piranti seri STM32WBA sing didhukung, ngidini driver CMSIS lan HAL dikonfigurasi kanthi bener.
      • Iki nyedhiyakake pangguna sing siap digunakake files preconfigured minangka ditampilake ing ngisor iki:
        HAL diwiwiti kanthi basis wektu standar karo inti Arm® SysTick. SysTick ISR dileksanakake kanggo HAL_Delay () waé.
        Cathetan: Nalika nyalin proyek sing wis ana menyang lokasi liya, priksa manawa kabeh dalan sing kalebu dianyari.
  2. Tambah middleware sing dibutuhake menyang proyek pangguna (opsional)
    Kanggo ngenali sumber files kanggo ditambahake menyang project file dhaftar, deleng dokumentasi kasedhiya kanggo saben middleware. Deleng aplikasi ing \Projects\STM32xxx_yyy\Applications\ (endi nuduhake tumpukan middleware, kayata ThreadX) kanggo ngerti sumber files lan kalebu path kudu ditambahake.
  3. Konfigurasi komponen perangkat kukuh
    Komponen HAL lan middleware nawakake pilihan konfigurasi wektu mbangun nggunakake macro #define sing diumumake ing header file. A konfigurasi Cithakan file kasedhiya ing saben komponen, sing kudu disalin menyang folder proyek (biasane konfigurasi file jenenge xxx_conf_template.h, tembung _template kudu dibusak nalika nyalin menyang folder project). Konfigurasi file menehi informasi cukup kanggo ngerti impact saben pilihan konfigurasi. Informasi sing luwih rinci kasedhiya ing dokumentasi sing kasedhiya kanggo saben komponen.
  4. Miwiti perpustakaan HAL
    Sawise mlumpat menyang program utama, kode aplikasi kudu nelpon HAL_Init () API kanggo miwiti perpustakaan HAL, sing nindakake tugas ing ngisor iki:
    • Konfigurasi memori lampu kilat prefetch lan SysTick ngganggu prioritas (liwat macro ditetepake ing st m32wbaxx_hal_conf.h).
    • Konfigurasi SysTick kanggo generate interrupt saben milidetik ing SysTick ngganggu prioritas TICK_INT_PRIO ditetepake ing stm32wbaxx_hal_conf.h.
    • Setelan prioritas grup NVIC dadi 0.
    • Telpon fungsi panggilan balik HAL_MspInit() ditetepake ing pangguna stm32wbaxx_hal_msp.c file kanggo nindakake initializations hardware tingkat rendah global.
  5. Konfigurasi jam sistem
    Konfigurasi jam sistem ditindakake kanthi nelpon loro API sing diterangake ing ngisor iki:
    • HAL_RCC_OscConfig(): API iki ngatur osilator internal lan eksternal. Pangguna milih kanggo ngatur siji utawa kabeh osilator.
    • HAL_RCC_ClockConfig(): API iki ngatur sumber jam sistem, latensi memori lampu kilat, lan prescalers AHB lan APB.
  6. Initialize peripheral
    • Pisanan nulis fungsi HAL_PPP_MspInit periferal. Terusake kaya ing ngisor iki:
      • Aktifake jam periferal.
      • Konfigurasi GPIOs periferal.
      • Konfigurasi saluran DMA lan ngaktifake gangguan DMA (yen perlu).
      • Aktifake interupsi periferal (yen perlu).
    • Sunting stm32xxx_it.c kanggo nelpon handler interrupt sing dibutuhake (peripheral lan DMA), yen perlu.
    • Nulis fungsi callback lengkap proses, yen ngganggu peripheral utawa DMA wis ngrancang kanggo digunakake.
    • Ing pangguna utama.c file, initialize struktur nangani peripheral banjur nelpon fungsi HAL_PPP_Init () kanggo initialize peripheral.
  7. Ngembangake aplikasi
    • Ing stage, sistem wis siyap lan pangembangan kode aplikasi pangguna bisa diwiwiti.
    • HAL nyedhiyakake API sing intuisi lan siap digunakake kanggo ngatur periferal. Ndhukung polling, interrupts, lan model pemrograman DMA, kanggo nampung syarat aplikasi. Kanggo rincian liyane babagan carane nggunakake saben peripheral, waca mantan sugihample set kasedhiya ing paket STM32CubeWBA MCU.
      Ati-ati: Ing implementasine HAL standar, timer SysTick digunakake minangka timebase: iku ngasilake interrupts ing interval wektu biasa. Yen HAL_Delay () diarani saka proses ISR peripheral, priksa manawa SysTick interrupt duwe prioritas sing luwih dhuwur (numerically luwih murah) tinimbang interrupt peripheral. Yen ora, proses ISR panelpon diblokir. Fungsi sing mengaruhi konfigurasi timebase diumumake minangka __weak supaya bisa diganti yen ana implementasi liyane ing pangguna file (nggunakake timer tujuan umum, contoneample, utawa sumber wektu liyane). Kanggo rincian liyane, waca HAL_TimeBase example.

Aplikasi LL
Bagean iki nerangake langkah-langkah sing dibutuhake kanggo nggawe aplikasi LL khusus nggunakake STM32CubeWBA.

  1. Nggawe proyek
    • Kanggo nggawe proyek anyar, miwiti saka proyek Templates_LL sing kasedhiya kanggo saben papan ing \Projects\ \Templates_LL, utawa saka proyek sing kasedhiya ing \Projects\ \Exampkurang_LL ( nuduhake jeneng papan, kayata NUCLEO-WBA32CG).
    • Proyek cithakan menehi fungsi daur ulang utama kosong, kang titik wiwitan apik kanggo ngerti setelan project kanggo STM32CubeWBA. Ciri utama Cithakan yaiku:
      • Isine kode sumber driver LL lan CMSIS, yaiku set komponen minimal sing dibutuhake kanggo ngembangake kode ing papan tartamtu.
      • Isine dalan sing kalebu kanggo kabeh komponen perangkat kukuh sing dibutuhake.
      • Milih piranti seri STM32WBA sing didhukung lan ngidini konfigurasi sing bener saka driver CMSIS lan LL.
      • Iki nyedhiyakake pangguna sing siap digunakake files sing wis dikonfigurasi kaya ing ngisor iki:
        ◦ main.h: lapisan abstraksi definisi LED lan USER_BUTTON.
        ◦ main.c: Konfigurasi jam sistem kanggo frekuensi maksimum.
  2. Port proyek sing wis ana menyang papan liyane
    Kanggo ndhukung proyek sing ana ing papan target liyane, miwiti saka proyek Templates_LL sing kasedhiya kanggo saben papan lan kasedhiya ing \Projects\ \Cithakan_LL.
    • Pilih mantan LLample: Kanggo nemokake Papan kang LL Examples disebarake, deleng dhaptar LL examples STM32CubeProjectsList.html.
  3. Port LL example:
    • Salin / tempel folder Templates_LL - kanggo njaga sumber wiwitan - utawa langsung nganyari proyek Temp lates_LL sing wis ana.
    • Banjur porting utamane kanggo ngganti Templates_LL files dening Examples_LL diangkah proyek.
    • Tansah kabeh bagean tartamtu Papan. Kanggo alasan kajelasan, papan bagean tartamtu sing gendero karo tartamtu tags:

      STMicroelectronics-STM32WBA-Series-Miwiti-anjir-7

    • Mangkono, langkah-langkah porting utama yaiku ing ngisor iki:
      • Ganti stm32wbaxx_it.h file
      • Ganti stm32wbaxx_it.c file
      • Ganti utama.h file lan nganyari: Tansah definisi tombol LED lan pangguna saka cithakan LL ing KONFIGURASI SPESIFIK PAPAN tags.
      • Ganti sing utama.c file lan nganyari:
    • Tansah konfigurasi jam fungsi cithakan SystemClock_Config() LL ing KONFIGURASI SPESIFIK PAPAN tags.
    • Gumantung ing definisi LED, ngganti saben kedadeyan LDx karo LDy liyane kasedhiya ing main.h file.
    • Kanthi modifikasi kasebut, mantanample saiki mlaku ing Papan diangkah

Aplikasi keamanan
Paket iki dikirim nganggo aplikasi keamanan.

Aplikasi SBSFU

  • SBSFU nyedhiyakake solusi Root of Trust, kalebu Boot Aman lan fungsionalitas Update Firmware Aman (adhedhasar MCUboot).
  • Solusi kasebut digunakake sadurunge nglakokake aplikasi.
  • Solusi kasebut menehi mantanample saka layanan aman (GPIO toggle), sing diisolasi saka aplikasi sing ora aman. Aplikasi sing ora aman nalika runtime isih bisa nggunakake solusi iki.

aplikasi TFM
TFM nyedhiyakake solusi Root of Trust kalebu Boot Aman lan fungsionalitas Update Firmware Aman
(adhedhasar MCUboot). Solusi kasebut digunakake sadurunge nglakokake aplikasi. Solusi kasebut nyedhiyakake layanan aman TFM sing diisolasi saka aplikasi sing ora aman. Aplikasi sing ora aman nalika runtime isih bisa nggunakake solusi iki.

aplikasi RF
Aplikasi RF diterangake ing cathetan aplikasi iki: Mbangun aplikasi nirkabel nganggo mikrokontroler seri STM32WBA (AN5928).

Entuk nganyari rilis STM32CubeWBA
Rilis lan patch paket STM32CubeWBA MCU paling anyar kasedhiya saka STM32WBA Series. Bisa uga dijupuk saka tombol Mriksa UPDATE ing STM32CubeMX. Kanggo rincian liyane, waca Bagean 3 saka manual pangguna STM32CubeMX kanggo konfigurasi STM32 lan wiwitan kode C generasi (UM1718).

FAQ

  • Nalika aku kudu nggunakake HAL tinimbang driver LL?
    • Pembalap HAL nawakake API tingkat dhuwur lan berorientasi fungsi, kanthi portabilitas sing dhuwur. Kerumitan produk utawa peripheral didhelikake kanggo pangguna pungkasan.
    • Pembalap LL nawakake API tingkat registrasi lapisan rendah, kanthi optimalisasi sing luwih apik nanging kurang portabel. Dheweke mbutuhake kawruh sing jero babagan spesifikasi produk utawa IP.
  • Bisa nggunakake driver HAL lan LL bebarengan? Yen aku bisa, apa watesan?
    • Sampeyan bisa nggunakake driver HAL lan LL. Gunakake HAL kanggo fase inisialisasi IP banjur atur operasi I/O karo driver LL.
    • Bentenipun utama antarane HAL lan LL yaiku pembalap HAL kudu nggawe lan nggunakake gagang kanggo manajemen operasi nalika pembalap LL beroperasi langsung ing register periferal. Examples_MIX example nggambarake carane nyampur HAL lan LL.
  • Kepiye carane API inisialisasi LL diaktifake?
    • Dhéfinisi API inisialisasi LL lan sumber daya sing gegandhèngan (Struktur, literal, lan prototipe) dikondisikan déning switch kompilasi USE_FULL_LL_DRIVER.
    • Kanggo bisa nggunakake API initialization LL, nambah switch iki ing preprocessor kompiler toolchain.
  • Kepiye carane STM32CubeMX bisa ngasilake kode adhedhasar piranti lunak sing dipasang?
    STM32CubeMX nduweni kawruh babagan mikrokontroler STM32, kalebu periferal lan piranti lunak sing ngidini nyedhiyakake perwakilan grafis kanggo pangguna lan ngasilake *.h utawa *.c files adhedhasar konfigurasi pangguna.

WARTA PENTING - Wacan kanthi ati-ati

  • STMicroelectronics NV lan anak perusahaan ("ST") nduweni hak kanggo nggawe owahan, koreksi, dandan, modifikasi, lan dandan kanggo produk ST lan / utawa dokumen iki sawayah-wayah tanpa kabar. Para panuku kudu entuk informasi paling anyar babagan produk ST sadurunge nggawe pesenan. Produk ST didol miturut syarat lan kahanan adol ST nalika diakoni pesenan.
  • Para panuku mung tanggung jawab kanggo milih, milih, lan nggunakake produk ST lan ST ora duwe tanggung jawab kanggo pitulung aplikasi utawa desain produk para panuku.
  • Ora ana lisensi, nyata utawa diwenehake, kanggo hak properti intelektual sing diwenehake dening ST ing kene.
  • Adol maneh produk ST kanthi pranata sing beda karo informasi sing kasebut ing kene bakal ngilangi garansi sing diwenehake dening ST kanggo produk kasebut.
  • ST lan logo ST minangka merek dagang ST. Kanggo informasi tambahan babagan merek dagang ST, deleng www.st.com/trademarks. Kabeh jeneng produk utawa layanan liyane minangka properti sing nduweni.
  • Informasi ing dokumen iki ngganti lan ngganti informasi sing diwenehake sadurunge ing versi sadurunge dokumen iki.
  • © 2023 STMicroelectronics – Kabeh hak dilindhungi undhang-undhang

Dokumen / Sumber Daya

STMicroelectronics STM32WBA Series Miwiti [pdf] Manual pangguna
STM32WBA Series Miwiti, Miwiti, Miwiti

Referensi

Ninggalake komentar

Alamat email sampeyan ora bakal diterbitake. Kolom sing dibutuhake ditandhani *