Բովանդակություն:

Ներկայացնում եմ I2C- ը Zio մոդուլներով և Qwiic- ով ՝ 6 քայլ
Ներկայացնում եմ I2C- ը Zio մոդուլներով և Qwiic- ով ՝ 6 քայլ

Video: Ներկայացնում եմ I2C- ը Zio մոդուլներով և Qwiic- ով ՝ 6 քայլ

Video: Ներկայացնում եմ I2C- ը Zio մոդուլներով և Qwiic- ով ՝ 6 քայլ
Video: Օգտագործելով Melexis MLX90614 ինֆրակարմիր ջերմաչափ `Arduino- ի հետ 2024, Հուլիսի
Anonim
Ներկայացնում եմ I2C- ը Zio մոդուլներով և Qwiic- ով
Ներկայացնում եմ I2C- ը Zio մոդուլներով և Qwiic- ով

Ռոբին Շարման ասաց. «Dailyամանակի ընթացքում ամենօրյա փոքր բարելավումները հանգեցնում են ցնցող արդյունքների»: Դուք կարող եք մտածել. «Օ Aw, ևս մեկ I2C գրառում»: Դե, անշուշտ, հազարավոր տեղեկություններ կան, երբ խոսքը վերաբերում է I2C- ին: Բայց հետևեք, սա պարզապես հերթական I2C հոդվածը չէ: Qwiic Connect System- ը և Zio- ի ծայրամասային բեկումնային տախտակները, անկասկած, I²C խաղ փոխողն են:

Ներածություն

Եթե դուք կառուցում եք էլեկտրոնային նախագծեր և անում հիանալի գործեր, գուցե գիտակցեիք, որ երբ ձեր նախագծերը մեծանում են, ձեր տախտակը սկսում է օձի փոսի տեսք ունենալ (մի փոքր խառնաշփոթ չէ՞):

Բացի այդ, եթե ունեք բազմաթիվ նախագծեր, դուք ժամանակ եք ծախսում ՝ նախագծից նախագիծ լարերը փոխելու համար:

Մենք ստեղծողներ ենք, ուստի հասկանում ենք պայքարը: Մեր վերջին ներդրումը OHS համայնքին մի մոդուլային նախատիպային համակարգ է, որը կոչվում է ZIO ՝ ընդունելով Qwiic միացման համակարգ: Qwiic- ը ծրագրավորվող տպատախտակին I convenientC- ի միջոցով սենսորներին, շարժիչներին և ճեղքման տախտակներին հաղորդակցելու շատ հարմար միջոց է:

Քայլ 1. Ինչ է I²C- ը և ինչու է այն մեզ դուր գալիս

Ինչ է I²C- ը և ինչու է այն մեզ դուր գալիս
Ինչ է I²C- ը և ինչու է այն մեզ դուր գալիս

I²C- ն ամենաընդունված բազմավաստակ ավտոբուսն է, ինչը նշանակում է, որ տարբեր չիպեր կարող են միացվել նույն ավտոբուսին: Այն օգտագործվում է բազմաթիվ ծրագրերում `վարպետի և ստրուկի կամ բազմաթիվ վարպետի և ստրուկի սարքերի միջև: Միկրոկառավարիչներից, մինչև սմարթֆոններ, արդյունաբերական ծրագրեր, հատկապես համակարգչային մոնիտորների նման տեսա սարքերի համար: Այն կարող է հեշտությամբ իրականացվել բազմաթիվ էլեկտրոնային ձևավորումներում (իսկ վերջերս նույնիսկ ավելի հեշտ ՝ Qwiic միակցիչով):

Եթե մենք ստիպված լինենք I²C- ն բնութագրել երկու բառով, հավանաբար կօգտագործենք պարզությունն ու ճկունությունը:

Հաղորդակցության այլ արձանագրությունների նկատմամբ I²C- ի ամենամեծ առավելություններից մեկն այն է, որ դա երկու մետաղալար ինտերֆեյս է, ինչը նշանակում է, որ նրան անհրաժեշտ են միայն երկու ազդանշանային լարեր `SDA (Serial Data Line) և SCL (Serial Clock Line): Հնարավոր է, որ դա ամենաարագ արձանագրությունը չլինի, բայց հայտնի է շատ ճկուն լինելու համար, ինչը թույլ է տալիս ճկունություն ապահովել ավտոբուսի լարման մեջ:

Մեկ այլ նշանակալի առանձնահատկություն, որը գրավիչ է դարձնում այս ավտոբուսը, տիրոջ և ստրուկի միջև ընկերակցությունն է: Մի քանի ավտոբուս կարող են միացվել միևնույն ավտոբուսին, և կարիք չկա փոխել սարքերի միջև լարերը, քանի որ յուրաքանչյուր սարք ունի յուրահատուկ հասցե (վարպետը ընտրում է սարքը հաղորդակցության համար):

Քայլ 2: Եկեք ավելի սերտ նայենք

Եկեք ավելի սերտ նայենք
Եկեք ավելի սերտ նայենք
Եկեք ավելի սերտ նայենք
Եկեք ավելի սերտ նայենք
Եկեք ավելի սերտ նայենք
Եկեք ավելի սերտ նայենք
Եկեք ավելի սերտ նայենք
Եկեք ավելի սերտ նայենք

Այսպիսով, ինչպես է աշխատում I²C- ը: Ավելի վաղ մենք նշել էինք, որ ամենակարևոր առանձնահատկություններից մեկը լարման թույլատրելիությունն է, դա հնարավոր է, քանի որ I²C- ն օգտագործում է բաց կոլեկտոր (նաև հայտնի է որպես բաց արտահոսք) ինչպես SDA, այնպես էլ SCL հաղորդակցության գծերի համար:

SCL- ը ժամացույցի ազդանշան է, համաժամացնում է տվյալների փոխանցումը I²C ավտոբուսի սարքերի միջև և այն գեներացվում է վարպետի կողմից: Մինչ SDA- ն տանում է տվյալները ուղարկելու կամ ստանալու տվիչներից կամ ավտոբուսին միացած այլ սարքերից:

Ազդանշանի ելքը միացված է գետնին, այսինքն ՝ յուրաքանչյուր սարք պարտադրված է ցածր: Ազդանշանը բարձր մակարդակի վերականգնելու համար երկու տողերն էլ միացված են դրական մատակարարման լարման `ձգվող դիմադրության միջոցով, որը պետք է դադարեցվի:

ZIO մոդուլների շնորհիվ մենք ձեզ ծածկեցինք, մեր բոլոր ճեղքման տախտակները ներառում են անհրաժեշտ ձգման դիմադրություն:

I²C- ն հետևում է հաղորդագրության արձանագրությանը `վարպետին ստրուկ սարքերի հետ հաղորդակցվելու համար: Երկու տողը (SCL և SDA) ընդհանուր են I²C բոլոր ստրուկների մեջ, ավտոբուսում գտնվող բոլոր ստրուկները լսում են հաղորդագրությունը:

Հաղորդագրության արձանագրությունը հետևում է կցված պատկերում ցուցադրված ձևաչափին.

Առաջին հայացքից այն կարող է բարդ թվալ, բայց մենք մի փոքր լավ նորություն ունենք: Arduino IDE- ից օգտվելիս կա գրադարան Wire.h ՝ I²C հաղորդագրության արձանագրության բոլոր կարգավորումները պարզեցնելու համար:

Մեկնարկային պայմանը ստեղծվում է, երբ տվյալների գիծը (SDA) ցածր է ընկնում, իսկ ժամացույցի գիծը (SCL) դեռ բարձր է: Arduino ինտերֆեյսի վրա նախագիծ ստեղծելիս մենք իսկապես կարիք չունենք անհանգստանալու սկզբնական պայմանի ստեղծման մասին, այն կսկսվի հատուկ գործառույթով (Wire.beginTransmission (slaveAddress)):

Բացի այդ, այս գործառույթը նաև սկսում է փոխանցումը հատուկ ստրուկի հասցեով: Ընդհանուր ավտոբուսում հաղորդակցվելու ստրուկին ընտրելու համար վարպետը փոխանցում է ստրուկին հասցեն հաղորդակցվելու համար: Այն բանից հետո, երբ հասցեն կհաստատվի համապատասխան ստրուկին հաղորդակցվելու համար, դե հաղորդագրությունը հաջորդում է կամ կարդալու կամ գրելու բիթով `կախված ընտրված ռեժիմից:

Աղցանը տալիս է պատասխանը հաստատումով (ACK կամ NACK), իսկ ավտոբուսի ստրուկի այլ սարքերը զեղչում են մնացած տվյալները մինչև հաղորդագրության ամբողջական լինելը և ավտոբուսը անվճար: ACK- ից հետո ստրուկների ներքին հասցեագրման ռեգիստրի հաջորդականությունը շարունակում է փոխանցումը:

Երբ տվյալները ուղարկվում են, փոխանցման հաղորդագրությունն ավարտվում է կանգառի պայմանով: Հաղորդումը դադարեցնելու համար տվյալների գիծը փոխվում է բարձրի, իսկ ժամացույցի գիծը մնում է բարձր:

Քայլ 3: I²C և ZIO

I²C և ZIO
I²C և ZIO

Մենք պարզեցինք, որ ամենալավն այն է, որ վերոնշյալ բոլոր տեղեկությունները պլանավորեմ վարպետի (մերկ Zուինո, մեր միկրո) և ստրուկների (հայտնի է որպես ZIO ճեղքման տախտակներ) զրույցի ընթացքում:

Այս հիմնական օրինակում մենք օգտագործում ենք ZIO TOF հեռավորության սենսորը և ZIO OLED էկրանը: TOF- ն տալիս է հեռավորության մասին տեղեկատվությունը, մինչ ZIO Oled- ը ցուցադրում է տվյալները: Օգտագործված բաղադրիչներն ու սարքերը.

  • ZUINO M UNO - վարպետ
  • ZIO OLED էկրան - Slave_01
  • ZIO TOF Հեռավորության ցուցիչ - Ստրուկ_02
  • Qwiic Cable - Հեշտ միացում I²C սարքերի համար

Ահա թե որքան հեշտ է տախտակները միմյանց միացնել Qwiic- ի միջոցով, առանց տախտակի անհրաժեշտության, լրացուցիչ մալուխների տեղադրման կամ ZUINO կապում: ZUINO- ի սերիական ժամացույցի և տվյալների գիծը ինքնաբերաբար միացված է Հեռավորության ցուցիչին և OLED- ին ՝ օգտագործելով Qwiic միակցիչը: Երկու այլ մալուխներ են 3V3 և GND:

Նախ, եկեք նայենք անհրաժեշտ տեղեկատվությանը, տիրոջը ստրուկների հետ հաղորդակցվելու համար մեզ անհրաժեշտ կլինի իմանալ եզակի հասցեները:

Սարքը ՝ ZIO Հեռավորության ցուցիչ

  • Մասի համարը `RFD77402
  • I2C Հասցե ՝ 0x4C
  • Տվյալների թերթիկի հղում

Սարքը ՝ ZIO OLED էկրան

  • Մասի համարը `SSD1306
  • Հասցե ՝ 0x3C
  • Տվյալների թերթիկի հղում

Ստրուկ սարքերի համար եզակի հասցե գտնելու համար բացեք տրամադրված տվյալների թերթիկը: Հեռավորության տվիչի համար հասցեն նշված է Մոդուլի միջերեսի բաժնում: Յուրաքանչյուր սենսոր կամ բաղադրիչ ունի տարբեր տվյալների թերթ ՝ տրամադրված տարբեր տեղեկություններով: Երբեմն կարող է դժվար լինել այն գտնել 30 էջանոց տվյալների թերթիկում (ակնարկ. Բացեք գտնելու գործիքը PDF դիտիչի վրա և արագ որոնման համար մուտքագրեք «հասցե» կամ «սարքի ID»):

Այժմ, երբ յուրաքանչյուր սարքի յուրահատուկ հասցեն հայտնի է, տվյալները կարդալու/ գրելու համար ներքին ռեգիստրի հասցեն պետք է նույնականացվի (նաև տվյալների թերթից): Նայելով ZIO Distance սենսորի տվյալների թերթին ՝ հեռավորությունը ստանալու հասցեն համապատասխանում է 0x7FF- ին:

Կոնկրետ այս դեպքում մենք իսկապես կարիք չունենք սենսորից օգտվելու համար այս տեղեկատվության, ինչպես դա արդեն անում է գրադարանը:

Հաջորդ քայլը ՝ հանձնեք կոդը: ZUINO M UNO- ն համատեղելի է Arduino IDE- ի հետ, ինչը շատ ավելի հեշտացնում է կարգավորումը: Այս նախագծի համար անհրաժեշտ գրադարաններն են.

  • Հաղորդալար. Ժ
  • Adafruit_GFX.h
  • Adafruit_SSD1306.h
  • SparkFun_RFD77402_Arduino_Library.h

Wire.h- ն arduino գրադարան է, Adafruit- ի երկու գրադարանները օգտագործվում են OLED- ի համար, իսկ վերջինը `Distance սենսորի համար: Ստուգեք այս ձեռնարկը, թե ինչպես կապել *.zip գրադարանները Arduino IDE- ին:

Նայելով ծածկագրին ՝ նախ պետք է հայտարարվեն գրադարանները, ինչպես նաև OLED- ի հասցեն:

Ստեղծման մեջ () փոխանցումը սկսվում է, և տեքստը ցուցադրվում է հեռավորության սենսորի գործառույթի համար:

Օղակը () չափումներ է կատարում հեռավորության վրա և OLED- ը տպում է այն:

Ստուգեք github հղման աղբյուրի կոդը:

Երկու ճեղքման տախտակները օգտագործելը բավականին հեշտ է բոլոր առումներով: Սարքավորման կողմից Qwiic միակցիչն ապարատային կարգավորումն ավելի արագ և շատ ավելի խառնաշփոթ է դարձնում, քան հացահատիկի և ցատկող լարեր ունենալը: Իսկ որոնվածի համար, օգտագործելով համապատասխան գրադարանները I2C հաղորդակցության համար, սենսորը և էկրանը ծածկագիրը շատ ավելի պարզ են դարձնում:

Քայլ 4: Որքա՞ն է մալուխի առավելագույն երկարությունը:

Առավելագույն երկարությունը կախված է SDA- ի և SCL- ի համար օգտագործվող ձգվող ռեզիստորներից և մալուխի հզորությունից: Ռեզիստորները որոշում են նաև ավտոբուսի արագությունը, որքան ցածր է ավտոբուսի արագությունը, այնքան երկար է մալուխի սահմանը: Մալուխի հզորությունը սահմանափակում է ավտոբուսում գտնվող սարքերի քանակը, ինչպես նաև մալուխի երկարությունը: Տիպիկ ծրագրերը սահմանափակում են մետաղալարերի երկարությունը մինչև 2.5-3.5 մ (9-12 ֆուտ), բայց կան տատանումներ `կախված օգտագործվող մալուխից: Որպես տեղեկանք, I2C ծրագրերի առավելագույն երկարությունը `պաշտպանված 22 AWG ոլորված զույգ մալուխների միջոցով, կազմում է մոտ 1 մ (3 ֆտ) 100 կբաունդ, 10 մ (30 ֆտ) 10 կբաուդում:

Կան որոշ կայքեր, ինչպիսիք են մոգամին կամ WolframAlpha- ն, որոնք թույլ են տալիս գնահատել մալուխի երկարությունը:

Քայլ 5. Ինչպե՞ս միացնել բազմաթիվ սարքեր նույն ավտոբուսում:

Ինչպե՞ս միացնել բազմաթիվ սարքեր նույն ավտոբուսում
Ինչպե՞ս միացնել բազմաթիվ սարքեր նույն ավտոբուսում
Ինչպե՞ս միացնել բազմաթիվ սարքեր նույն ավտոբուսում
Ինչպե՞ս միացնել բազմաթիվ սարքեր նույն ավտոբուսում

I2C- ը սերիական ավտոբուս է, որտեղ բոլոր սարքերը միացված են ընդհանուր ավտոբուսին: Qwiic միակցիչով տարբեր ճեղքման տախտակները կարող են իրար միացվել Qwiic միակցիչի միջոցով: Յուրաքանչյուր տախտակ ունի առնվազն 2 Qwiic միակցիչ:

Մենք ստեղծեցինք տարբեր տախտակներ ՝ Qwiic և I2C որոշ սահմանափակումներ լուծելու համար: Zio Qwiic ադապտերային տախտակն օգտագործվում է առանց Qwiic միակցիչի Qwiic սարքերի միջոցով միանալու համար ՝ Qwiic- ի միջոցով արկղի արական վերնագրի մալուխի միջոցով: Այս պարզ հնարքը անսահմանափակ հնարավորություններ է ստեղծում:

Ավտոբուսի կամ ծառի ցանցի տարբեր սարքեր միացնելու համար մենք եկանք Zio Qwiic Hub- ի հետ:

Վերջին, բայց ոչ ամենակարևորը, Zio Qwiic MUX- ը թույլ է տալիս միացնել երկու կամ ավելի սարքեր ՝ օգտագործելով նույն հասցեն:

Քայլ 6. Ի՞նչ է I2C դադարեցումը:

I2C- ն պահանջվում է դադարեցնել, այնպես որ գիծը ազատ է այլ սարքեր ավելացնելու համար: Սա կարող է մի փոքր շփոթեցուցիչ լինել, քանի որ դադարեցման տերմինը սովորաբար օգտագործվում է ավտոբուսի ձգվող դիմադրիչները նկարագրելու համար (կանխադրված վիճակ ապահովելու համար, այս դեպքում `հոսանքին միացում հաղորդելու համար): Zuino տախտակների համար դիմադրության արժեքը 4.7kΩ է:

Եթե դադարեցումը բաց թողնվի, ավտոբուսում ընդհանրապես կապ չի լինի. Վարպետը չի կարողանա ստեղծել սկզբնական պայմանը, այնպես որ հաղորդագրությունը չի փոխանցվի ստրուկներին:

Լրացուցիչ տեղեկությունների և Zio- ի հնարավորությունների համար ստուգեք Zio- ի վերջին արտադրանքը: Այս հոդվածի նպատակն է բացատրել I²C հաղորդակցության հիմունքները և ինչպես է այն աշխատում Zio և Qwiic միակցիչի հետ: Շարունակեք հետևել ավելի շատ թարմացումներին:

Խորհուրդ ենք տալիս: