Përmbajtje:

Prezantimi i I2C Me Zio Module dhe Qwiic: 6 hapa
Prezantimi i I2C Me Zio Module dhe Qwiic: 6 hapa

Video: Prezantimi i I2C Me Zio Module dhe Qwiic: 6 hapa

Video: Prezantimi i I2C Me Zio Module dhe Qwiic: 6 hapa
Video: Как использовать SSD1306 128x32 OLED-дисплей I2C с кодом Arduino 2024, Korrik
Anonim
Prezantimi i I2C Me Zio Module dhe Qwiic
Prezantimi i I2C Me Zio Module dhe Qwiic

Robin Sharma tha: ‘Përmirësimet e vogla ditore me kalimin e kohës çojnë në rezultate mahnitëse’. Ju mund të jeni duke menduar, ‘Ah, një postim tjetër I2C?’. Epo, sigurisht që ka mijëra informacione kur bëhet fjalë për I2C. Por qëndroni të sintonizuar, ky nuk është vetëm një artikull tjetër I2C. Sistemi Qwiic Connect dhe bordet e shpërthimit periferik Zio janë padyshim ndërrues të lojërave I²C!

Prezantimi

Nëse po ndërtoni projekte elektronike dhe po bëni gjëra të mrekullueshme, mund të keni kuptuar se ndërsa projektet tuaja bëhen më të mëdha, paneli juaj fillon të duket si një gropë gjarpëri (pak e çrregullt, apo jo?).

Përveç kësaj, nëse keni projekte të shumta në vazhdim, ju kaloni një bandë kohe duke ndërruar telat nga projekti në projekt.

Ne jemi krijues, kështu që ne e kuptojmë luftën. Kontributi ynë më i fundit në komunitetin OHS është një sistem modular prototipizimi i quajtur ZIO, duke adoptuar sistemin lidhës Qwiic. Qwiic është një mënyrë shumë e përshtatshme për të komunikuar një bord qarkor të programueshëm me sensorë, aktivizues dhe dërrasa shpërthimi përmes I²C.

Hapi 1: Çfarë është I²C dhe pse na pëlqen

Çfarë është I²C dhe pse na pëlqen
Çfarë është I²C dhe pse na pëlqen

I²C është autobusi multi-master më i përdorur gjerësisht, që do të thotë se patate të skuqura të ndryshme mund të lidhen me të njëjtin autobus. Përdoret në shumë aplikacione midis një masteri dhe skllavi ose pajisje të shumta masteri dhe skllavi. Nga mikrokontrolluesit, tek telefonat inteligjentë, tek aplikimet industriale, veçanërisht për pajisjet video si monitorët e kompjuterit. Mund të zbatohet lehtësisht në shumë modele elektronike (dhe kohët e fundit edhe më lehtë me lidhësin Qwiic).

Nëse do të duhej të përshkruanim I²C me dy fjalë, me siguri do të përdornim thjeshtësinë dhe fleksibilitetin.

Një nga avantazhet më të mëdha të I²C mbi protokollet e tjerë të komunikimit është se është një ndërfaqe me dy tela që do të thotë se i duhen vetëm dy tela sinjali, SDA (Serial Data Line) dhe SCL (Serial Clock Line). Mund të mos jetë protokolli më i shpejtë, por dihet se është shumë fleksibël, duke lejuar fleksibilitet në tensionin e autobusit.

Një karakteristikë tjetër domethënëse që e bën këtë autobus tërheqës është miqësia midis zotit dhe skllavit. Pajisjet e shumta mund të lidhen me të njëjtin autobus dhe nuk ka nevojë të ndryshoni telat midis pajisjeve pasi secila pajisje ka një adresë unike (mjeshtri zgjedh pajisjen për të komunikuar).

Hapi 2: Le të hedhim një vështrim më të afërt

Le të hedhim një vështrim më të afërt
Le të hedhim një vështrim më të afërt
Le të hedhim një vështrim më të afërt
Le të hedhim një vështrim më të afërt
Le të hedhim një vështrim më të afërt
Le të hedhim një vështrim më të afërt
Le të hedhim një vështrim më të afërt
Le të hedhim një vështrim më të afërt

Pra, si funksionon I²C? Më herët kemi përmendur se një nga karakteristikat më domethënëse është lejimi i tensionit, kjo është e mundur pasi I²C përdor një kolektor të hapur (i njohur gjithashtu si kullimi i hapur) për të dy linjat e komunikimit SDA dhe SCL.

SCL është sinjali i orës, sinkronizon transferimin e të dhënave midis pajisjeve në autobusin I²C dhe gjenerohet nga masteri. Ndërsa SDA mbart të dhënat për të dërguar ose marrë nga sensorët ose pajisjet e tjera të lidhura me autobusin.

Dalja në sinjal është e lidhur me tokën, që do të thotë se çdo pajisje imponohet si e ulët. Për të rikuperuar sinjalin në lartësi, të dy linjat janë të lidhura me një tension pozitiv të furnizimit përmes një rezistence tërheqëse që do të përfundojë.

Me modulet ZIO që ju mbuluam, të gjitha bordet tona të thyerjes përfshijnë rezistencën e nevojshme tërheqëse.

I²C ndjek një protokoll mesazhi në mënyrë që të komunikojë masterin me pajisjet skllevër. Dy linjat (SCL dhe SDA) janë të zakonshme brenda të gjithë skllevërve të I²C, të gjithë skllevërit në autobus dëgjojnë mesazhin.

Protokolli i mesazhit ndjek formatin e treguar në imazhin e bashkangjitur:

Mund të duket e komplikuar në shikim të parë, por ne kemi një lajm të mirë. Kur përdorni Arduino IDE ekziston biblioteka Wire.h, për të thjeshtuar të gjitha konfigurimet për protokollin e mesazheve I²C.

Kushti i fillimit gjenerohet kur linja e të dhënave (SDA) bie poshtë ndërsa linja e orës (SCL) është ende e lartë. Kur vendosni një projekt në ndërfaqen Arduino, nuk kemi nevojë të shqetësohemi për gjenerimin e gjendjes fillestare, ai do të fillojë me një funksion specifik (Wire.beginTransmission (slaveAddress)).

Përveç kësaj, ky funksion gjithashtu fillon transmetimin me adresën specifike të skllavit. Për të zgjedhur skllavin për të komunikuar në autobusin e përbashkët, mjeshtri vazhdon t'i japë adresën skllavit për të komunikuar. Pasi adresa është vendosur të komunikojë me skllavin përkatës, de mesazhi vijon me një bit leximi ose shkrimi, në varësi të mënyrës së zgjedhur.

Salveja jep një përgjigje me një konfirmim (ACK ose NACK), dhe pajisjet e tjera skllave në autobus zbresin pjesën tjetër të të dhënave deri në përfundimin e mesazhit dhe autobusi është falas. Pas ACK, një sekuencë e një regjistri të brendshëm adresimi të skllevërve vazhdon transmetimin.

Kur të dhënat dërgohen, mesazhi i transferimit përfundon me një kusht ndalimi. Për t'i dhënë fund transmetimit, linja e të dhënave ndryshon në të lartë dhe linja e orës mbetet e lartë.

Hapi 3: I²C dhe ZIO

I²C dhe ZIO
I²C dhe ZIO

Ne kuptuam se do të ishte më mirë të planifikoja të gjitha informacionet e mësipërme në një bisedë midis një mjeshtri (a.k.a. Zuino, mikroja jonë) dhe skllevërve (a.k.a bordet e shpërthimit ZIO).

Në këtë shembull bazë ne po përdorim sensorin e distancës ZIO TOF dhe Ekranin ZIO OLED. TOF jep informacionin në distancë ndërsa ZIO Oled shfaq të dhënat. Komponentët dhe pajisjet e përdorura:

  • ZUINO M UNO - Mjeshtri
  • Ekran ZIO OLED - Slave_01
  • Sensori i distancës ZIO TOF - Slave_02
  • Kabllo Qwiic - Lidhje e lehtë për pajisjet I²C

Ja se sa e lehtë është të lidhësh bordet me njëri -tjetrin duke përdorur Qwiic, nuk nevojitet dërrasë e ngushtë, kabllo shtesë të shtuar ose kunja ZUINO. Linja serike Ora dhe të dhënat e ZUINO lidhet automatikisht me sensorin e Distancës dhe OLED duke përdorur lidhësin Qwiic. Dy kabllot e tjerë janë 3V3 dhe GND.

Së pari, le të hedhim një vështrim në informacionin e nevojshëm, për të komunikuar zotërinë me skllevërit, do të na duhej të dinim adresat unike.

Pajisja: Sensori i distancës ZIO

  • Numri i Pjesës: RFD77402
  • Adresa I2C: 0x4C
  • Lidhja e fletës së të dhënave

Pajisja: Ekran ZIO OLED

  • Numri i Pjesës: SSD1306
  • Adresa: 0x3C
  • Lidhja e fletës së të dhënave

Për të gjetur adresën unike për pajisjet skllave, hapni fletën e të dhënave të ofruara. Për sensorin e distancës adresa jepet në seksionin e Ndërfaqes së Modulit. Çdo sensor ose komponent ka një fletë të dhënash të ndryshme me informacione të ndryshme të dhëna. Ndonjëherë mund të jetë sfiduese për ta gjetur atë në një fletë të të dhënave prej 30 faqesh (këshillë: hapni mjetin e gjetjes në shikuesin PDF dhe shtypni "adresën" ose "ID e pajisjes" për një kërkim të shpejtë).

Tani që adresa unike për secilën pajisje është e njohur, për të lexuar/ shkruar të dhëna, adresa e regjistrit të brendshëm duhet të identifikohet (gjithashtu nga fleta e të dhënave). Një vështrim në fletën e të dhënave të sensorit ZIO Adresa për të marrë distancën korrespondon me 0x7FF.

Në këtë rast të veçantë ne me të vërtetë nuk kemi nevojë për këtë informacion për përdorimin e sensorit siç e ka bërë biblioteka tashmë.

Hapi tjetër, dorëzoni kodin. ZUINO M UNO është në përputhje me Arduino IDE, gjë që e bën konfigurimin shumë më të lehtë. Bibliotekat e nevojshme për këtë projekt janë si më poshtë:

  • Tela.h
  • Adafruit_GFX.h
  • Adafruit_SSD1306.h
  • SparkFun_RFD77402_Arduino_Library.h

Wire.h është një bibliotekë arduino, dy bibliotekat Adafruit përdoren për OLED dhe ato të fundit përdoren për sensorin e Distancës. Shikoni këtë tutorial se si të lidhni bibliotekat *.zip me Arduino IDE.

Duke parë kodin, së pari duhet të deklarohen bibliotekat si dhe adresa për OLED.

Në konfigurimin () transmetimi fillon dhe teksti shfaqet për funksionimin e sensorit të distancës.

Lak () merr matje në distancë dhe OLED e printon atë.

Kontrolloni shembullin e kodit burimor në lidhjen github.

Përdorimi i të dy bordeve të shpërthimit është mjaft i lehtë në të gjitha kuptimet. Nga ana e harduerit lidhësi Qwiic e bën konfigurimin e harduerit më të shpejtë dhe shumë më pak të çrregullt sesa të kesh një dërrasë buke dhe tela kërcyes. Dhe për firmware, duke përdorur bibliotekat përkatëse për komunikimin I2C, sensori dhe ekrani e bëjnë kodin shumë më të thjeshtë.

Hapi 4: Cila është gjatësia maksimale e kabllit?

Gjatësia maksimale varet nga rezistencat tërheqëse të përdorura për SDA dhe SCL dhe kapaciteti i kabllit. Rezistencat gjithashtu përcaktojnë shpejtësinë e autobusit, sa më e ulët të jetë shpejtësia e autobusit, aq më i gjatë është kufiri i kabllit. Kapaciteti i kabllit kufizon numrin e pajisjeve në autobus, si dhe gjatësinë e kabllit. Aplikimet tipike kufizojnë gjatësinë e telit në 2.5-3.5m (9-12ft), por ka ndryshime në varësi të kabllit të përdorur. Për referencë, gjatësia maksimale në aplikimet I2C duke përdorur kabllo të mbrojtur të palëve të përdredhura 22 AWG është rreth 1 m (3 ft) në 100 kbaund, 10 m (30ft) në 10kbaud.

Ka disa vende si mogami ose WolframAlpha që ju lejojnë të vlerësoni gjatësinë e kabllit.

Hapi 5: Si të lidhni pajisje të shumta në të njëjtin autobus?

Si të lidhni pajisje të shumta në të njëjtin autobus?
Si të lidhni pajisje të shumta në të njëjtin autobus?
Si të lidhni pajisje të shumta në të njëjtin autobus?
Si të lidhni pajisje të shumta në të njëjtin autobus?

I2C është një autobus serial, ku të gjitha pajisjet janë të lidhura me një autobus të përbashkët. Me lidhësin Qwiic, bordet e ndryshme të shpërthimit mund të lidhen njëra pas tjetrës duke përdorur lidhësin Qwiic. Çdo bord ka të paktën 2 lidhje Qwiic.

Ne krijuam borde të ndryshme për të zgjidhur disa nga kufizimet Qwiic dhe I2C. Bordi i përshtatësit Zio Qwiic përdoret për t'u lidhur përmes pajisjeve Qwiic pa një lidhës Qwiic, duke përdorur Qwiic në kabllon e kokës mashkullore të kokës. Ky truk i thjeshtë krijon mundësi të pakufizuara.

Për të lidhur pajisje të ndryshme në një autobus ose rrjet pemësh, ne dolëm me Qendrën Zio Qwiic.

E fundit por jo më pak e rëndësishme, Zio Qwiic MUX lejon lidhjen e dy ose më shumë pajisjeve duke përdorur të njëjtën adresë.

Hapi 6: Çfarë është Përfundimi I2C?

I2C kërkohet të përfundojë, kështu që linja është falas për të shtuar pajisje të tjera. Kjo mund të jetë pak konfuze, pasi termi i përfundimit përdoret zakonisht për të përshkruar rezistorët e tërheqjes së autobusit (për të siguruar një gjendje të paracaktuar, në këtë rast për të furnizuar rrymën në qark). Për bordet Zuino, vlera e rezistencës është 4.7kΩ.

Nëse përfundimi hiqet, nuk do të ketë fare komunikim në autobus- mjeshtri nuk do të jetë në gjendje të krijojë gjendjen e fillimit, kështu që mesazhi nuk do të transmetohet te skllevërit.

Për informacione të mëtejshme dhe aftësitë e Zio kontrolloni produktet më të fundit të Zio. Qëllimi në këtë artikull është të shpjegojë bazat e komunikimit I²C dhe si funksionon me lidhësin Zio dhe Qwiic. Qëndroni në pritje për më shumë përditësime.

Recommended: