SILICON LABS لوگو

SILICON LABS 21Q2 بلوٽوت خاصيتون ليب

SILICON LABS 21Q2 بلوٽوت خاصيتون ليب

بلوٽوٽ 21Q2 خاصيتون ليب مينوئل

هي ليب مينوئل توهان کي ڪجهه نئين بلوٽوٿ SDK خاصيتن جي ذريعي هلائي ٿو جيڪي 20Q4 ۽ 21Q2 رليز جي وچ ۾ متعارف ڪرايا ويا هئا. هن ليبارٽري ۾ اسان هڪ NCP اڳوڻي ٺاهينداسينample ۽ Python ٻولي ۾ هڪ ميزبان سافٽ ويئر لکو. نئين متحرڪ GATT خصوصيت کي استعمال ڪندي اسان GATT ترتيب ڏيندڙ استعمال ڪرڻ بدران ميزبان سافٽ ويئر مان GATT ڊيٽابيس پڻ ٺاهينداسين. آخرڪار LE پاور ڪنٽرول خاصيت پيش ڪئي وئي آهي ميزبان سافٽ ويئر کي وڌائڻ سان.SILICON LABS 21Q2 بلوٽوت خاصيتون ليب 1

شرطون

هن ليبارٽري کي مڪمل ڪرڻ لاء، توهان کي هيٺين جي ضرورت پوندي:

  • ٻه Thunderboard BG22s يا ٻه WSTKs ڪنهن به EFR32BG/EFR32MG ريڊيو بورڊ سان يا انهن جو ميلاپ
  • سادگي اسٽوڊيو 5 انسٽال ٿيل، گيڪو SDK v3.2 سميت بلوٽوت SDKv3.2 سان
  • هڪ PC جنهن تي Python v3.6 يا بعد ۾ انسٽال ٿيل آهي

اين سي پي جي ڪارڪردگي لاء ٽارگيٽ ڊوائيسز کي چمڪائڻ

  • پنهنجا ٻه ريڊيو بورڊ جوڙيو ۽ کوليو Simplicity Studio 5
  • Debug Adapters ٽئب تي ريڊيو بورڊ مان ھڪڙو چونڊيو
  • اوور تي ترجيحي SDK کي v3.2.0 تي سيٽ ڪريوview لانچر جي ٽيب view
  • Ex کوليوampمنصوبا ۽ ڊيمو ٽيب
  • نئون بلوٽوت ڳوليو - NCP ڊيمو.
  • بورڊ تي NCP ھدف واري تصوير کي چمڪائڻ لاءِ رن تي ڪلڪ ڪريو.SILICON LABS 21Q2 بلوٽوت خاصيتون ليب 2

(نوٽ: بلوٽوت جي ابتڙ - NCP خالي، هن پروجيڪٽ ۾ اڳ ۾ ٺهيل GATT ڊيٽابيس شامل نه آهي، پر ان ۾ متحرڪ GATT API فعال آهي، جيڪو ايندڙ حصن لاءِ هڪ شرط آهي)

  • ٻئي ريڊيو بورڊ لاء ساڳيو قدم ورجائي.

Python ۾ بلوٽوت سرور ايپليڪيشن ٺاهڻ

شروع ٿيڻ

  • pybgapi پيڪيج Python پروگرامنگ ٻولي استعمال ڪندي PC کان ٽارگيٽ ڊيوائس ڏانهن BGAPI حڪم جاري ڪرڻ جو امڪان فراهم ڪري ٿو. ھن پيڪيج کي انسٽال ڪرڻ لاءِ ھيٺ ڏنل ڪمانڊ لائن ۾ ٽائپ ڪريو: pip install pybgapi پيڪيج بابت وڌيڪ معلومات لاءِ دورو ڪريو https://pypi.org/project/pybgapi/
  • جديد BGAPI وصف ڳوليو file هيٺ
  • C:\SiliconLabs\SimplicityStudio\v5\developer\sdks\gecko_sdk_suite\v3.2.0\protocol\bluetooth\api\sl_bt.xapi ۽ ان کي نقل ڪريو پنھنجي ڪم ڪندڙ فولڊر ۾.
  • پٿون بش کوليو (سي ايل آئي ۾ پٿون ٽائپ ڪريو)
  • ھيٺ ڏنل حڪم سان bgapi لائبريري درآمد ڪريو: >>> bgapi درآمد ڪريو
  • توھان جي ھڪڙي ريڊيو بورڊ جو COM پورٽ نمبر (مثال طور COM49) ڳولھيو. توھان کي ڳولڻ گھرجي "JLink CDC UART پورٽ" ڊيوائس مئنيجر ۾ يا پنھنجي پسنديده ٽرمينل ايپ ۾.SILICON LABS 21Q2 بلوٽوت خاصيتون ليب 3
  • پنھنجي ريڊيو بورڊ سان ڳنڍيو:
    • >>> ڪنيڪشن = bgapi.SerialConnector('COM49')
  • هن نوڊ لاءِ pybgapi لائبريري شروع ڪريو:
    • >>> node = bgapi.BGLib (ڪنيڪشن، 'sl_bt.xapi')
  • هن نوڊ ڏانهن BGAPI مواصلات کوليو:
    • >>> node.open()
  • چيڪ ڪريو ته توهان بورڊ سان رابطو ڪري سگهو ٿا، استعمال ڪندي system_hello() حڪم. توهان کي حاصل ڪرڻ گهرجي سسٽم_هيلو جواب:
    • >>> node.bt.system.hello()
      • bt_rsp_system_hello(نتيجو=0)
  • پنھنجي نوڊ کي ھيٺ ڏنل حڪم سان ري سيٽ ڪريو:
    • node.bt.system.reset(0)
  • هاڻي توهان کي حاصل ڪرڻ گهرجي system_boot واقعي. تازو واقعو آڻڻ لاءِ، ھيٺ ڏنل حڪم استعمال ڪريو:
    • evt = node.get_events(max_events=1)
    • ڇپائي (evt)
      • [bt_evt_system_boot(major=3, minor=2, patch=0, build=774, bootloader=17563648, hw=1, hash=1181938724)]

GATT ڊيٽابيس جي تعمير

  • بلوٽوٿ - NCP ٽارگيٽ ايپ ۾ اڳ ۾ ٺهيل GATT ڊيٽابيس شامل ناهي. هتي اسان ڪوڊ مان ڊيٽابيس ٺاهينداسين. ڊيٽابيس جي تعمير لاءِ پهريون سيشن شروع ڪريو:
    • >>> سيشن = node.bt.gattdb.new_session().session
  • GATT ڊيٽابيس ۾ نئين خدمت شامل ڪريو. هتي اسان بلوٽوت SIG پاران منظور ڪيل عام رسائي سروس شامل ڪنداسين. هي هڪ بنيادي خدمت آهي (0x0) بغير ڪنهن پرچم جي سيٽ (0x0) ۽ 16bit UUID (0x1800) سان.
    • service = node.bt.gattdb.add_service(سيشن، 0, 0, bytes.fromhex("0018"))).
  • خدمت ۾ نئين خاصيت شامل ڪريو. هتي اسان READ ملڪيت (0x2)، ڪابه حفاظتي گهرج (0x0)، پرچم نه (0x0)، 16bit UUID (0x2a00)، متغير ڊگھائي (0x2)، وڌ ۾ وڌ ڊگھائي 20 ۽. "PyBGAPI جي شروعاتي قيمت سان

Example":

  • >>> char = node.bt.gattdb.add_uuid16_characteristic(سيشن، سروس، 2, 0, 0, bytes.fromhex('002a'), 2,
    • 20، بائيٽ ('PyBGAPI Example','utf-8′))) خصوصيت
    • 3.15 نئين خدمت کي چالو ڪريو:
  • >>> node.bt.gattdb.start_service (سيشن، خدمت)
    • bt_rsp_gattdb_start_service(نتيجو=0)
  • نئين خاصيت کي چالو ڪريو:
    • >>> node.bt.gattdb.start_characteristic(سيشن، چار)
      • bt_rsp_gattdb_start_characteristic(نتيجو=0)
  • تبديلين کي محفوظ ڪريو ۽ ڊيٽابيس ايڊيٽنگ سيشن کي بند ڪريو:
    • >>> node.bt.gattdb.commit(سيشن)
    • bt_rsp_gattdb_commit(نتيجو=0)

سرور سان ڳنڍڻ

  • 3.18 هاڻي ته اسان وٽ GATT ڊيٽابيس ۾ هڪ ڊوائيس جو نالو آهي، اسان اشتهار ڏيڻ شروع ڪري سگهون ٿا. اسٽيڪ خود بخود ڊيوائس کي ان جي GATT ڊيٽابيس ۾ بيان ڪيل نالي سان اشتهار ڏيندو:
    • >>> advertiser_set = node.bt.advertiser.create_set().handle
    • >>> node.bt.advertiser.start(advertiser_set, 2, 2)
      • bt_rsp_advertiser_start(نتيجو=0)
  • شروع ڪريو EFR Connect پنھنجي فون تي، ۽ ڳولھيو پنھنجي ڊيوائس جو اشتهار ”PyBGAPI Exampلي"
  • توهان ڊوائيس سان ڳنڍي سگهو ٿا ۽ ان جي GATT ڊيٽابيس کي ڳولي سگهو ٿا جنهن ۾ هاڻي ڊوائيس جو نالو خاصيت آهي

نوٽ: جيڪڏھن توھان چاھيو ٿا تمام جلدي exampلي بغير GATT ڊيٽابيس سان پريشان ٿيڻ جي، توهان اڃا تائين بلوٽوت کي چمڪي سگهو ٿا - NCP Empty exampتوهان جي بورڊ ڏانهن وڃو، جنهن ۾ هڪ بنيادي اڳ تعمير ٿيل GATT ڊيٽابيس آهي. انهي صورت ۾ توهان سڀني کي ڪرڻو آهي ميزبان پاسي تي آهي:

  • >>> bgapi درآمد ڪريو
  • >>> ڪنيڪشن = bgapi.SerialConnector('COM49')
  • >>> node = bgapi.BGLib (ڪنيڪشن، '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(نتيجو=0)

Python ۾ بلوٽوت ڪلائنٽ ايپليڪيشن ٺاهڻ

  • هڪ ڪلائنٽ ٺاهڻ سرور کي لاڳو ڪرڻ کان وڌيڪ پيچيده آهي. تنهن ڪري اسان هڪ python اسڪرپٽ لکنداسين. پنھنجي پسنديده ٽيڪسٽ ايڊيٽر کوليو ۽ ھڪڙو نئون ٺاھيو file، اچو ته ان کي سڏين client.py
  • ھيٺيون شيون درآمد ڪريو:SILICON LABS 21Q2 بلوٽوت خاصيتون ليب 4
  • بس سرور جي صورت ۾، اسان نوڊ سان ڳنڍينداسين UART ذريعي. هتي توهان جي سيڪنڊ بورڊ جو COM پورٽ نمبر استعمال ڪريو:SILICON LABS 21Q2 بلوٽوت خاصيتون ليب 5
  • هتان کان، اسان جي ايپليڪيشن واقعي تي هلائي ويندي. جڏهن به هڪ بلوٽوٿ واقعو اسٽيڪ طرفان ٺاهيل آهي، اسان واقعي کي سنڀالينداسين ۽ ايپليڪيشن کي اڳتي وڌائينداسين:SILICON LABS 21Q2 بلوٽوت خاصيتون ليب 6
  • اچو ته ايونٽ هينڊلر فنڪشن کي بيان ڪريون ۽ سسٽم_بوٽ ايونٽ لاءِ هينڊلر شامل ڪريو، جتي اسان پردي جي ڊوائيسز لاءِ اسڪيننگ شروع ڪنداسين. نوٽ، ته هن فنڪشن جي وضاحت ٿيڻ گهرجي جڏهن لوپ کان اڳ (۽ نوڊ متغير جي تعريف کان پوء).SILICON LABS 21Q2 بلوٽوت خاصيتون ليب 7.
  • هڪ دفعو اسڪينر شروع ٿئي ٿو، نوڊ اسڪين رپورٽون وصول ڪندي. اچو ته sl_bt_on_event() فنڪشن اندر اسڪين رپورٽن لاءِ هڪ ايونٽ هينڊلر شامل ڪريون. جيڪڏهن هڪ اسڪين رپورٽ ملي ٿي ته اشتهاري ڊوائيس جو نالو "PyBGAPI Example"، ڪلائنٽ ان ڊوائيس ڏانهن ڪنيڪشن کوليندو: SILICON LABS 21Q2 بلوٽوت خاصيتون ليب 7
  • هڪ دفعو توهان هن نقطي تي پهچي چڪا آهيو اهو جانچڻ جي قابل آهي ته توهان جو ڪلائنٽ سرور ڳولي ٿو. پڪ ڪريو، ته توهان ٻئي ڊوائيس تي اشتهار شروع ڪيو آهي، پوء محفوظ ڪريو client.py، ۽ ان کي ڪمانڊ لائن کان شروع ڪريو. توھان کي ڪجھھ ڏسڻ گھرجي: SILICON LABS 21Q2 بلوٽوت خاصيتون ليب 8
  • ڪلائنٽ کي سرور تي خدمتون ۽ خاصيتون ڳولڻ گهرجن. هتي اسان عام رسائي جي خدمت ۽ ڊيوائس جي نالي جي خاصيت کي ڳوليندا سين، ۽ آخر ۾ ڊيوائس جي نالي جي خاصيت جي قيمت کي پڙهي سگھو ٿا. پنھنجي موجوده sl_bt_on_event() فنڪشن کي ھيٺ ڏنل ڪوڊ سان تبديل ڪريو:SILICON LABS 21Q2 بلوٽوت خاصيتون ليب 9 SILICON LABS 21Q2 بلوٽوت خاصيتون ليب 10
  • محفوظ ڪريو client.py ۽ ان کي ڪمانڊ لائن کان شروع ڪريو. توھان کي ڪجھھ ڏسڻ گھرجي:SILICON LABS 21Q2 بلوٽوت خاصيتون ليب 11

LE پاور ڪنٽرول فيچر شامل ڪرڻ

ھدف جي ڊوائيسز کي چمڪائڻ

LE پاور ڪنٽرول بلوٽوت ايڪس ۾ فعال نه آهيample منصوبا ڊفالٽ طور. ھن خصوصيت کي شامل ڪرڻ لاء، بلوٽوٿ> خصوصيت> پاور ڪنٽرول سافٽ ويئر جزو نصب ٿيڻ گھرجي.

  • لانچر کوليو view سادگي اسٽوڊيو 5.
  • ڊيبگ اڊاپٽرز ٽيب ۾ پنھنجي ڊوائيسز مان ھڪڙو چونڊيو. پڪ ڪريو ته ترجيح SDK آهي v3.2.
  • Ex کوليوampلي پراجيڪٽس ۽ ڊيمو ٽيب ۽ ڳوليو بلوٽوت - اين سي پي خالي example. پروجيڪٽ ٺاهڻ لاءِ [ٺاهيو] کي دٻايو. (هن ڀيري اسان GATT ڊيٽابيس ٺاهڻ نٿا چاهيون، تنهنڪري اسان استعمال ڪريون ٿا NCP Empty، جنهن ۾ هڪ ڊفالٽ آهي.)
  • GATT ڪنفيگريٽر ٽئب کوليو، ڊيوائس جي نالي جي خصوصيت کي منتخب ڪريو، ۽ مٿي لکو ”سائلاب Ex.ample" ابتدائي قدر سان "PyBGAPI Example" (جيئن ته ڪلائنٽ سرور کي سڃاڻيندو). 15 سان گڏ قدر جي ڊيگهه کي به مٿي لکو.
  • ڊيٽابيس کي محفوظ ڪرڻ لاءِ ctrl-s کي دٻايو.
  • پروجيڪٽ ڪنفيگريٽر ۾ سافٽ ويئر اجزاء ٽيب کوليو.
  • ڳوليو بلوٽوٿ> فيچر> پاور ڪنٽرول سافٽ ويئر جزو، ۽ ڪلڪ ڪريو [انسٽال]SILICON LABS 21Q2 بلوٽوت خاصيتون ليب 12
  • گولڊن رينج جي مٿين ۽ هيٺين حدن کي جانچڻ لاءِ پاور ڪنٽرول سافٽ ويئر جزو جي اڳيان cogwheel تي ڪلڪ ڪريو. 1M لاء هيٺين حد مقرر ڪريو
    • PHY کان -45 (بجائي -60). جيتوڻيڪ عملي طور تي هي قدر بهتر نه آهي، ان جي نتيجي ۾ وڌيڪ Tx پاور ايڊجسٽمينٽ ٿيندو، جيڪو مظاهري جي مقصدن لاءِ سٺو آهي.
  • SDK ورزن 3.2.0 ۾، گولڊن رينج کي صحيح طرح سان سيٽ ڪرڻ لاءِ ھڪڙو ننڍڙو ڪم ڪار ڪرڻ جي ضرورت آھي: sl_bluetooth.c کوليو file توهان جي پروجيڪٽ جي /autogen فولڊر ۾ مليو ۽ منتقل ڪريو sl_bt_init_power_control()؛ فنڪشن ڪال کان اڳ sl_bt_init_stack(&config);SILICON LABS 21Q2 بلوٽوت خاصيتون ليب 13
  • پروجيڪٽ ٺاھيو ۽ ان کي پنھنجي بورڊ ڏانھن چمڪيو.
  • جيڪڏهن توهان جا ٻه بورڊ ساڳي قسم جا آهن، ساڳئي تصوير کي ٻئي بورڊ ڏانهن پڻ چمڪيو. جيڪڏهن توهان جو ٻيو بورڊ هڪ مختلف بورڊ آهي، ته پوء ٻئي بورڊ لاء مٿين قدمن کي ورجايو.

سرور ۽ ڪلائنٽ شروع ڪرڻ

  • هاڻي ٻيهر، پٿون بش کوليو، پنهنجي پهرين بورڊ سان ڳنڍيو، ۽ اشتهار شروع ڪريوSILICON LABS 21Q2 بلوٽوت خاصيتون ليب 14
  • پنھنجي ڪلائنٽ ايپليڪيشن کي تبديل ڪريو، جيئن اھو ڊوائيس جو نالو پڙھڻ کان پوء نڪرندو. ھيٺيون لائينون ڳولھيو، ۽ انھن کي تبصرو ۾ وجھو:SILICON LABS 21Q2 بلوٽوت خاصيتون ليب 15
  • محفوظ ڪريو ۽ پنھنجي ڪلائنٽ ايپليڪيشن کي هلائي
    • py.\client.py
  • پنهنجا ٻه بورڊ پري رکو، پوءِ آهستي آهستي انهن کي هڪ ٻئي جي ويجهو آڻيو. ھاڻي توھان کي ڏسڻ گھرجي ته اسٽيڪ پنھنجي پاور ليول کي ڊفالٽ 8dBm کان ھيٺ -3dBm تائين گھٽائڻ شروع ڪري ٿو (جيڪو ڊفالٽ طور گھٽ ۾ گھٽ Tx پاور آھي):SILICON LABS 21Q2 بلوٽوت خاصيتون ليب 16

دستاويز / وسيلا

SILICON LABS 21Q2 بلوٽوت خاصيتون ليب [pdf] هدايت نامو
21Q2، بلوٽوٿ فيچرز ليب، 21Q2 بلوٽوٿ فيچرز ليب، فيچرز ليب، ليب

حوالو

تبصرو ڇڏي ڏيو

توهان جو اي ميل پتو شايع نه ڪيو ويندو. گهربل فيلڊ نشان لڳل آهن *