SILICON LABS 21Q2 Bluetooth Features Lab
Nihokikorangi 21Q2 Āhuatanga A-Toi Lab
Ma tenei pukapuka taiwhanga e hikoi ana koe ki etahi o nga ahuatanga Bluetooth SDK hou i whakauruhia i waenga i te tukunga 20Q4 me te 21Q2. I tenei taiwhanga ka hanga e matou he NCP exampme te tuhi i tetahi rorohiko manaaki i te reo Python. Ma te whakamahi i te ahua hou GATT hihiri ka hanga ano e matou te paataka raraunga GATT mai i te rorohiko kaihautu kaua ki te whakamahi i te GATT Configurator. Ka mutu ka whakaatuhia te ahuatanga LE Power Control ma te whakaroa i te punaha whakahaere.![]()
Nga whakaritenga
Hei whakaoti i tenei taiwhanga, ka hiahia koe ki enei e whai ake nei:
- E rua nga Thunderboard BG22, e rua ranei nga WSTK me tetahi papa reo irirangi EFR32BG/EFR32MG ranei te ranunga o enei
- Kua whakauruhia te Simplicity Studio 5, me te Gecko SDK v3.2 tae atu ki te Bluetooth SDKv3.2
- He PC e whakaurua ana a Python v3.6 i muri mai ranei
Te whakakorikori i nga Pūrere Whainga mo te Taumahinga NCP
- Whakauruhia o papa irirangi e rua ka whakatuwhera i te Simplicity Studio 5
- Tīpakohia tetahi o nga papa irirangi i runga i te ripa Patuiro Whāurutau
- Tautuhia te SDK Pai ki te v3.2.0 i runga i te Nekeview ripa o te Pūwhakarewa view
- Whakatuwheratia te Exampte ripa Kaupapa & Demo
- Kimihia te Nihokikorangi hou - NCP demo.
- Patohia te Oma kia kohia te ahua o te NCP ki te papa.

(Tuhipoka: he rereke ki te Nihokikorangi - NCP Empty, kaore tenei kaupapa i te whakauru i te papaunga raraunga GATT kua hangaia, engari kei a ia te kaha o te GATT API, he mea tika mo nga waahanga e whai ake nei)
- Whakahokia ano nga taahiraa mo tera atu papa irirangi.
Te hanga Taupānga Tūmau Nihokikorangi ki te Python
Te Timata
- Ko te putea pybgapi ka taea te tuku i nga whakahau BGAPI ki te taputapu i whäia mai i te PC ma te whakamahi i te reo hötaka Python. Hei tāuta i tēnei mōkihi, patohia ngā kōrero e whai ake nei i roto i te rārangi whakahau: pip install pybgapi Mo etahi atu korero mo te toronga mokihi https://pypi.org/project/pybgapi/
- Kimihia te whakamāramatanga BGAPI hou file i raro
- C:\SiliconLabs\SimplicityStudio\v5\developer\sdks\gecko_sdk_suite\v3.2.0\protocol\bluetooth\api\sl_bt.xapi ka kape ki to kōpaki mahi.
- Whakatuwheratia te python bash (momo python i te CLI)
- Kawemai te whare pukapuka bgapi me te whakahau e whai ake nei: >>> kawemai bgapi
- Kimihia te tau tauranga COM (hei tauira COM49) o tetahi o o papa irirangi. Me rapu koe mo te "JLink CDC UART Port" i roto i te Kaiwhakahaere Pūrere, i roto ranei i to taupānga kapeka tino pai.

- Hono atu ki to papa irirangi:
- >>> hononga = bgapi.SerialConnector('COM49')
- Arawhiti te puna pybgapi mo tenei node:
- >>> node = bgapi.BGLib(hononga,'sl_bt.xapi')
- Whakatuwherahia te whakawhitiwhiti BGAPI ki tenei pona:
- >>> node.tuwhera()
- Tirohia mehemea ka taea e koe te korero ki te poari, ma te whakamahi i te tono system_hello(). Me whiwhi koe i te whakautu system_hello:
- >>> node.bt.system.hello()
- bt_rsp_system_hello(hua=0)
- >>> node.bt.system.hello()
- Tautuhi ano i to node me te whakahau e whai ake nei:
- node.bt.system.reset(0)
- Inaianei me whiwhi koe i tetahi huihuinga system_boot. Hei tiki i te takahanga hou, whakamahia te whakahau e whai ake nei:
- evt = node.get_events(max_events=1)
- tā(evt)
- [bt_evt_system_boot(major=3, minor=2, patch=0, build=774, bootloader=17563648, hw=1, hash=1181938724)]
Te hanga i te papaunga raraunga GATT
- Ko te Nihokikorangi - Ko te taupānga whaainga NCP kaore i te whakauru i te papaunga raraunga GATT kua hangaia. I konei ka hangahia e matou te patengi raraunga mai i te waehere. Tuatahi me timata he huihuinga mo te hanga papaa raraunga:
- >>> hui = node.bt.gattdb.new_session().session
- Tāpiri ratonga hōu ki te pātengi raraunga GATT. I konei ka taapirihia e matou te ratonga Generic Access i tangohia e te Bluetooth SIG. He ratonga tuatahi tenei (0x0) kaore he haki kua whakaritea (0x0) me te UUID 16bit (0x1800).
- ratonga = node.bt.gattdb.add_service(wātū, 0, 0, bytes.fromhex(“0018”)).service
- Taapirihia he ahuatanga hou ki te ratonga. I konei ka taapirihia te ahua o te Ingoa Pūrere ki te ratonga Generic Access me te taonga READ (0x2), kaore he whakaritenga haumaru (0x0), kaore he haki (0x0), 16bit UUID (0x2a00), te roa rereke (0x2), te roanga teitei o te 20 me me te uara tuatahi o “PyBGAPI
Exampte”:
- >>> char = node.bt.gattdb.add_uuid16_characteristic(waahanga, ratonga, 2, 0, 0, bytes.fromhex('002a'), 2,
- 20, paita('PyBGAPI Example','utf-8′)).ahuatanga
- 3.15 Whakahohehia te ratonga hou:
- >>> node.bt.gattdb.start_service(waahanga, ratonga)
- bt_rsp_gattdb_start_service(hua=0)
- Whakahohehia te ahuatanga hou:
- >>> node.bt.gattdb.start_characteristic(wātū, pūāhua)
- bt_rsp_gattdb_start_characteristic(hua=0)
- >>> node.bt.gattdb.start_characteristic(wātū, pūāhua)
- Tiakina nga huringa ka kati i te waahi whakatika raraunga:
- >>> node.bt.gattdb.commit(wāhanga)
- bt_rsp_gattdb_commit(hua=0)
Te hono ki te Tūmau
- 3.18 Inaianei he ingoa taputapu kei roto i te paataka raraunga GATT, ka taea e matou te timata ki te panui. Ka panui aunoatia e te puranga te taputapu me te ingoa kua tautuhia i roto i tana paataka GATT:
- >>> advertiser_set = node.bt.advertiser.create_set().handle
- >>> node.bt.advertiser.start(advertiser_set, 2, 2)
- bt_rsp_advertiser_start(hua=0)
- Tīmatahia te EFR Connect i runga i to waea, ka kitea to panui taputapu hei "PyBGAPI Example ”
- Ka taea e koe te hono atu ki te taputapu me te kite i tana paataka raraunga GATT kei aianei te ahuatanga o te Ingoa Pūrere
Tuhipoka: ki te hiahia koe i te ex rawa tereampme te kore e whakararuraru i te raraunga GATT, ka taea tonu e koe te whakakorikori i te Nihokikorangi - NCP Empty exampki to poari, kei a ia he papaunga raraunga GATT taketake. I tenei keehi, ko nga mea katoa ka mahia e koe i te taha kaihautu ko:
- >>> kawemai bgapi
- >>> hononga = bgapi.SerialConnector('COM49')
- >>> node = bgapi.BGLib(hononga,'sl_bt.xapi')
- >>> node.tuwhera()
- >>> advertiser_set = node.bt.advertiser.create_set().handle
- >>> node.bt.advertiser.start(advertiser_set, 2, 2)
- bt_rsp_advertiser_start(hua=0)
Te Waihanga Taupānga Kiritaki Nihokikorangi ki Python
- Ko te hanga i te kiritaki he uaua ake i te whakatinana i te tūmau. Na reira ka tuhia e matou he tuhinga python. Whakatūwherahia to ētita kuputuhi tino pai ka hanga he hou file, me karangahia te client.py
- Kawemai i enei e whai ake nei:

- Pērā i te take o te tūmau, ka hono atu mātou ki te kōpuku mā te UART. Whakamahia te tau tauranga COM o to papa tuarua ki konei:

- Mai i konei, ka whakahaerehia to maatau tono. I nga wa katoa ka hangaia he huihuinga Nihokikorangi e te puranga, ma matou e whakahaere te huihuinga me te akiaki i te tono:

- Me tautuhi i te mahi kaikawe takahanga me te taapiri i tetahi kaihautu mo te kaupapa system_boot, ka timata taatau ki te matawai mo nga taputapu peripheral. Kia mahara, me tautuhia tenei mahi i mua i te koowhina while (me muri i te whakamaramatanga o te taurangi node).

- Kia timata te matawai, ka whiwhi purongo matawai te node. Me taapiri he kaihautu takahanga mo nga purongo matawai i roto i te mahi sl_bt_on_event(). Mena ka kitea he purongo karapa me te ingoa taputapu panui "PyBGAPI Example", ka whakatuwherahia e te kiritaki he hononga ki taua taputapu:

- Kia tae koe ki tenei waahi he pai ki te tirotiro mena ka kitea e to kaihoko te tūmau. Kia mohio, kua timata koe i te panui i runga i tetahi atu taputapu, ka tiakina te client.py, ka tiimata mai i te raina whakahau. Me kite koe i tetahi mea penei:

- Me kite te kiritaki i nga ratonga me nga ahuatanga i runga i te tūmau. I konei ka kitea e matou te ratonga Generic Access me te ahuatanga o te Ingoa Pūrere, ka mutu ka panuihia te uara o te ahuatanga Ingoa Pūrere. Whakakapihia to mahi sl_bt_on_event() o naianei ki te waehere e whai ake nei:

- Tiakina client.py ka timata mai i te raina whakahau. Me kite koe i tetahi mea penei:

Te taapiri i te waahanga mana LE Power
Te whakakorikori i nga taputapu whainga
LE Power Mana kaore i te whakahohea i te Nihokikorangi o muaample kaupapa i te taunoa. Hei taapiri i tenei ahuatanga, me whakauru te Nihokikorangi > Āhuahira > PowerControl wāhanga pūmanawa.
- Whakatuwheratia te whakarewa view o Simplicity Studio 5.
- Tīpakohia tētahi o ō taputapu ki te ripa Whakataurite Patuiro. Me mohio ko te SDK pai ake he v3.2.
- Whakatuwheratia te Exampte ripa Kaupapa & Demo ka kitea te Nihokikorangi - NCP Putua example. Patohia te [Waihanga] ki te hanga i te kaupapa. (I tenei wa kaore matou e hiahia ki te hanga i te paataka raraunga GATT, no reira ka whakamahia e matou te NCP Empty, he mea taunoa.)
- Whakatuwheratia te ripa Configurator GATT, tohua te ahua o te Ingoa Pūrere, ka tuhirua i te "Silabs Example" uara tuatahi me te "PyBGAPI Example” (kia mohio te kiritaki ki te tūmau). Tuhia ano te roa uara ki te 15.
- Pēhia ctrl-s hei tiaki i te pātengi raraunga.
- I roto i te Kaupapa Configurator whakatuwheratia te ripa Waenga Pūmanawa.
- Kimihia te Nihokikorangi > Āhuahira > Waenga pūmanawa PowerControl, ka paato i te [Tāuta]

- Patohia te wira i te taha o te waahanga PowerControlsoftware hei tirotiro i nga rohe o runga me raro o te awhe koura. Tautuhia te tepe iti mo te 1M
- PHY ki -45 (hei utu mo te -60). Ahakoa i roto i nga mahi kaore i te tino pai tenei uara, ka nui ake nga whakarereketanga mana Tx, he pai mo nga kaupapa whakaatu.
- I roto i te putanga SDK 3.2.0, me tono he mahi iti hei whakarite tika i te awhe koura: whakatuwheratia te sl_bluetooth.c file kitea i roto i te kōpaki /autogen o to kaupapa ka nukuhia te sl_bt_init_power_control(); karanga mahi i mua i te sl_bt_init_stack(&config);

- Hangaia te kaupapa me te uira ki to papa.
- Mēnā he rite te momo o ō papa e rua, whakakorikoria te ahua ano ki tetahi atu papa. Mena he papa rereke to papa tuarua, katahi ka tuaruatia nga hikoinga o runga mo te papa tuarua.
Tīmatahia te Tūmau me te Kiritaki
- Inaianei ano, whakatuwherahia te Python bash, hono atu ki to papa tuatahi, ka tiimata ki te panui

- Whakarerekētia to tono kiritaki kia kore ai e puta i muri i te panuitanga o te ingoa taputapu. Kimihia nga rarangi e whai ake nei, ka hoatu ki roto i te korero:

- Tiakina ka whakahaere i to tono kiritaki
- py .\client.py
- Whakanohoia o papa e rua ki tawhiti, ka ata nekehia kia tata atu ki a raatau. Inaianei ka kite koe ka timata te taaputanga ki te whakaheke i tona taumata hiko mai i te 8dBm taunoa ki raro ki te -3dBm (koinei te mana Tx iti na te taunoa):

Tuhinga / Rauemi
![]() |
SILICON LABS 21Q2 Bluetooth Features Lab [pdf] Pukapuka Tohutohu 21Q2, Taiwhanga Whakaaturanga Nihokikorangi, 21Q2 Taiwhanga Whakaaturanga Nihokikorangi, Taiwhanga Whakaaturanga, Lab |


