SILICON LABS LOGO

SILICON LABS 21Q2 Bluetooth Awọn ẹya ara ẹrọ Lab

SILICON LABS 21Q2 Bluetooth Awọn ẹya ara ẹrọ Lab

Bluetooth 21Q2 Awọn ẹya ara ẹrọ Lab Afowoyi

Iwe afọwọkọ laabu yii rin ọ nipasẹ diẹ ninu awọn ẹya Bluetooth SDK tuntun ti a ṣe afihan laarin itusilẹ 20Q4 ati 21Q2. Ninu laabu yii a yoo ṣẹda NCP example kọ sọfitiwia ogun ni ede Python. Lilo ẹya GATT tuntun ti o ni agbara a yoo tun kọ data data GATT lati sọfitiwia ogun dipo lilo oluṣeto GATT. Níkẹyìn LE Power Iṣakoso ẹya ara ẹrọ ti wa ni gbekalẹ nipa a fa ogun software.SILICON LABS 21Q2 Awọn ẹya Bluetooth Lab 1

Awọn ibeere pataki

Lati pari laabu yii, iwọ yoo nilo awọn atẹle wọnyi:

  • BG22 Thunderboard meji tabi WSTK meji pẹlu eyikeyi igbimọ redio EFR32BG/EFR32MG tabi apapọ awọn wọnyi
  • Simplicity Studio 5 ti fi sori ẹrọ, pẹlu Gecko SDK v3.2 pẹlu Bluetooth SDKv3.2
  • PC lori eyiti Python v3.6 tabi nigbamii ti fi sori ẹrọ

Ṣiṣalaye Awọn Ẹrọ Ibi-afẹde fun Iṣẹ NCP

  • So awọn igbimọ redio meji rẹ pọ ki o ṣii Simplicity Studio 5
  • Yan ọkan ninu awọn igbimọ redio lori taabu Awọn Adapter yokokoro
  • Ṣeto SDK ti o fẹ si v3.2.0 lori Loriview taabu ti nkan jiju view
  • Ṣii Example Projects & Demos taabu
  • Wa Bluetooth tuntun – demo NCP.
  • Tẹ Ṣiṣe lati filasi aworan ibi-afẹde NCP si igbimọ naa.SILICON LABS 21Q2 Awọn ẹya Bluetooth Lab 2

(Akiyesi: ni idakeji si Bluetooth – NCP ofo, iṣẹ akanṣe yii ko pẹlu data data GATT ti a ti kọ tẹlẹ, ṣugbọn o ni agbara GATT API ṣiṣẹ, eyiti o jẹ pataki ṣaaju fun awọn apakan atẹle)

  • Tun awọn igbesẹ kanna fun igbimọ redio miiran.

Ṣiṣẹda Ohun elo olupin Bluetooth kan ni Python

Bibẹrẹ

  • Apo pybgapi n pese aye lati fun awọn aṣẹ BGAPI si ẹrọ ibi-afẹde lati PC nipa lilo ede siseto Python. Lati fi sori ẹrọ package yii tẹ atẹle ni laini aṣẹ: pip fi sori ẹrọ pybgapi Fun alaye siwaju sii nipa ibẹwo package https://pypi.org/project/pybgapi/
  • Wa itumọ BGAPI tuntun file labẹ
  • C: \ SiliconLabs \ SimplicityStudio \ v5 \ Developer \ sdks \ gecko_sdk_suite \ v3.2.0 \ protocol \ bluetooth \ api \ sl_bt.xapi ki o si da o sinu rẹ ṣiṣẹ folda.
  • Ṣii bash Python (tẹ Python ninu CLI)
  • Gbe ile ikawe bgapi wọle pẹlu aṣẹ atẹle: >>> gbe bgapi wọle
  • Wa nọmba ibudo COM (fun apẹẹrẹ COM49) ti ọkan ninu awọn igbimọ redio rẹ. O yẹ ki o wa “JLink CDC UART Port” ninu Oluṣakoso Ẹrọ tabi ni ohun elo ebute ayanfẹ rẹ.SILICON LABS 21Q2 Awọn ẹya Bluetooth Lab 3
  • Sopọ si igbimọ redio rẹ:
    • >>> asopọ = bgapi.SerialConnector ('COM49')
  • Bẹrẹ ile-ikawe pybgapi fun ipade yii:
    • >>> ipade = bgapi.Bglib(asopọ,'sl_bt.xapi')
  • Ṣii ibaraẹnisọrọ BGAPI si ọna ipade yii:
    • >>> node.ìmọ ()
  • Ṣayẹwo ti o ba ti o le ibasọrọ pẹlu awọn ọkọ, lilo system_hello () pipaṣẹ. O yẹ ki o gba esi system_hello:
    • >>> node.bt.system.hello()
      • bt_rsp_system_hello(esi=0)
  • Tun ipade rẹ pada pẹlu aṣẹ atẹle:
    • node.bt.system.reset(0)
  • Bayi o yẹ ki o gba iṣẹlẹ system_boot. Lati mu iṣẹlẹ tuntun wa, lo pipaṣẹ atẹle:
    • evt = node.get_events (max_events=1)
    • titẹ (evt)
      • [bt_evt_system_boot (pataki = 3, kekere = 2, patch = 0, kọ = 774, bootloader = 17563648, hw = 1, hash = 1181938724)]

Ilé GATT database

  • Ohun elo ibi-afẹde Bluetooth – NCP ko pẹlu aaye data GATT ti a ti kọ tẹlẹ. Nibi a yoo kọ data data lati koodu. Ni akọkọ bẹrẹ igba kan fun kikọ ibi ipamọ data:
    • >>> igba = node.bt.gattdb.new_session () igba
  • Fi titun kan iṣẹ to GATT database. Nibi a yoo ṣafikun iṣẹ Wiwọle Generic ti o gba nipasẹ Bluetooth SIG. Eyi jẹ iṣẹ akọkọ (0x0) laisi awọn asia ti a ṣeto (0x0) ati pẹlu UUID 16bit (0x1800).
    • service = node.bt.gattdb.add_service (igba, 0, 0, bytes.fromhex("0018")).iṣẹ
  • Ṣafikun ẹya tuntun si iṣẹ naa. Nibi a yoo ṣafikun abuda Orukọ Ẹrọ si iṣẹ Wiwọle Generic pẹlu ohun-ini READ (0x2), ko si awọn ibeere aabo (0x0), ko si awọn asia (0x0), 16bit UUID (0x2a00), ipari oniyipada (0x2), ipari ti o pọju ti 20 ati pẹlu iye ibẹrẹ ti “PyBGAPI

Example":

  • >>> char = node.bt.gattdb.add_uuid16_characteristic(igba, iṣẹ, 2, 0, 0, bytes.fromhex('002a'), 2,
    • 20, awọn baiti ('PyBGAPI Example','utf-8′)) ti abuda
    • 3.15 Mu iṣẹ tuntun ṣiṣẹ:
  • >>> node.bt.gattdb.start_service(igba, iṣẹ)
    • bt_rsp_gattdb_start_service(esi=0)
  • Mu abuda tuntun ṣiṣẹ:
    • >>> node.bt.gattdb.start_characteristic(igba, char)
      • bt_rsp_gattdb_start_characteristic(esi=0)
  • Ṣafipamọ awọn ayipada ati pa igba ṣiṣatunṣe ibi ipamọ data:
    • >>> node.bt.gattdb.commit(igba)
    • bt_rsp_gattdb_commit(esi=0)

Nsopọ si olupin naa

  • 3.18 Bayi pe a ni orukọ ẹrọ kan ni aaye data GATT, a le bẹrẹ ipolowo. Akopọ naa yoo polowo ẹrọ laifọwọyi pẹlu orukọ ti a ṣalaye ninu aaye data GATT rẹ:
    • >>> olupolongo_set = node.bt.advertiser.create_set ().handle
    • >>> node.bt.advertiser.start(olupolowo_set, 2, 2)
      • bt_rsp_advertiser_start(esi=0)
  • Bẹrẹ EFR Sopọ lori foonu rẹ, ki o wa ipolowo ẹrọ rẹ bi “PyBGAPI Example ”
  • O le sopọ si ẹrọ naa ki o ṣe iwari aaye data GATT rẹ eyiti o ni abuda Orukọ ẹrọ ni bayi

Akiyesi: ti o ba fẹ iyara pupọ example lai a wahala pẹlu GATT database, o si tun le filasi Bluetooth - NCP sofo example si rẹ ọkọ, eyi ti o ni a ipilẹ prebuilt GATT database. Ni idi eyi gbogbo ohun ti o ni lati ṣe ni ẹgbẹ agbalejo ni:

  • >>> gbe wọle bgapi
  • >>> asopọ = bgapi.SerialConnector ('COM49')
  • >>> ipade = bgapi.Bglib(asopọ,'sl_bt.xapi')
  • >>> node.ìmọ ()
  • >>> olupolongo_set = node.bt.advertiser.create_set ().handle
  • >>> node.bt.advertiser.start(olupolowo_set, 2, 2)
    • bt_rsp_advertiser_start(esi=0)

Ṣiṣẹda Ohun elo Onibara Bluetooth kan ni Python

  • Ṣiṣẹda alabara jẹ idiju diẹ sii ju imuse olupin kan. Nitorinaa a yoo kọ iwe afọwọkọ Python kan. Ṣii olootu ọrọ ayanfẹ rẹ ki o ṣẹda tuntun kan file, je ka pe client.py
  • Ṣe agbewọle awọn atẹle:SILICON LABS 21Q2 Awọn ẹya Bluetooth Lab 4
  • Gẹgẹ bi ninu ọran olupin, a yoo sopọ si ipade nipasẹ UART. Lo nọmba ibudo COM ti igbimọ keji rẹ nibi:SILICON LABS 21Q2 Awọn ẹya Bluetooth Lab 5
  • Lati ibi yii, ohun elo wa yoo jẹ iwakọ iṣẹlẹ. Nigbakugba ti iṣẹlẹ Bluetooth kan ba jẹ ipilẹṣẹ nipasẹ akopọ, a yoo mu iṣẹlẹ naa mu ati gbe ohun elo naa siwaju:SILICON LABS 21Q2 Awọn ẹya Bluetooth Lab 6
  • Jẹ ki a ṣalaye iṣẹ oluṣakoso iṣẹlẹ ki o ṣafikun olutọju kan fun iṣẹlẹ system_boot, nibiti a yoo bẹrẹ ọlọjẹ fun awọn ẹrọ agbeegbe. Akiyesi, pe iṣẹ yii yẹ ki o wa ni asọye ṣaaju lakoko lupu (ati lẹhin asọye ti oniyipada apa).SILICON LABS 21Q2 Awọn ẹya Bluetooth Lab 7.
  • Ni kete ti ẹrọ ọlọjẹ ti bẹrẹ, ipade naa yoo gba awọn ijabọ ọlọjẹ. Jẹ ki a ṣafikun oluṣakoso iṣẹlẹ fun awọn ijabọ ọlọjẹ laarin iṣẹ sl_bt_on_event (). Ti o ba rii ijabọ ọlọjẹ kan pẹlu orukọ ẹrọ ti o polowo “PyBGAPI Example”, alabara yoo ṣii asopọ si ẹrọ yẹn: SILICON LABS 21Q2 Awọn ẹya Bluetooth Lab 7
  • Ni kete ti o de aaye yii o tọ lati ṣayẹwo boya alabara rẹ rii olupin naa. Rii daju pe o ti bẹrẹ ipolowo lori ẹrọ miiran, lẹhinna fipamọ client.py, ki o bẹrẹ lati laini aṣẹ. O yẹ ki o wo nkan bi eyi: SILICON LABS 21Q2 Awọn ẹya Bluetooth Lab 8
  • Onibara gbọdọ ṣawari awọn iṣẹ ati awọn abuda lori olupin naa. Nibi a yoo ṣe iwari iṣẹ Wiwọle Generic ati abuda Orukọ Ẹrọ, ati nikẹhin ka iye ti abuda Orukọ Ẹrọ naa. Rọpo iṣẹ sl_bt_on_event() lọwọlọwọ rẹ pẹlu koodu atẹle:SILICON LABS 21Q2 Awọn ẹya Bluetooth Lab 9 SILICON LABS 21Q2 Awọn ẹya Bluetooth Lab 10
  • Fipamọ client.py ki o bẹrẹ lati laini aṣẹ. O yẹ ki o wo nkan bi eyi:SILICON LABS 21Q2 Awọn ẹya Bluetooth Lab 11

Fifi LE Power Iṣakoso Ẹya

Ìmọlẹ Awọn ẹrọ Àkọlé

Iṣakoso agbara LE ko ṣiṣẹ ni Bluetooth example ise agbese nipa aiyipada. Lati ṣafikun ẹya yii, Bluetooth> Ẹya> paati sọfitiwia PowerControl gbọdọ wa ni fi sori ẹrọ.

  • Ṣii ifilọlẹ view ti Simplicity Studio 5.
  • Yan ọkan ninu awọn ẹrọ rẹ ni taabu Awọn oluyipada yokokoro. Rii daju pe SDK ti o fẹ jẹ v3.2.
  • Ṣii Example Projects & Demos taabu ki o si ri Bluetooth – NCP sofo example. Tẹ [Ṣẹda] lati ṣẹda iṣẹ akanṣe. (Ni akoko yii a ko fẹ lati kọ data data GATT, nitorinaa a lo NCP ofo, eyiti o ni aiyipada.)
  • Ṣii taabu Configurator GATT, yan abuda Orukọ Ẹrọ, ki o tun kọ “Silabs Example” iye ibẹrẹ pẹlu “PyBGAPI Example” (ki alabara yoo mọ olupin naa). Tun kọ ipari iye pẹlu 15.
  • Tẹ ctrl-s lati fi ibi ipamọ data pamọ.
  • Ni awọn Project Configurator ṣii Software irinše taabu.
  • Wa Bluetooth> Ẹya> paati sọfitiwia PowerControl, ki o tẹ [Fi sori ẹrọ]SILICON LABS 21Q2 Awọn ẹya Bluetooth Lab 12
  • Tẹ lori cogwheel lẹgbẹẹ paati PowerControlsoftware lati ṣayẹwo awọn opin oke ati isalẹ ti iwọn goolu. Ṣeto iwọn kekere fun 1M
    • PHY si -45 (dipo -60). Botilẹjẹpe ni iṣe iye yii kii ṣe aipe, yoo ja si awọn atunṣe agbara Tx diẹ sii, eyiti o dara fun awọn idi ifihan.
  • Ninu ẹya SDK 3.2.0, iṣẹ-ṣiṣe kekere nilo lati lo lati ṣeto iwọn goolu daradara: ṣii sl_bluetooth.c file ri ninu / autogen folda ti ise agbese rẹ ati ki o gbe sl_bt_init_power_control (); iṣẹ ipe KI sl_bt_init_stack (& ​​konfigi);SILICON LABS 21Q2 Awọn ẹya Bluetooth Lab 13
  • Kọ ise agbese na ki o filasi si igbimọ rẹ.
  • Ti awọn igbimọ meji rẹ ba jẹ iru kanna, filasi aworan kanna si igbimọ miiran daradara. Ti igbimọ keji rẹ jẹ igbimọ ti o yatọ, lẹhinna tun awọn igbesẹ ti o wa loke fun igbimọ keji.

Bibẹrẹ olupin ati alabara

  • Bayi lẹẹkansi, ṣii Python bash, sopọ si igbimọ akọkọ rẹ, ki o bẹrẹ ipolowoSILICON LABS 21Q2 Awọn ẹya Bluetooth Lab 14
  • Ṣe atunṣe ohun elo alabara rẹ bẹ, pe ko jade lẹhin kika orukọ ẹrọ naa. Wa awọn ila wọnyi, ki o si fi wọn sinu asọye:SILICON LABS 21Q2 Awọn ẹya Bluetooth Lab 15
  • Fipamọ ati ṣiṣẹ ohun elo alabara rẹ
    • py .\ client.py
  • Gbe awọn igbimọ meji rẹ si jijin, lẹhinna gbe wọn lọra laiyara si ara wọn. Bayi o yẹ ki o rii pe akopọ naa bẹrẹ idinku ipele agbara rẹ lati 8dBm aiyipada si -3dBm (eyiti o jẹ agbara Tx ti o kere ju nipasẹ aiyipada):SILICON LABS 21Q2 Awọn ẹya Bluetooth Lab 16

Awọn iwe aṣẹ / Awọn orisun

SILICON LABS 21Q2 Bluetooth Awọn ẹya ara ẹrọ Lab [pdf] Ilana itọnisọna
21Q2, Awọn ẹya ara ẹrọ Bluetooth Lab, 21Q2 Bluetooth Lab Awọn ẹya ara ẹrọ, Laabu Awọn ẹya ara ẹrọ

Awọn itọkasi

Fi ọrọìwòye

Adirẹsi imeeli rẹ kii yoo ṣe atẹjade. Awọn aaye ti a beere ti wa ni samisi *