סיליציום לאַבס לאָגאָ

SILICON LABS 21Q2 בלועטאָאָטה פֿעיִקייטן לאַב

SILICON LABS 21Q2 בלועטאָאָטה פֿעיִקייטן לאַב

בלועטאָאָטה 21ק2 פֿעיִקייטן לאַב מאַנואַל

דעם לאַב מאַנואַל גייט איר דורך עטלעכע פון ​​​​די נייַע בלועטאָאָטה סדק פֿעיִקייטן וואָס זענען באַקענענ צווישן די 20Q4 און 21Q2 מעלדונג. אין דעם לאַבאָראַטאָריע, מיר וועלן שאַפֿן אַ NCP עקסampאון שרייַבן אַ באַלעבאָס ווייכווארג אין פּיטהאָן שפּראַך. ניצן די נייַע דינאַמיש GATT שטריך, מיר וועלן אויך בויען די GATT דאַטאַבייס פֿון דער באַלעבאָס ווייכווארג אַנשטאָט פון ניצן די GATT קאָנפיגוראַטאָר. צום סוף LE Power Control שטריך איז דערלאנגט דורך יקסטענדינג די באַלעבאָס ווייכווארג.SILICON LABS 21Q2 בלועטאָאָטה פֿעיִקייטן לאַב 1

פּרירעקוואַזאַץ

צו פאַרענדיקן דעם לאַב, איר וועט דאַרפֿן די פאלגענדע:

  • צוויי Thunderboard BG22s אָדער צוויי WSTKs מיט קיין EFR32BG/EFR32MG ראַדיאָ ברעט אָדער די מישן פון די
  • סימפּליסיטי סטודיאָ 5 אינסטאַלירן, מיט Gecko SDK v3.2 אַרייַנגערעכנט בלועטאָאָטה SDKv3.2
  • א פּיסי אויף וואָס Python v3.6 אָדער שפּעטער איז אינסטאַלירן

פלאַשינג די ציל דעוויסעס פֿאַר נקפּ פאַנגקשאַנאַליטי

  • צוטשעפּען דיין צוויי ראַדיאָ באָרדז און עפענען Simplicity Studio 5
  • סעלעקטירן איינער פון די ראַדיאָ באָרדז אויף די Debug Adapters קוויטל
  • שטעלן די בילכער סדק צו וו3.2.0 אויף די אָווערview קוויטל פון די לאַונטשער view
  • עפֿענען די עקסampדי קוויטל פּראַדזשעקס & דעמאָס
  • געפֿינען די נייַע בלועטאָאָטה - NCP דעמאָ.
  • דריקט לויפן צו בליץ די NCP ציל בילד צו די ברעט.SILICON LABS 21Q2 בלועטאָאָטה פֿעיִקייטן לאַב 2

(באַמערקונג: אין קאַנטראַסט צו בלועטאָאָטה - NCP ליידיק, דעם פּרויעקט טוט נישט אַרייַננעמען אַ פּריבוילט GATT דאַטאַבייס, אָבער עס האט די דינאַמיש GATT API ענייבאַלד, וואָס איז אַ פּרירעקוואַזאַט פֿאַר די ווייַטער סעקשאַנז)

  • איבערחזרן די זעלבע סטעפּס פֿאַר די אנדערע ראַדיאָ ברעט.

שאַפֿן אַ בלועטאָאָטה סערווירער אַפּפּליקאַטיאָן אין פּיטהאָן

געטינג סטאַרטעד

  • די pybgapi פּעקל גיט די מעגלעכקייט צו אַרויסגעבן BGAPI קאַמאַנדז צו די ציל מיטל פֿון די פּיסי ניצן Python פּראָגראַממינג שפּראַך. צו ינסטאַלירן דעם פּעקל טיפּ די פאלגענדע אין די באַפֿעלן שורה: 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 און נאָכמאַכן עס אין דיין אַרבעט טעקע.
  • עפֿענען די פּיטהאָן באַש (טיפּ פּיטהאָן אין די CLI)
  • אַרייַנפיר די bgapi ביבליאָטעק מיט די פאלגענדע באַפֿעל: >>> import bgapi
  • געפֿינען די COM פּאָרט נומער (למשל COM49) פון איינער פון דיין ראַדיאָ באָרדז. איר זאָל קוקן פֿאַר די "JLink CDC UART פּאָרט" אין די דיווייס מאַנאַגער אָדער אין דיין באַליבסטע וואָקזאַל אַפּ.SILICON LABS 21Q2 בלועטאָאָטה פֿעיִקייטן לאַב 3
  • פאַרבינדן צו דיין ראַדיאָ ברעט:
    • >>> קשר = bgapi.SerialConnector ('COM49')
  • יניטיאַליזירן די pybgapi ביבליאָטעק פֿאַר דעם נאָדע:
    • >>> נאָדע = bgapi.BGLib(קשר,'sl_bt.xapi')
  • עפֿענען BGAPI קאָמוניקאַציע צו דעם נאָדע:
    • >>> node.open()
  • קוק אויב איר קענען יבערגעבן מיט די ברעט, ניצן די system_hello () באַפֿעל. איר זאָל באַקומען אַ 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)
    • דרוק (עווט)
      • [בט_עווט_סיסטעם_באָאָט (מאַדזשאָר = 3, מיינער = 2, לאַטע = 0, בויען = 774, באָאָטלאָאַדער = 17563648, הוו = 1, האַש = 1181938724)]

בויען די GATT דאַטאַבייס

  • די בלועטאָאָטה - NCP ציל אַפּ טוט נישט אַנטהאַלטן אַ פּריבוילט GATT דאַטאַבייס. דאָ מיר וועלן בויען די דאַטאַבייס פֿון קאָד. ערשטער אָנהייב אַ סעסיע פֿאַר דייטאַבייס בנין:
    • >>> סעסיע = node.bt.gattdb.new_session(). סעסיע
  • לייג אַ נייַע דינסט צו די GATT דאַטאַבייס. דאָ מיר וועלן לייגן די גענעריק אַקסעס סערוויס אנגענומען דורך די בלועטאָאָטה סיג. דאָס איז אַ ערשטיק דינסט (0קס0) אָן פלאַגס שטעלן (0קס0) און מיט אַ 16ביט UUID (0קס1800).
    • service = node.bt.gattdb.add_service(סעסיע, 0, 0, bytes.fromhex(“0018”)).
  • לייג אַ נייַע קוואַליטעט צו די דינסט. דאָ מיר וועלן לייגן די דיווייס נאָמען כאַראַקטעריסטיש צו די גענעריק אַקסעס דינסט מיט READ פאַרמאָג (0קס2), קיין זיכערהייט רעקווירעמענץ (0קס0), קיין פלאַגס (0קס0), 16 ביט UUID (0קס2אַ00), בייַטעוודיק לענג (0קס2), מאַקסימום לענג פון 20 און מיט ערשט ווערט פון "PyBGAPI

Exampל":

  • >>> char = node.bt.gattdb.add_uuid16_characteristic(סעסיע, דינסט, 2, 0, 0, bytes.fromhex('002a'), 2,
    • 20, ביטעס ('PyBGAPI עקסampלע','וטף-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 דאַטאַבייס:
    • >>> אַדווערטייזער_סעט = node.bt.advertiser.create_set().האַנדלע
    • >>> node.bt.advertiser.start(advertiser_set, 2, 2)
      • bt_rsp_advertiser_start (רעזולטאט=0)
  • אָנהייב EFR Connect אויף דיין טעלעפאָן, און געפֿינען דיין מיטל גאַנצע ווי "PyBGAPI Exampלא"
  • איר קענען פאַרבינדן צו די מיטל און אַנטדעקן זייַן GATT דאַטאַבייס וואָס איצט האט די דיווייס נאָמען כאַראַקטעריסטיש

באַמערקונג: אויב איר ווילן אַ זייער שנעל עקסampאָן באַדערינג מיט די GATT דאַטאַבייס, איר קענען נאָך בליץ די בלועטאָאָטה - NCP Empty עקסampצו דיין ברעט, וואָס האט אַ יקערדיק פּריבוילט GATT דאַטאַבייס. אין דעם פאַל אַלע איר האָבן צו טאָן אויף דער באַלעבאָס זייַט איז:

  • >>> אַרייַנפיר בגאַפּי
  • >>> קשר = bgapi.SerialConnector ('COM49')
  • >>> נאָדע = bgapi.BGLib(קשר,'sl_bt.xapi')
  • >>> node.open()
  • >>> אַדווערטייזער_סעט = node.bt.advertiser.create_set().האַנדלע
  • >>> node.bt.advertiser.start(advertiser_set, 2, 2)
    • bt_rsp_advertiser_start (רעזולטאט=0)

שאַפֿן אַ בלועטאָאָטה קליענט אַפּלאַקיישאַן אין פּיטהאָן

  • קריייטינג אַ קליענט איז מער קאָמפּליצירט ווי ימפּלאַמענינג אַ סערווער. דעריבער מיר וועלן שרייַבן אַ פּיטהאָן שריפט. עפֿענען דיין באַליבסטע טעקסט רעדאַקטאָר און שאַפֿן אַ נייַע file, לאָזן אונדז רופן עס client.py
  • אַרייַנפיר די פאלגענדע:SILICON LABS 21Q2 בלועטאָאָטה פֿעיִקייטן לאַב 4
  • פּונקט ווי אין דעם פאַל פון די סערווער, מיר וועלן פאַרבינדן צו די נאָדע דורך UART. ניצן די COM פּאָרט נומער פון דיין צווייט ברעט דאָ:SILICON LABS 21Q2 בלועטאָאָטה פֿעיִקייטן לאַב 5
  • פֿון דאָ, אונדזער אַפּלאַקיישאַן וועט זיין געשעעניש געטריבן. ווען אַ בלועטאָאָטה געשעעניש איז דזשענערייטאַד דורך די אָנלייגן, מיר וועלן שעפּן די געשעעניש און פאָר פאָרויס די אַפּלאַקיישאַן:SILICON LABS 21Q2 בלועטאָאָטה פֿעיִקייטן לאַב 6
  • לאָמיר דעפינירן די געשעעניש האַנדלער פונקציע און לייגן אַ האַנדלער פֿאַר די system_boot געשעעניש, ווו מיר וועלן אָנהייבן סקאַנינג פֿאַר פּעריפעראַל דעוויסעס. באַמערקונג אַז די פֿונקציע זאָל זיין דיפיינד איידער די בשעת שלייף (און נאָך די דעפֿיניציע פון ​​די נאָדע בייַטעוודיק).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 מאַכט קאָנטראָל איז נישט ענייבאַלד אין די בלועטאָאָטה עקסampדי פּראַדזשעקס דורך פעליקייַט. צו לייגן דעם שטריך, די בלועטאָאָטה> שטריך> פּאָווערקאָנטראָל ווייכווארג קאָמפּאָנענט מוזן זיין אינסטאַלירן.

  • עפענען די לאָנטשער view פון Simplicity Studio 5.
  • סעלעקטירן איינער פון דיין דעוויסעס אין די קוויטל Debug Adapters. מאַכן זיכער אַז די בילכער סדק איז וו3.2.
  • עפֿענען די עקסampדי קוויטל פּראַדזשעקס & דעמאָס און געפֿינען די בלועטאָאָטה - NCP ליידיק עקסample. דרוק [שאַפֿן] צו שאַפֿן דעם פּרויעקט. (דאָס מאָל מיר טאָן נישט וועלן צו בויען די GATT דאַטאַבייס, אַזוי מיר נוצן NCP Empty, וואָס האט אַ פעליקייַט.)
  • עפֿענען די GATT קאָנפיגוראַטאָר קוויטל, סעלעקטירן דעם קעראַקטעריסטיקס פון די מיטל נאָמען און אָווועררייט די "Silabs Example" ערשט ווערט מיט "PyBGAPI Example" (אַזוי דער קליענט וועט דערקענען די סערווער). אויך אָווועררייט די ווערט לענג מיט 15.
  • דרוק ctrl-s צו ראַטעווען די דאַטאַבייס.
  • אין די Project Configurator עפענען די ווייכווארג קאַמפּאָונאַנץ קוויטל.
  • געפֿינען די בלועטאָאָטה> שטריך> פּאָווערקאָנטראָל ווייכווארג קאָמפּאָנענט, און גיט [ינסטאַלירן]SILICON LABS 21Q2 בלועטאָאָטה פֿעיִקייטן לאַב 12
  • דריקט אויף די קאָגוויל ווייַטער צו די PowerControl ווייכווארג קאָמפּאָנענט צו קאָנטראָלירן די אויבערשטער און נידעריקער לימאַץ פון די גאָלדען קייט. שטעלן די נידעריקער שיעור פֿאַר 1M
    • PHY צו -45 (אַנשטאָט פון -60). כאָטש אין פיר דעם ווערט איז נישט אָפּטימאַל, עס וועט רעזולטאַט אין מער טקס מאַכט אַדזשאַסטמאַנץ, וואָס איז גוט פֿאַר דעמאַנסטריישאַן צוועקן.
  • אין SDK ווערסיע 3.2.0, אַ קליין וואָרקאַראָונד דאַרף זיין געווענדט צו שטעלן די גאָלדען קייט רעכט: עפֿענען די sl_bluetooth.c file געפֿונען אין די / autogen טעקע פון ​​דיין פּרויעקט און מאַך די sl_bt_init_power_control (); פֿונקציע רופן איידער סל_בט_יניט_סטאַק (& קאָנפיג);SILICON LABS 21Q2 בלועטאָאָטה פֿעיִקייטן לאַב 13
  • בויען די פּרויעקט און בליץ עס צו דיין ברעט.
  • אויב דיין צוויי באָרדז זענען פון די זעלבע טיפּ, פלאַש די זעלבע בילד צו די אנדערע ברעט אויך. אויב דיין צווייטע ברעט איז אַ אַנדערש ברעט, איבערחזרן די אויבן סטעפּס פֿאַר די רגע ברעט.

סטאַרטינג די סערווירער און דער קליענט

  • איצט ווידער, עפענען די Python bash, פאַרבינדן צו דיין ערשטער ברעט און אָנהייבן גאַנצעSILICON LABS 21Q2 בלועטאָאָטה פֿעיִקייטן לאַב 14
  • מאָדיפיצירן דיין קליענט אַפּלאַקיישאַן אַזוי אַז עס וועט נישט אַרויסגאַנג נאָך לייענען די מיטל נאָמען. געפֿינען די פאלגענדע שורות און שטעלן זיי אין אַ באַמערקונג:SILICON LABS 21Q2 בלועטאָאָטה פֿעיִקייטן לאַב 15
  • היט און לויפן דיין קליענט אַפּלאַקיישאַן
    • py .\client.py
  • שטעלן דיין צוויי באָרדז ווייַט אַוועק, און סלאָולי מאַך זיי נעענטער צו יעדער אנדערער. איצט איר זאָל זען אַז דער אָנלייגן סטאַרץ דיקריסינג זיין מאַכט מדרגה פון די פעליקייַט 8dBm אַראָפּ צו -3dBm (וואָס איז די מינימאַל טקס מאַכט דורך פעליקייַט):SILICON LABS 21Q2 בלועטאָאָטה פֿעיִקייטן לאַב 16

דאָקומענטן / רעסאָורסעס

SILICON LABS 21Q2 בלועטאָאָטה פֿעיִקייטן לאַב [pdf] אינסטרוקציע מאַנואַל
21ק2, בלועטאָאָטה פֿעיִקייטן לאַב, 21ק2 בלועטאָאָטה פֿעיִקייטן לאַב, פֿעיִקייטן לאַב, לאַב

רעפערענצן

לאָזן אַ באַמערקונג

דיין בליצפּאָסט אַדרעס וועט נישט זיין ארויס. פארלאנגט פעלדער זענען אנגעצייכנט *