Ilogo ye-SILICON LABS

I-SILICON LABS 21Q2 Ilebhu Yezici ze-Bluetooth

I-SILICON LABS 21Q2 Ilebhu Yezici ze-Bluetooth

I-Bluetooth 21Q2 Izici Lebhu Manual

Le manuwali yelebhu ikuhambisa kwezinye izici ezintsha ze-Bluetooth SDK ezethulwe phakathi kokukhishwa okungu-20Q4 no-21Q2. Kule lebhu sizodala i-NCP example bese ubhala isoftware yokusingatha ngolimi lwePython. Ngokusebenzisa isici esisha esiguqukayo se-GATT sizophinda sakhe isizindalwazi se-GATT kusuka kusofthiwe yomsingathi esikhundleni sokusebenzisa i-GATT Configurator. Ekugcineni isici se-LE Power Control sethulwa ngokunweba isoftware yomsingathi.I-SILICON LABS 21Q2 Bluetooth Izici Lab 1

Okudingekayo

Ukuze uqedele le lebhu, uzodinga okulandelayo:

  • Ama-Thunderboard BG22 amabili noma ama-WSTK amabili ananoma iyiphi ibhodi yomsakazo ye-EFR32BG/EFR32MG noma inhlanganisela yalokhu
  • I-Siplicity Studio 5 ifakiwe, ne-Gecko SDK v3.2 kuhlanganise ne-Bluetooth SDKv3.2
  • I-PC okufakwa kuyo i-Python v3.6 noma eyakamuva

Ukukhanyisa Amadivayisi Aqondisiwe Wokusebenza kwe-NCP

  • Namathisela amabhodi akho omsakazo amabili bese uvula Isitudiyo Esilula 5
  • Khetha elinye lamabhodi omsakazo kuthebhu ye-Debug Adapters
  • Setha i-SDK Ethandwayo ibe yi-v3.2.0 ku-Overview ithebhu Yesiqalisi view
  • Vula i-Example Amaphrojekthi namademo ithebhu
  • Thola i-Bluetooth entsha - idemo ye-NCP.
  • Chofoza u-Run ukuze ukhanyise isithombe esiqondiwe se-NCP ebhodini.I-SILICON LABS 21Q2 Bluetooth Izici Lab 2

(Qaphela: ngokungafani ne-Bluetooth - I-NCP Engenalutho, le phrojekthi ayifaki isizindalwazi se-GATT esakhelwe kusengaphambili, kodwa ine-dynamic GATT API evuliwe, okuyisidingo sokuqala sezigaba ezilandelayo)

  • Phinda izinyathelo ezifanayo zelinye ibhodi lomsakazo.

Ukudala Isicelo Seseva ye-Bluetooth kuPython

Ukuqalisa

  • Iphakethe le-pybgapi linikeza ithuba lokukhipha imiyalo ye-BGAPI eqonde kudivayisi eqondiwe kusuka ku-PC kusetshenziswa ulimi lokuhlela lwePython. Ukufaka le phakheji thayipha okulandelayo kulayini womyalo: pip install pybgapi Ukuze uthole ulwazi olwengeziwe mayelana nokuvakasha kwephakheji https://pypi.org/project/pybgapi/
  • Thola incazelo yakamuva ye-BGAPI file ngaphansi
  • C:\SiliconLabs\SimplicityStudio\v5\developer\sdks\gecko_sdk_suite\v3.2.0\protocol\bluetooth\api\sl_bt.xapi bese uyikopishela kufolda yakho yokusebenza.
  • Vula i-python bash (thayipha i-python ku-CLI)
  • Ngenisa umtapo wezincwadi we-bgapi ngomyalo olandelayo: >>> ngenisa i-bgapi
  • Thola inombolo yembobo ye-COM (isb. COM49) yelinye lamabhodi akho omsakazo. Kufanele ubheke “Imbobo ye-JLink CDC UART” Kumphathi Wedivayisi noma kuhlelo lwakho lokusebenza lwetheminali oluthandayo.I-SILICON LABS 21Q2 Bluetooth Izici Lab 3
  • Xhuma ebhodini lakho lomsakazo:
    • >>> uxhumano = bgapi.SerialConnector('COM49')
  • Qalisa umtapo wezincwadi we-pybgapi wale nodi:
    • >>> indawo = bgapi.BGLib(uxhumano,'sl_bt.xapi')
  • Vula ukuxhumana kwe-BGAPI kule nodi:
    • >>> node.open()
  • Hlola ukuthi ungakwazi yini ukuxhumana nebhodi, usebenzisa umyalo wesistimu_hello(). Kufanele uthole impendulo_hello:
    • >>> node.bt.system.hello()
      • bt_rsp_system_hello(umphumela=0)
  • Setha kabusha inodi yakho ngomyalo olandelayo:
    • node.bt.system.reset(0)
  • Manje kufanele uthole umcimbi we-system_boot. Ukulanda umcimbi wakamuva, sebenzisa umyalo olandelayo:
    • evt = node.get_events(max_events=1)
    • phrinta (evt)
      • [bt_evt_system_boot(okukhulu=3, minor=2, patch=0, build=774, bootloader=17563648, hw=1, hash=1181938724)]

Ukwakha isizindalwazi se-GATT

  • Uhlelo lokusebenza oluqondiwe lwe-Bluetooth - NCP alufaki isizindalwazi se-GATT esakhelwe ngaphambilini. Lapha sizokwakha i-database kusuka kukhodi. Okokuqala qala iseshini yokwakha isizindalwazi:
    • >>> iseshini = node.bt.gattdb.new_session().session
  • Engeza isevisi entsha kusizindalwazi se-GATT. Lapha sizokwengeza isevisi Yokufinyelela Okujwayelekile eyamukelwe i-Bluetooth SIG. Lena isevisi eyinhloko (0x0) engenawo amafulegi asethiwe (0x0) kanye ne-16bit UUID (0x1800).
    • service = node.bt.gattdb.add_service(session, 0, 0, bytes.frmhex(“0018”)).isevisi
  • Engeza isici esisha kusevisi. Lapha sizokwengeza isici Segama Ledivayisi kusevisi Yokufinyelela Okujwayelekile enendawo ethi READ (0x2), azikho izimfuneko zokuphepha (0x0), awekho amafulegi (0x0), 16bit UUID (0x2a00), ubude obuguquguqukayo (0x2), ubude obuphelele obungu-20 futhi ngenani lokuqala elithi “PyBGAPI

Example":

  • >>> char = node.bt.gattdb.add_uuid16_characteristic(iseshini, isevisi, 2, 0, 0, bytes.fromhex('002a'), 2,
    • 20, amabhayithi('PyBGAPI Example','utf-8′)).isici
    • 3.15 Vula isevisi entsha:
  • >>> node.bt.gattdb.start_service(iseshini,isevisi)
    • bt_rsp_gattdb_start_service(umphumela=0)
  • Yenza kusebenze isici esisha:
    • >>> node.bt.gattdb.start_characteristic(session, char)
      • bt_rsp_gattdb_start_characteristic(umphumela=0)
  • Londoloza izinguquko bese uvala iseshini yokuhlela yesizindalwazi:
    • >>> node.bt.gattdb.commit(iseshini)
    • bt_rsp_gattdb_commit(umphumela=0)

Ixhuma Kuseva

  • 3.18 Manje njengoba sesinegama ledivayisi kusizindalwazi se-GATT, singaqala ukukhangisa. Isitaki sizokhangisa ngokuzenzakalelayo idivayisi ngegama elichazwe kusizindalwazi sayo se-GATT:
    • >>> advertiser_set = node.bt.advertiser.create_set().handle
    • >>> node.bt.advertiser.start(advertiser_set, 2, 2)
      • bt_rsp_advertiser_start(umphumela=0)
  • Qala i-EFR Connect kufoni yakho, futhi uthole ukukhangisa kwedivayisi yakho njengokuthi “PyBGAPI Example ”
  • Ungakwazi ukuxhuma kudivayisi futhi uthole isizindalwazi sayo se-GATT manje esinesici Segama Ledivayisi

Qaphela: uma ufuna i-ex esheshayoampngaphandle kokuzihlupha ngesizindalwazi se-GATT, usengakhanyisa i-Bluetooth – NCP Empty example ebhodini lakho, elinesizindalwazi se-GATT esakhelwe ngaphambilini. Kulokhu konke okufanele ukwenze ohlangothini lomsingathi yilokhu:

  • >>> ngenisa bgapi
  • >>> uxhumano = bgapi.SerialConnector('COM49')
  • >>> indawo = bgapi.BGLib(uxhumano,'sl_bt.xapi')
  • >>> node.open()
  • >>> advertiser_set = node.bt.advertiser.create_set().handle
  • >>> node.bt.advertiser.start(advertiser_set, 2, 2)
    • bt_rsp_advertiser_start(umphumela=0)

Ukudala Isicelo Seklayenti le-Bluetooth kuPython

  • Ukudala iklayenti kuyinkimbinkimbi kunokusebenzisa iseva. Ngakho-ke sizobhala umbhalo we-python. Vula isihleli sakho sombhalo osithandayo bese udala esisha file, asiyibize nge-client.py
  • Ngenisa okulandelayo:I-SILICON LABS 21Q2 Bluetooth Izici Lab 4
  • Njengasesimweni seseva, sizoxhuma ku-node nge-UART. Sebenzisa inombolo yembobo ye-COM yebhodi lakho lesibili lapha:I-SILICON LABS 21Q2 Bluetooth Izici Lab 5
  • Kusukela lapha, isicelo sethu sizoqhutshwa umcimbi. Noma kunini lapho umcimbi we-Bluetooth ukhiqizwa yisitaki, sizophatha umcimbi futhi siqhubekisele phambili uhlelo lokusebenza:I-SILICON LABS 21Q2 Bluetooth Izici Lab 6
  • Ake sichaze umsebenzi wesibambi somcimbi bese sengeza isibambi somcimbi we-system_boot, lapho sizoqala khona ukuskena amadivaysi e-peripheral. Qaphela, ukuthi lo msebenzi kufanele uchazwe ngaphambi kwe-loop yesikhathi (nangemva kwencazelo ye-node variable).I-SILICON LABS 21Q2 Bluetooth Izici Lab 7.
  • Uma isikena sesiqalisiwe, indawo izobe ithola imibiko yokuskena. Ake sengeze isibambi somcimbi ngemibiko yokuskena ngaphakathi komsebenzi we-sl_bt_on_event(). Uma umbiko wokuskena utholwa ngegama ledivayisi elikhangisiwe “PyBGAPI Example", iklayenti lizovula ukuxhumana kuleyo divayisi: I-SILICON LABS 21Q2 Bluetooth Izici Lab 7
  • Uma usufinyelele kuleli qophelo kufanelekile ukuhlola ukuthi iklayenti lakho liyasithola yini iseva. Qiniseka ukuthi usiqalile isikhangiso kwenye idivayisi, bese ulondoloza i-client.py, bese uyiqala emugqeni womyalo. Kufanele ubone okufana nalokhu: I-SILICON LABS 21Q2 Bluetooth Izici Lab 8
  • Iklayenti kufanele lithole amasevisi nezici kuseva. Lapha sizothola isevisi Yokufinyelela Okujwayelekile kanye nesici Segama Ledivayisi, futhi ekugcineni sifunde inani lesici Segama Ledivayisi. Miselela umsebenzi wakho wamanje we-sl_bt_on_event() ngekhodi elandelayo:I-SILICON LABS 21Q2 Bluetooth Izici Lab 9 I-SILICON LABS 21Q2 Bluetooth Izici Lab 10
  • Londoloza i-client.py bese uyiqala emugqeni womyalo. Kufanele ubone okufana nalokhu:I-SILICON LABS 21Q2 Bluetooth Izici Lab 11

Ingeza Isici Sokulawula Amandla we-LE

Ukukhanyisa Amadivayisi Akhonjiwe

I-LE Power Control ayivunyelwe ku-Bluetooth example amaphrojekthi ngokuzenzakalelayo. Ukwengeza lesi sici, i-Bluetooth > Isici > ingxenye yesofthiwe ye-PowerControl kufanele ifakwe.

  • Vula isiqalisi view yeSitudiyo Esilula 5.
  • Khetha eyodwa yamadivayisi akho kuthebhu ye-Debug Adapter. Qiniseka ukuthi i-SDK ekhethwayo yi-v3.2.
  • Vula i-Example Amaphrojekthi & Amademo futhi uthole i-Bluetooth - NCP Empty example. Cindezela okuthi [Dala] ukuze udale iphrojekthi. (Kulokhu asifuni ukwakha isizindalwazi se-GATT, ngakho-ke sisebenzisa i-NCP Empty, enohlelo oluzenzakalelayo.)
  • Vula ithebhu ye-GATT Configurator, khetha isici Segama Ledivayisi, bese ubhala phezu kwe-“Silabs Example” inani lokuqala elithi “PyBGAPI Example” (ukuze iklayenti libone iseva). Futhi bhala phezu kobude bevelu ngo-15.
  • Cindezela u-ctrl-s ukuze ulondoloze isizindalwazi.
  • Ku-Project Configurator vula ithebhu ye-Software Components.
  • Thola i-Bluetooth > Isici > ingxenye yesofthiwe ye-PowerControl, bese uchofoza okuthi [Faka]I-SILICON LABS 21Q2 Bluetooth Izici Lab 12
  • Chofoza ku-cogwheel eduze kwengxenye yesoftware ye-PowerControl ukuze uhlole imikhawulo engaphezulu nephansi yobubanzi obusagolide. Setha umkhawulo ophansi we-1M
    • PHY ukuya ku -45 (esikhundleni sika -60). Nakuba ekusebenzeni leli nani lingalungile, lizoholela ekulungisweni kwamandla e-Tx okwengeziwe, okuhle ngezinjongo zokubonisa.
  • Enguqulweni ye-SDK engu-3.2.0, i-workaround encane idinga ukusetshenziswa ukuze kusethwe kahle ububanzi obusagolide: vula i-sl_bluetooth.c file kutholwe kufolda ye-autogen yephrojekthi yakho bese uhambisa okuthi sl_bt_init_power_control(); shayela ucingo NGAPHAMBI kwe-sl_bt_init_stack(&config);I-SILICON LABS 21Q2 Bluetooth Izici Lab 13
  • Yakha iphrojekthi futhi uyikhanyise ebhodini lakho.
  • Uma amabhodi akho amabili ewuhlobo olufanayo, khanyisa isithombe esifanayo nakwelinye ibhodi. Uma ibhodi lakho lesibili liyibhodi elihlukile, phinda izinyathelo ezingenhla ebhodini lesibili.

Ukuqala Iseva kanye Neklayenti

  • Manje futhi, vula i-Python bash, xhuma ebhodini lakho lokuqala, bese uqala ukukhangisaI-SILICON LABS 21Q2 Bluetooth Izici Lab 14
  • Lungisa uhlelo lwakho lokusebenza lweklayenti ukuze lingaphumi ngemva kokufunda igama ledivayisi. Thola imigqa elandelayo, futhi uyibeke emazwaneni:I-SILICON LABS 21Q2 Bluetooth Izici Lab 15
  • Londoloza futhi usebenzise uhlelo lwakho lokusebenza lweklayenti
    • py .\client.py
  • Beka amabhodi akho amabili kude, bese uwasondeza kancane kancane kwelinye. Manje kufanele ubone ukuthi isitaki siqala ukwehlisa izinga laso lamandla ukusuka kokuzenzakalelayo okungu-8dBm kwehle kuye ku--3dBm (okungamandla amancane e-Tx ngokuzenzakalelayo):I-SILICON LABS 21Q2 Bluetooth Izici Lab 16

Amadokhumenti / Izinsiza

I-SILICON LABS 21Q2 Ilebhu Yezici ze-Bluetooth [pdf] Incwadi Yeziqondiso
21Q2, Ilebhu Yezici ze-Bluetooth, 21Q2 Ilebhu Yezici ze-Bluetooth, Ilebhu Yezici, Ilebhu

Izithenjwa

Shiya amazwana

Ikheli lakho le-imeyili ngeke lishicilelwe. Izinkambu ezidingekayo zimakiwe *