SILICON LABS logo

SILICON LABS 21Q2 Bluetooth Features Lab

SILICON LABS 21Q2 Bluetooth Features Lab

Bluetooth 21Q2 Features Lab Manual

O lenei tusi lesona e savalia oe i nisi o foliga fou Bluetooth SDK na faʻalauiloaina i le va o le 20Q4 ma le 21Q2 faʻasalalauga. I totonu o lenei fale suesue o le a matou faia se NCP example ma tusi se polokalama talimalo i le gagana Python. O le fa'aaogaina o le fa'aaliga fou GATT o le a matou fausia ai fo'i le GATT database mai le polokalama fa'apitoa nai lo le fa'aogaina o le GATT Configurator. Mulimuli ane, fa'aalia le vaega LE Power Control e ala i le fa'alauteleina o le polokalama talimalo.SILICON LABS 21Q2 Bluetooth Features Lab 1

Mea e mana'omia muamua

Ina ia faʻamaeʻaina lenei suʻesuʻega, e te manaʻomia mea nei:

  • Lua Thunderboard BG22s poʻo lua WSTK faʻatasi ma soʻo se laupapa leitio EFR32BG/EFR32MG poʻo le faʻafefiloi o nei mea
  • Faʻapipiʻi le Simplicity Studio 5, faʻatasi ai ma Gecko SDK v3.2 e aofia ai le Bluetooth SDKv3.2
  • O se PC e fa'apipi'i ai le Python v3.6 pe mulimuli ane

Fa'aliga o Mea Fa'atatau mo le NCP Fa'atino

  • Fa'apipi'i au laupapa leitio e lua ma tatala le Simplicity Studio 5
  • Filifili se tasi o laupapa leitio i luga o le Debug Adapters tab
  • Seti le SDK Preferred i le v3.2.0 i lugaview tab o le Launcher view
  • Tatala le Example Poloketi & Demo tab
  • Su'e le Bluetooth fou - NCP demo.
  • Kiliki le Run e moli le ata o le NCP i luga o le laupapa.SILICON LABS 21Q2 Bluetooth Features Lab 2

(Manatua: e ese mai i le Bluetooth - NCP Empty, o lenei poloketi e le o aofia ai se GATT database, ae o loʻo i ai le GATT API malosi, o se mea e manaʻomia muamua mo isi vaega)

  • Toe fai laasaga lava e tasi mo le isi laupapa leitio.

Fausiaina o se Bluetooth Server Application i le Python

Amataina

  • O le pusa pybgapi e maua ai le avanoa e tuʻuina atu ai tulafono a le BGAPI agai i le masini faʻapipiʻi mai le PC e faʻaaoga ai le gagana polokalame Python. Ina ia faʻapipiʻi lenei afifi faʻapipiʻi mea nei i le laina faʻatonu: pip install pybgapi Mo nisi faʻamatalaga e uiga i le afifi asiasi https://pypi.org/project/pybgapi/
  • Su'e le fa'amatalaga fou a le BGAPI file lalo
  • C:\SiliconLabs\SimplicityStudio\v5\developer\sdks\gecko_sdk_suite\v3.2.0\protocol\bluetooth\api\sl_bt.xapi ma kopi i totonu o lau faila galue.
  • Tatala le python bash (type python i le CLI)
  • Fa'aulufale mai le faletusi bgapi ma le fa'atonuga lenei: >>> fa'aulufale mai bgapi
  • Su'e le numera uafu COM (eg COM49) o se tasi o au laupapa leitio. E tatau ona e su'e le "JLink CDC UART Port" i le Device Manager po'o lau mea e sili ona e fiafia i ai.SILICON LABS 21Q2 Bluetooth Features Lab 3
  • Fesootai i lau laupapa leitio:
    • >>> feso'ota'iga = bgapi.SerialConnector('COM49')
  • Amata le faletusi pybgapi mo lenei node:
    • >>> node = bgapi.BGLib(so'oga,'sl_bt.xapi')
  • Tatala feso'ota'iga BGAPI agai i le node:
    • >>> node.open()
  • Siaki pe mafai ona e fesoʻotaʻi ma le laupapa, faʻaaoga le system_hello() poloaiga. E tatau ona e maua se tali system_hello:
    • >>> node.bt.system.hello()
      • bt_rsp_system_hello(i'uga=0)
  • Toe setiina lau node i le poloaiga lenei:
    • node.bt.system.reset(0)
  • Ole taimi nei e tatau ona e maua se system_boot event. Ina ia aumai le mea fou na tupu, faʻaaoga le poloaiga lenei:
    • evt = node.get_events(max_events=1)
    • lolomi(evt)
      • [bt_evt_system_boot(major=3, minor=2, patch=0, build=774, bootloader=17563648, hw=1, hash=1181938724)]

Fausia le GATT database

  • O le Bluetooth - NCP target app e le o aofia ai se GATT database na fausia muamua. O iinei o le a matou fausia ai le database mai le code. Muamua amata se sauniga mo le fausiaina o faʻamaumauga:
    • >>> sauniga = node.bt.gattdb.new_session().session
  • Fa'aopoopo se auaunaga fou ile GATT database. O iinei o le a matou faʻaopoopoina ai le Generic Access service na faʻaaogaina e le Bluetooth SIG. Ole auaunaga muamua lea (0x0) e leai ni fu'a seti (0x0) ma le 16bit UUID (0x1800).
    • tautua = node.bt.gattdb.add_service(session, 0, 0, bytes.fromhex(“0018”)).auaunaga
  • Fa'aopoopo se uiga fou ile tautua. O iinei o le a matou faʻaopoopoina ai le uiga o le Igoa Meafaigaluega i le Generic Access service ma le READ property (0x2), leai ni mea e manaʻomia mo le saogalemu (0x0), leai ni fuʻa (0x0), 16bit UUID (0x2a00), fesuiaiga umi (0x2), maualuga maualuga o le 20 ma fa'atasi ai ma le tau muamua o le "PyBGAPI

Example”:

  • >>> char = node.bt.gattdb.add_uuid16_characteristic(session, service, 2, 0, 0, bytes.fromhex('002a'), 2,
    • 20, paita('PyBGAPI Example','utf-8′)). uiga
    • 3.15 Fa'agaoioia le auaunaga fou:
  • >>> node.bt.gattdb.start_service(session,service)
    • bt_rsp_gattdb_start_service(i'uga=0)
  • Fa'agaoioi le uiga fou:
    • >>> node.bt.gattdb.start_characteristic(session, char)
      • bt_rsp_gattdb_start_characteristic(i'uga=0)
  • Fa'asaoina suiga ma tapuni le fa'atonuga o fa'amaumauga:
    • >>> node.bt.gattdb.commit(session)
    • bt_rsp_gattdb_commit(i'uga=0)

Feso'ota'i ile Server

  • 3.18 O lea ua i ai le matou igoa masini i le GATT database, e mafai ona matou amata faʻasalalauga. O le faaputuga o le a otometi lava ona faʻasalalau le masini ma le igoa ua faʻamalamalamaina i lana GATT database:
    • >>> seti_faasalalauga = node.bt.advertiser.create_set().handle
    • >>> node.bt.advertiser.start(advertiser_set, 2, 2)
      • bt_rsp_advertiser_start(i'uga=0)
  • Amata EFR Fesoʻotaʻi i lau telefoni, ma suʻe lau faʻasalalauga masini e pei o le "PyBGAPI Example”
  • E mafai ona e fa'afeso'ota'i i le masini ma su'e lana fa'amaumauga GATT lea o lo'o iai nei le uiga o le Igoa Meafaigaluega

Manatua: afai e te manaʻo i se faʻataʻitaʻiga vaveampe aunoa ma le faʻalavelave i le GATT database, e mafai lava ona e moli le Bluetooth - NCP Empty example i lau laupapa, o loʻo i ai se faʻamaumauga faavae GATT muai fausia. I lenei tulaga, pau lava le mea e tatau ona e faia i le itu talimalo o le:

  • >>> faaulufale mai bgapi
  • >>> feso'ota'iga = bgapi.SerialConnector('COM49')
  • >>> node = bgapi.BGLib(so'oga,'sl_bt.xapi')
  • >>> node.open()
  • >>> seti_faasalalauga = node.bt.advertiser.create_set().handle
  • >>> node.bt.advertiser.start(advertiser_set, 2, 2)
    • bt_rsp_advertiser_start(i'uga=0)

Fausia se Bluetooth Client Application i le Python

  • O le fa'atupuina o se kalani e sili atu ona lavelave nai lo le fa'atinoina o se 'au'aunaga. O le mea lea o le a matou tusia ai se python script. Tatala lau fa'atonu tusitusiga e sili ona e fiafia i ai ma fai se mea fou file, ta ta'ua le client.py
  • Auina mai mea nei:SILICON LABS 21Q2 Bluetooth Features Lab 4
  • E pei lava o le tulaga o le 'auʻaunaga, matou te faʻafesoʻotaʻi i le node e ala i le UART. Fa'aoga le numera COM port o lau laupapa lona lua iinei:SILICON LABS 21Q2 Bluetooth Features Lab 5
  • Mai iinei, o la matou talosaga o le a faʻatautaia mea. Soo se taimi lava e faia ai se mea Bluetooth e ala i le faaputuga, o le a matou taulimaina le mea na tupu ma ave i luma le talosaga:SILICON LABS 21Q2 Bluetooth Features Lab 6
  • Se'i o tatou fa'auigaina le fa'atinoga o mea e fai ma fa'aopoopo i ai se fa'atonu mo le system_boot event, lea o le a amata ai ona tatou su'esu'e mo masini fa'apitonu'u. Manatua, o lenei galuega e tatau ona faʻamalamalamaina aʻo leʻi oʻo i le taimi (ma pe a uma le faʻamatalaga o le fesuiaiga o le node).SILICON LABS 21Q2 Bluetooth Features Lab 7.
  • O le taimi lava e amata ai le scanner, o le a maua e le node lipoti faʻataʻitaʻi. Se'i o tatou fa'aopoopoina se tagata e fa'atino mea e fai mo su'esu'ega lipoti i totonu ole galuega sl_bt_on_event(). Afai e maua se lipoti faʻataʻitaʻi ma le igoa masini faʻasalalau "PyBGAPI Example", o le a tatalaina e le kalani se fesoʻotaʻiga agai i lena masini: SILICON LABS 21Q2 Bluetooth Features Lab 7
  • O le taimi lava e te oʻo ai i lenei tulaga e aoga le siakiina pe o maua e lau kalani le server. Ia mautinoa, ua e amataina le faʻasalalauga i luga o le isi masini, ona faʻasaoina lea o le client.py, ma amata mai le laina faʻatonu. E tatau ona e vaʻai i se mea e pei o lenei: SILICON LABS 21Q2 Bluetooth Features Lab 8
  • E tatau i le tagata o tausia ona maua auaunaga ma uiga i luga o le server. O iinei o le a tatou maua ai le Generic Access service ma le Device Name, ma mulimuli ane faitau le taua o le Device Name. Suia lau galuega sl_bt_on_event() i le code lea:SILICON LABS 21Q2 Bluetooth Features Lab 9 SILICON LABS 21Q2 Bluetooth Features Lab 10
  • Faasaoina client.py ma amata mai le laina o le poloaiga. E tatau ona e vaʻai i se mea e pei o lenei:SILICON LABS 21Q2 Bluetooth Features Lab 11

Fa'aopoopo LE Pule Pulea Vaega

Fa'amomomoina o Mea Fa'atatau

LE Pule Pulea e le mafai i le Bluetooth example galuega faatino e ala i le faaletonu. Ina ia faʻaopoopoina lenei mea, e tatau ona faʻapipiʻi le Bluetooth> Feature> PowerControl software component.

  • Tatala le fa'alatalata view o le Simplicity Studio 5.
  • Filifili se tasi o au masini i le Debug Adapters tab. Ia mautinoa ole SDK e mana'omia ole v3.2.
  • Tatala le Example Projects & Demos tab ma su'e le Bluetooth - NCP Empty example. Oomi le [Fausia] e fatu ai le poloketi. (O le taimi lenei matou te le manaʻo e fausia le GATT database, o lea matou te faʻaogaina ai le NCP Empty, lea e iai se faaletonu.)
  • Tatala le GATT Configurator tab, filifili le uiga o le Igoa Meafaigaluega, ma toe tusi le "Silabs Example" tau muamua ma le "PyBGAPI Example” (ina ia iloa e le tagata o tausia le server). Toe tusi foi le umi ole tau ile 15.
  • Oomi le ctrl-s e teu ai le database.
  • I totonu o le Project Configurator tatala le Polokalama Vaega fa'apipi'i.
  • Su'e le Bluetooth > Feature > PowerControl software component, ma kiliki [Install]SILICON LABS 21Q2 Bluetooth Features Lab 12
  • Kiliki i luga o le cogwheel i tafatafa o le PowerControlsoftware vaega e siaki ai le pito i luga ma lalo o le laina auro. Seti le tapulaa pito i lalo mo le 1M
    • PHY i le -45 (nai lo le -60). E ui lava i le faʻatinoga o lenei tau e le o se mea e sili ona lelei, o le a maua ai le tele o suiga ole mana Tx, lea e lelei mo faʻamoemoega faʻataʻitaʻiga.
  • I le SDK version 3.2.0, e mana'omia le fa'aogaina o se ta'otoga la'ititi e fa'atulaga lelei le laina auro: tatala le sl_bluetooth.c file maua i le /autogen faila o lau poloketi ma fa'agaoioi le sl_bt_init_power_control(); vala'au galuega A'O LE'I sl_bt_init_stack(&config);SILICON LABS 21Q2 Bluetooth Features Lab 13
  • Fausia le poloketi ma moli i lau laupapa.
  • Afai o au laupapa e lua e tutusa le ituaiga, faʻapipiʻi le ata tutusa i le isi laupapa. Afai o lau laupapa lona lua o se laupapa e ese, ona toe fai lea o laasaga o loʻo i luga mo le laupapa lona lua.

Amataina le Server ma le Client

  • Ia toe tatala le Python bash, faʻafesoʻotaʻi i lau laupapa muamua, ma amata faʻasalalaugaSILICON LABS 21Q2 Bluetooth Features Lab 14
  • Suia lau talosaga a le tagata o tausia ina ia le alu ese pe a uma ona faitau le igoa o le masini. Su'e laina nei, ma tu'u i se fa'amatalaga:SILICON LABS 21Q2 Bluetooth Features Lab 15
  • Fa'asaoina ma fa'agasolo lau talosaga a le tagata fa'atau
    • py .\client.py
  • Tuu mamao lau laupapa e lua, ona faasolosolo malie atu lea o le tasi i le isi. O lea la e tatau ona e vaʻai ua amata ona faʻaititia e le faaputuga lona tulaga malosi mai le faaletonu 8dBm i lalo i le -3dBm (o le laʻititi Tx mana e ala i le faaletonu):SILICON LABS 21Q2 Bluetooth Features Lab 16

Pepa / Punaoa

SILICON LABS 21Q2 Bluetooth Features Lab [pdf] Tusi Taiala
21Q2, Bluetooth Features Lab, 21Q2 Bluetooth Features Lab, Features Lab, Lab

Fa'asinomaga

Tuu se faamatalaga

E le fa'asalalauina lau tuatusi imeli. Fa'ailogaina fanua mana'omia *