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.
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.
(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ẹ.
- 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)
- >>> node.bt.system.hello()
- 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)
- >>> node.bt.gattdb.start_characteristic(igba, char)
- Ṣ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:
- Gẹgẹ bi ninu ọran olupin, a yoo sopọ si ipade nipasẹ UART. Lo nọmba ibudo COM ti igbimọ keji rẹ nibi:
- 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:
- 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).
- 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:
- 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:
- 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:
- Fipamọ client.py ki o bẹrẹ lati laini aṣẹ. O yẹ ki o wo nkan bi eyi:
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ọ]
- 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);
- 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ẹ ipolowo
- Ṣ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:
- 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):
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ọ |