STMicroelectronics-LOGO

STMicroelectronics UM3399 STM32Cube WiSE Radio Code Generator

STMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-PRODUCT

Pandhuan Panggunaan Produk

  • Aplikasi STM32CubeWiSE-RadioCodeGenerator mbutuhake paling ora 2 Gbytes RAM, port USB, lan maca Adobe Acrobat 6.0.
  • Extract isi stm32wise-cgwin.zip file menyang direktori sementara.
  • Bukak STM32CubeWiSE-RadioCodeGenerator_Vx.xxexe file lan tindakake pandhuan ing layar.
  • Paket STM32CubeWiSE-RadioCodeGenerator SW files diatur dadi folder kalebu 'app' lan 'examples'.
  • Kanggo nggawe flowgraph ing STM32CubeWiSE-RadioCodeGenerator:
  • Tambah SeqActions menyang flowgraph nggunakake toolbar utawa menu global.
  • Sambungake SeqActions menyang titik entri lan saben liyane kanthi nggambar panah transisi aksi.
  • Navigasi grafik aliran kanthi nyeret tumindak lan nambah transisi tumindak yen perlu.

Pambuka

  • Dokumen iki njlèntrèhaké STM32CubeWiSE-RadioCodeGenerator (STM32CubeWiSEcg) paket SW karo generator kode sequencer STM32WL3x MRSUBG.
  • STM32CubeWiSE-RadioCodeGenerator minangka aplikasi PC sing digunakake kanggo mbangun flowgraph sing nemtokake tumindak transceiver sing kudu ditindakake miturut kondisi kasebut, nggunakake driver sequencer MRSUBG.
  • Radio STM32WL3x Sub-GHz ngemot sequencer iki, kang mekanisme negara-kaya-mesin sing ngidini kanggo ngatur otonomi transfer RF, tanpa perlu kanggo melu-melu CPU.
  • Yen intervensi CPU dibutuhake, interrupts bisa ditetepake. Tumindak transceiver bisa disusun ing grafik aliran. Ing dokumen iki, tumindak transceiver individu diarani SeqActions.
  • Nanging, kode sumber dudu perwakilan paling apik kanggo flowgraphs, amarga ndhelikake struktur logis lan temporal.
  • STM32CubeWiSE-RadioCodeGenerator ngatasi masalah iki kanthi menehi cara grafis kanggo mbangun flowgraphs banjur ngekspor flowgraphs sing digawe minangka kode sumber C kanggo integrasi menyang aplikasi pangguna.
  • Definisi flowgraph disimpen ing mikrokontroler RAM ing wangun:
    • A pesawat saka Tabel ActionConfiguration RAM, disambung kanggo saben liyane nggunakake penunjuk. Pitunjuk iki nemtokake SeqActions, yaiku, jinis tumindak (kanggo example, transmisi, reception, abort), uga parameter radio khusus SeqAction lan kahanan kanggo transmisi tumindak.
    • Tabel RAM GlobalConfiguration unik. Iki nemtokake titik entri flowgraph (SeqAction pisanan sing bakal ditindakake), uga sawetara nilai panji standar lan paramèter radio umum.
  • Parameter radio, sing bisa dikonfigurasi kanthi individu kanggo saben SeqAction, disimpen ing salah sawijining register dinamis, sing isine minangka bagean saka tabel ActionConfiguration RAM. Parameter radio sing tetep liwat kabeh eksekusi flowgraph (kajaba diowahi sajrone interupsi CPU), disimpen ing register statis, sing isine minangka bagian saka tabel RAM konfigurasi global.

STMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-FIG-1

Informasi umum

Lisensi
Dokumen iki nggambarake piranti lunak sing nganggo mikrokontroler adhedhasar STM32WL3x Arm® Cortex ® -M0+.
Cathetan: Arm minangka merek dagang terdaftar saka Arm Limited (utawa anak perusahaan) ing AS lan / utawa ing papan liya.

Dokumen sing gegandhengan

Tabel 1. Referensi dokumen

Nomer Referensi judhul
[1] RM0511 STM32WL30xx/31xx/33xx Arm® adhedhasar MCU sub-GHz

Miwiti

  • Bagean iki nerangake kabeh syarat sistem kanggo mbukak STM32CubeWiSE-RadioCodeGenerator.
  • Uga rincian prosedur instalasi paket piranti lunak.

Persyaratan sistem
Aplikasi STM32CubeWiSE-RadioCodeGenerator nduweni syarat minimal:

  • PC nganggo prosesor Intel® utawa AMD® sing nganggo sistem operasi Microsoft® Windows 10
  • Paling ora 2 Gbytes RAM
  • port USB
  • Adobe Acrobat maca 6.0

Persiyapan paket STM32CubeWiSE-RadioCodeGenerator SW
Tindakake langkah-langkah ing ngisor iki:

  1. Extract isi stm32wise-cgwin.zip file menyang direktori sementara.
  2. Ekstrak lan bukak STM32CubeWiSE-RadioCodeGenerator_Vx.xxxe file lan tindakake pandhuan ing layar.

Paket STM32CubeWiSE-RadioCodeGenerator SW files
Paket STM32CubeWiSE-RadioCodeGenerator SW files diatur ing folder ing ngisor iki:

  • app: ngandhut STM32CubeWiSE-RadioCodeGenerator.exe
  • examples: folder iki diatur dadi subfolder ing ngisor iki:
  • kode: folder iki ngemot flowgraphs example wis diekspor minangka kode C, siap kanggo nyuntikaken menyang project aplikasi
  • flowgraphs: folder iki nyimpen sawetara examples skenario saka operasi sequencer MRSUBG otonom

Cathetan rilis lan lisensi files dumunung ing folder ROOT.

Katrangan piranti lunak STM32CubeWiSE-RadioCodeGenerator

  • Bagean iki nggambarake fungsi utama aplikasi STM32CubeWiSE-RadioCodeGenerator. Kanggo mbukak sarana iki, klik ing STM32CubeWiSE-RadioCodeGenerator lambang.

STMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-FIG-2

Sawise mbukak STM32CubeWiSE-RadioCodeGenerator, jendhela aplikasi utama katon. Iku kasusun saka:

  • A menu global lan toolbar
  • Perwakilan seret lan selehake visual saka flowgraph
  • Bagean konfigurasi SeqAction (mung katon yen SeqAction lagi diowahi)

Nggawe flowgraph
dhasar
Flowgraphs dibangun ing rong langkah:

  1. Tambah SeqActions menyang flowgraph. Iki bisa ditindakake kanthi nggunakake tombol "Tambah Tindakan" ing toolbar, nggunakake menu global (Sunting → Tambah Tindakan) utawa nganggo trabasan "Ctrl + A".
  2. Sambungake SeqActions menyang titik entri lan saben liyane kanthi nggambar panah transisi aksi.

Kahanan ing ngendi transisi kasebut ditetepake mengko (pirsani Bagean 3.2.1: Aliran kontrol).

Navigasi flowgraph, nyeret tumindak
Kanthi nyeret latar mburi checkerboard saka flowgraph karo pointer mouse (klik kiwa), ing viewport ing flowgraph bisa diatur. Roda gulung mouse bisa digunakake kanggo nggedhekake lan nyilikake. Ngeklik ing ngendi wae ing tumindak (kajaba port output, tombol mbusak lan tombol sunting) kanggo milih tumindak. Tumindak bisa diatur ing flowgraph kanthi nyeret nganggo tombol mouse kiwa.

Nambahake transisi tumindak

STMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-FIG-3

  • Minangka ditampilake ing Figure 2, saben tumindak wis loro "port output", disebut NextAction1 (NA1) lan NextAction2 (NA2), kang bisa disambungake menyang SeqActions sing kaleksanan sawise tumindak wis rampung. Kanggo exampDadi, NextAction1 bisa digunakake kanggo nglakokake sawetara tumindak yen tumindak saiki wis sukses lan NextAction2 bisa micu yen gagal.
  • Kanggo nggawe transisi tumindak, kisaran kursor mouse ing salah siji port output, penet tombol mouse kiwa lan pindhah pointer mouse kanggo nyeret panah transisi. Pindhah pointer mouse liwat port input ing sisih kiwa sawetara SeqAction liyane lan ngeculake tombol mouse kiwa kanggo nggawe sambungan permanen. Kanggo mbusak transisi tumindak, mung mbaleni langkah-langkah kanggo nggawe transisi tumindak, nanging ngeculake tombol mouse kiwa nang endi wae liwat latar mburi checkerboard.
  • Yen output (NextAction1, NextAction2) ora disambungake, sequencer bakal mungkasi yen tumindak sabanjure iki micu.
  • Priksa manawa uga nyambungake "Entry Point" menyang sawetara port input SeqAction. SeqAction iki pisanan dieksekusi sanalika sequencer dipicu.

Ngowahi lan mbusak tumindak

STMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-FIG-4

  • SeqActions bisa diowahi kanthi ngeklik tombol potlot ing sisih kiwa ndhuwur SeqAction. Bisa dibusak kanthi ngeklik salib abang ing sisih tengen ndhuwur (pirsani Gambar 3). Mbusak SeqAction uga mbusak transisi tumindak sing mlebu lan metu.

Konfigurasi SeqAction
SeqActions bisa dikonfigurasi liwat antarmuka konfigurasi tab sing bisa diakses liwat tombol potlot ing sisih kiwa ndhuwur saben tumindak ing flowgraph. Antarmuka iki ateges configures isi Tabel ActionConfiguration RAM kanggo tumindak tartamtu, dumadi saka loro opsi konfigurasi related aliran kontrol uga isi register dinamis. Isi register dinamis bisa salah siji diatur kanthi manual karo kontrol lengkap saben Nilai register (ndeleng Bagean 3.2.3: Konfigurasi radio Lanjut) utawa liwat antarmuka sing disederhanakake (ndeleng bagean 3.2.2: Konfigurasi radio dhasar). Antarmuka sing disederhanakake kudu cukup kanggo meh kabeh kasus panggunaan.

Kontrol aliran
Tab aliran kontrol (pirsani Gambar 4) ngemot sawetara opsi konfigurasi dhasar kayata jeneng tumindak lan interval wektu entek tumindak. Jeneng tumindak ora mung digunakake kanggo tampilan ing flowgraph nanging uga digawa menyang kode sumber kui.

STMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-FIG-5STMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-FIG-6

  • Tab aliran kontrol (pirsani Gambar 4) ngemot sawetara opsi konfigurasi dhasar kayata jeneng tumindak lan interval wektu entek tumindak. Jeneng tumindak ora mung digunakake kanggo tampilan ing flowgraph nanging uga digawa menyang kode sumber kui.
  • Sing paling penting, tab aliran kontrol ngatur kahanan sing gumantung karo transisi menyang NextAction1 / NextAction2 uga interval transisi lan panji. Kondisi transisi bisa dikonfigurasi kanthi ngeklik tombol kanthi label "...", sing nggawe dialog pilihan topeng sing ditampilake ing Gambar 5 katon. Interval transisi ngowahi properti NextAction1Interval / NextAction2Interval saka tabel RAM. Deleng manual referensi STM32WL3x [1] kanggo informasi luwih lengkap babagan makna interval iki lan pentinge flag SleepEn / ForceReload / ForceClear.
  • Salajengipun, katrangan singkat babagan blok SeqAction bisa ditambahake ing tab iki. Katrangan iki mung digunakake kanggo tujuan dokumentasi lan digawa menyang kode sumber sing digawe minangka komentar kode sumber.

Konfigurasi radio dhasar

STMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-FIG-7

Tab konfigurasi radio dhasar bisa dipérang dadi telung bagéan:

  1. Bagean ing sisih ndhuwur ing ngendi loro paramèter sing paling penting kanggo tumindak apa wae dikonfigurasi: printah kanggo nglakokake (TX, RX, NOP, SABORT, lan sapiturute) lan, yen ana, dawane paket sing bakal ditransfer.
  2. Bagean ing sisih kiwa ing ngendi paramèter radio nyata kayata: frekuensi operator, tingkat data, sifat modulasi, ambang buffer data lan timer dikonfigurasi.
  3. A bagean ing sisih tengen ngendi CPU interrupts bisa individu aktif. Handler interrupt digawe kanggo saben interrupts sing dicenthang. Iki dhasar ngatur isi registrasi RFSEQ_IRQ_ENABLE.

Deleng manual referensi STM32WL3x [1] kanggo makna saka macem-macem paramèter radio.

Konfigurasi radio majeng

STMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-FIG-8

  • Yen opsi konfigurasi kapapar liwat tab konfigurasi radio dhasar (Section 3.2.2: Konfigurasi radio dhasar) ora cukup, tab konfigurasi radio STM32WL3x majeng ngidini setelan isi register dinamis kasepakatan. Tab konfigurasi lanjut diaktifake kanthi menehi centhang ing kothak Konfigurasi Lanjut ing sisih tengen ndhuwur antarmuka konfigurasi tab.
  • Sampeyan ora bisa nggunakake konfigurasi dhasar lan majeng bebarengan, pangguna kudu milih siji utawa liyane. Nanging, mesthi uga bisa ngowahi kode sumber sing digawe kanthi manual lan nambah opsi konfigurasi sing potensial ilang.

Dialog konfigurasi global

STMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-FIG-9

  • Dialog "Global Project Settings" bisa diakses liwat tombol toolbar "Global Settings". Dialog ngemot loro opsi konfigurasi kanggo isi register statis uga setelan project tambahan. Elinga yen mung bagean cilik saka opsi konfigurasi register statis bisa diatur liwat dialog iki. Opsi iki mung kasedhiya kanggo nyepetake aplikasi prototipe aplikasi nganggo STM32CubeWiSE-RadioCodeGenerator.
  • Biasane samesthine yen isi register statis disetel ing kode sumber sing ditulis kanthi manual.
  • Makna saka setelan proyek liyane diterangake ing dialog dhewe.
  • Kode C tambahan sing dilebokake sakdurunge nggawe tabel RAM Konfigurasi Global saka isi register statis uga bisa diwenehake. Kolom iki bisa digunakake kanggo nyetel nilai register statis sing ora bisa diakses liwat topeng konfigurasi register statis sing kasedhiya.

Generasi kode
Flowgraph bisa diterjemahake menyang kode sumber proyek C lengkap kanthi mencet tombol Generate Code ing toolbar. Folder proyek sing digawe ora ngemot proyek files kanggo IAR, Keil®, utawa GCC. Iki files kudu ditambahake kanthi manual menyang project STMWL3x.
Iki minangka struktur folder proyek sing digawe:

Folder Proyek

  • inc
  • SequencerFlowgraph.h: header file kanggo SequencerFlowgraph.c, statis. Aja nyunting iki.
  • stm32wl3x_hal_conf.h: konfigurasi HAL STM32WL3x file, statis.
  • src
  • SequencerFlowgraph.c: definisi flowgraph. Iki sing penting file sing nggunakake driver sequencer kanggo netepake tabel RAM konfigurasi global lan tumindak-konfigurasi. Autogenerated, aja nyunting.
  • utama.c: Proyek utama file sing nduduhake carane mbukak lan ngetrapake definisi grafik aliran. Statis, modifikasi iki yen perlu.
  • Kanggo ngowahi main.c utawa stm32wl3x_hal_conf.h, pilih overwrite prilaku Tansah ing setelan project. Kanthi cara iki, mung SequencerFlowgraph.c sing bakal ditimpa.

Carane ngimpor kode kui menyang Ex CubeMXample
Kanggo ngimpor proyek sing digawe dening STM32CubeWiSE-RadioCodeGenerator menyang mantan CubeMXample (MRSUBG_Skeleton), sampeyan kudu tindakake langkah ing ngisor iki:

  1. Bukak folder sing ngemot files kui dening STM32CubeWiSE-RadioCodeGenerator lan nyalin folder "Inc" lan "Src".
  2. Tempel loro folder ing folder "MRSUBG_Skeleton" nimpa loro sing wis ana.
  3. Bukak proyek "MRSUBG_Skeleton" ing salah sawijining IDE ing ngisor iki:
    • EWARM
    • MDK-ARM
    • STM32CubeIDE
  4. Ing proyek "MRSUBG_Skeleton", tambahake "SequencerFlowghraph.c" file:
    • Kanggo proyek EWARM, path kanggo nambah file punika: MRSUBG_Skeleton\Application\UserSTMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-FIG-11
    • Kanggo proyek MDK-ARM, path kanggo nambah file punika: MRSUBG_Skeleton\Application/UserSTMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-FIG-12
    • Kanggo proyek STM32CubeIDE, path kanggo nambah file iku padha:
      MRSUBG_Skeleton\Application\UserSTMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-FIG-13
  5. Ing proyek MRSUBG_Skeleton, tambahake stm32wl3x_hal_uart.c lan stm32wl3x_hal_uart_ex.c files menyang path ing ngisor iki: MRSUBG_Skeleton\Drivers\STM32WL3x_HAL_Driver. Path padha kanggo kabeh IDE. loro files dumunung ing Firmware\Drivers\STM32WL3x_HAL_Driver\Src.STMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-FIG-14
  6. Kanggo nggunakake fitur COM, stm32wl3x_nucleo_conf.h file, dumunung ing Firmware\Projects\NUCLEOWL33CC\ Examples\MRSUBG\MRSUBG_Skeleton\Inc, kudu diowahi setelan USE_BSP_COM_FEATURE lan USE_COM_LOG dadi 1U:STMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-FIG-15
  7. Nyalin kode ing ngisor iki menyang "stm32wl3x_it.c", dumunung ing MRSUBG_Skeleton\Application\User.

STMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-FIG-16STMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-FIG-17

Flowgraph examples

  • Papat mantanample flowgraphs kasedhiya kajawi kode sumber. Iki mantanamples bisa dimuat menyang STM32CubeWiSE-RadioCodeGenerator kanthi ngeklik tombol "Muat" ing toolbar.

AutoACK_RX

STMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-FIG-18

  • Tur Auto-ACK nggambarake carane rong piranti STM32WL3x bisa ngobrol kanthi otomatis karo intervensi CPU minimal, kanthi bantuan hardware sequencer.
  • flowgraph iki ngleksanakake prilaku (Auto-Transmit-ACK) piranti A. Ing piranti A, sequencer wis initialized ing negara nampa (WaitForMessage), kang ngenteni pesen teka.
  • Sawise pesen sing bener teka, sequencer kanthi otomatis pindhah menyang negara ngirim (TransmitACK), ing ngendi paket ACK dikirim minangka respon, tanpa campur tangan CPU. Sawise rampung, sequencer direset menyang status WaitForMessage dhisikan.
  • Flowgraph iki nindakake prilaku sing padha karo MRSUBG_SequencerAutoAck_Rx example saka Exampfolder les\MRSUBG saka paket Software STM32Cube WL3. Yen AutoACK_RX flashed ing siji piranti
    A, lan AutoACK_TX flashed ing sawetara piranti, B, piranti loro ngirim pesen bali lan kasebut, kaya ing game ping-pong.

AutoACK_TX

STMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-FIG-19

  • Tur "Auto-ACK" nggambarake carane rong piranti STM32WL3x bisa ngobrol kanthi otomatis karo intervensi CPU minimal kanthi bantuan hardware sequencer.
  • flowgraph iki ngleksanakake prilaku ("Auto-Ngenteni-kanggo-ACK") piranti B. Ing piranti B, sequencer wis initialized ing negara transmisi (TransmitMessage), kang ngirim pesen. Sawise transmisi rampung, kanthi otomatis transisi menyang negara nampa ing ngendi ngenteni pangakuan saka piranti A (WaitForACK). Sawise pangenalan sing bener teka, sequencer direset menyang negara TransmitMessage awal lan kabeh proses diwiwiti maneh. Ing kasus ora ACK ditampa ing 4 detik, wektu entek micu lan sequencer bali menyang negara TransmitMessage tho.
  • Flowgraph iki nindakake prilaku sing padha karo "MRSUBG_SequencerAutoAck_Tx" example saka Exampfolder les\MRSUBG saka paket Software STM32Cube WL3. Yen AutoACK_RX flashed ing siji piranti, A, lan AutoACK_TX flashed ing sawetara piranti liyane, B, piranti loro ngirim pesen bali lan kasebut, kaya ing game ping-pong.

Listen before talk (LBT)

STMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-FIG-20

  • Mantan ikiample dijupuk saka manual referensi STM32WL3x [1]. Deleng manual kasebut kanggo rincian luwih lengkap babagan mantan ikiample.

Modus ngisep

STMicroelect-onics-UM3399-STM32Cube-WiSE-Radio-Code-Generator-FIG-21

  • Mantan ikiample dijupuk saka manual referensi STM32WL3x [1]. Deleng manual kasebut kanggo rincian luwih lengkap babagan mantan ikiample.

Riwayat revisi

Tabel 2. Riwayat revisi dokumen

Tanggal Versi Owah-owahan
21-November-2024 1 Rilis wiwitan.
10-Feb-2025 2 Dianyari jeneng piranti kanggo orane katrangan STM32WL3x.

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.
  • © 2025 STMicroelectronics – Kabeh hak dilindhungi undhang-undhang

FAQ

  • P: Apa syarat sistem minimal kanggo STM32CubeWiSE-RadioCodeGenerator?
    • A: Persyaratan sistem minimal kalebu paling ora 2 Gbytes RAM, port USB, lan maca Adobe Acrobat 6.0.
  • P: Kepiye carane bisa nyetel paket piranti lunak STM32CubeWiSE-RadioCodeGenerator?
    • A: Kanggo nyiyapake paket piranti lunak, ekstrak isi zip sing kasedhiya file menyang direktori sementara lan miwiti eksekusi file tindakake pandhuan ing layar.

Dokumen / Sumber Daya

STMicroelectronics UM3399 STM32Cube WiSE Radio Code Generator [pdf] Manual pangguna
UM3399, UM3399 STM32 Cube WiSE Radio Code Generator, UM3399, STM32, Cube WiSE Radio Code Generator, Radio Code Generator, Code Generator, Generator

Referensi

Ninggalake komentar

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