Sisällysluettelo:

Esittelyssä I2C Zio -moduuleilla ja Qwiicillä: 6 vaihetta
Esittelyssä I2C Zio -moduuleilla ja Qwiicillä: 6 vaihetta

Video: Esittelyssä I2C Zio -moduuleilla ja Qwiicillä: 6 vaihetta

Video: Esittelyssä I2C Zio -moduuleilla ja Qwiicillä: 6 vaihetta
Video: 7 проектов. Сборка светодиодного ЖК-будильника с использованием DS1307 и Arduino | Урок 105 2024, Heinäkuu
Anonim
Esittelyssä I2C, jossa on Zio -moduulit ja Qwiic
Esittelyssä I2C, jossa on Zio -moduulit ja Qwiic

Robin Sharma sanoi:”Pienet päivittäiset parannukset ajan myötä johtavat upeisiin tuloksiin”. Saatat ajatella: "Ai, toinen I2C -viesti?". I2C: stä on varmasti tuhansia tietoja. Mutta pysy kuulolla, tämä ei ole vain yksi I2C -artikkeli. Qwiic Connect System ja Zio -oheislaitteet ovat ehdottomasti I²C -pelinvaihtajia!

Johdanto

Jos rakennat sähköisiä projekteja ja teet mahtavia asioita, olet ehkä huomannut, että kun projektisi kasvavat, leipälauta alkaa näyttää käärmekaivolta (vähän sotkuinen?).

Lisäksi, jos sinulla on käynnissä useita projekteja, vietät paljon aikaa johtojen vaihtamiseen projektista toiseen.

Olemme tekijöitä, joten ymmärrämme taistelun. Viimeisin panoksemme työterveys- ja työturvallisuusyhteisöön on modulaarinen prototyyppijärjestelmä ZIO, joka ottaa käyttöön Qwiic -yhteysjärjestelmän. Qwiic on erittäin kätevä tapa kommunikoida ohjelmoitava piirilevy antureille, toimilaitteille ja katkaisulevyille I²C: n kautta.

Vaihe 1: Mikä on I²C ja miksi pidämme siitä

Mikä on I²C ja miksi pidämme siitä
Mikä on I²C ja miksi pidämme siitä

I²C on laajimmin käytetty multi-master-väylä, joten samaan väylään voidaan liittää erilaisia siruja. Sitä käytetään monissa sovelluksissa isännän ja orjan tai useiden isäntä- ja orjalaitteiden välillä. Mikro -ohjaimista älypuhelimiin teollisiin sovelluksiin, erityisesti videolaitteille, kuten tietokoneiden näytöille. Se voidaan helposti toteuttaa monissa elektronisissa malleissa (ja viime aikoina jopa helpompaa Qwiic -liittimen avulla).

Jos meidän pitäisi kuvata I²C kahdella sanalla, käyttäisimme todennäköisesti yksinkertaisuutta ja joustavuutta.

Yksi I²C: n suurimmista eduista muihin tiedonsiirtoprotokolliin verrattuna on, että se on kaksijohtiminen liitäntä, mikä tarkoittaa, että se tarvitsee vain kaksi signaalijohtoa, SDA (Serial Data Line) ja SCL (Serial Clock Line). Se ei ehkä ole nopein protokolla, mutta sen tiedetään olevan erittäin joustava, mikä mahdollistaa joustavuuden väyläjännitteessä.

Toinen merkittävä ominaisuus, joka tekee tästä bussista houkuttelevan, on isännän ja orjan välinen yhteys. Useita laitteita voidaan kytkeä samaan väylään, eikä johdotusta tarvitse vaihtaa laitteiden välillä, koska jokaisella laitteella on yksilöllinen osoite (päällikkö valitsee viestintälaitteen).

Vaihe 2: Katsotaanpa tarkemmin

Katsotaanpa lähemmin
Katsotaanpa lähemmin
Katsotaanpa lähemmin
Katsotaanpa lähemmin
Katsotaanpa lähemmin
Katsotaanpa lähemmin
Katsotaanpa lähemmin
Katsotaanpa lähemmin

Joten miten I²C toimii? Aiemmin mainitsimme, että yksi merkittävimmistä ominaisuuksista on jännitevaraus, mikä on mahdollista, koska I²C käyttää avointa kollektoria (tunnetaan myös nimellä avoin tyhjennys) sekä SDA- että SCL -tietoliikennelinjoille.

SCL on kellosignaali, joka synkronoi tiedonsiirron I²C -väylän laitteiden välillä ja isäntä luo sen. Vaikka SDA kuljettaa tietoja lähetettäväksi tai vastaanotettavaksi väylään kytketyistä antureista tai muista laitteista.

Signaalin lähtö on kytketty maahan, mikä tarkoittaa, että jokainen laite on asetettu alhaiseksi. Signaalin palauttamiseksi korkealle molemmat johdot kytketään positiiviseen syöttöjännitteeseen päätevastuksen kautta.

ZIO -moduulien ansiosta kaikki katkaisulaudamme sisältävät tarvittavan vetovastuksen.

I²C noudattaa sanomaprotokollaa kommunikoidakseen isännän kanssa orjalaitteiden kanssa. Kaksi riviä (SCL ja SDA) ovat yhteisiä kaikissa I²C -orjissa, kaikki väylän orjat kuuntelevat viestin.

Viestiprotokolla noudattaa liitteenä olevan kuvan mukaista muotoa:

Se voi näyttää ensi silmäyksellä monimutkaiselta, mutta meillä on vähän hyviä uutisia. Arduino IDE: tä käytettäessä on kirjasto Wire.h, joka yksinkertaistaa kaikkia I²C -sanomaprotokollan asetuksia.

Aloitustila luodaan, kun datalinja (SDA) laskee matalalle, kun kellolinja (SCL) on edelleen korkea. Kun asetamme projektin Arduino -käyttöliittymään, meidän ei tarvitse huolehtia käynnistysolosuhteiden luomisesta, se käynnistetään tietyllä toiminnolla (Wire.beginTransmission (slaveAddress)).

Lisäksi tämä toiminto käynnistää lähetyksen tietyllä orjaosoitteella. Jos haluat valita orjan kommunikoimaan jaetulla väylällä, isäntä jatkaa osoitteen välittämistä orjalle kommunikoidakseen. Kun osoite on asetettu kommunikoimaan vastaavan orjan kanssa, viesti seuraa joko luku- tai kirjoitusbitillä valitusta tilasta riippuen.

Salve antaa vastauksen kuittauksella (ACK tai NACK), ja muut väylän orjalaitteet alentavat loput tiedot, kunnes viesti on valmis ja väylä on vapaa. ACK: n jälkeen orjien sisäisen osoiterekisterin sarja jatkaa lähetystä.

Kun tiedot lähetetään, siirtoviesti päättyy pysäytystilaan. Lähetyksen lopettamiseksi datalinja muuttuu korkeaksi ja kellolinja pysyy korkeana.

Vaihe 3: I²C ja ZIO

I²C ja ZIO
I²C ja ZIO

Päätimme, että minun on parasta suunnitella kaikki yllä olevat tiedot isännän (alias Zuino, meidän mikro) ja orjien (eli ZIO -katkaisulaudat) välisessä keskustelussa.

Tässä perusesimerkissä käytämme ZIO TOF -etäisyysanturia ja ZIO OLED -näyttöä. TOF antaa etäisyystiedot, kun taas ZIO Oled näyttää tiedot. Käytetyt komponentit ja laitteet:

  • ZUINO M UNO - mestari
  • ZIO OLED -näyttö - Slave_01
  • ZIO TOF -etäisyysanturi - orja_02
  • Qwiic -kaapeli - Helppo liittää I²C -laitteisiin

Näin helppoa on liittää levyt toisiinsa Qwiicin avulla, ei tarvitse leipälevyä, lisäkaapeleita tai ZUINO -nastoja. ZUINOn sarjakello ja tietolinja yhdistetään automaattisesti etäisyysanturiin ja OLED -laitteeseen Qwiic -liittimen avulla. Kaksi muuta kaapelia ovat 3V3 ja GND.

Katsotaanpa ensin tarvittavia tietoja kommunikoidakseen isännän kanssa orjien kanssa, jotka meidän pitäisi tietää ainutlaatuisista osoitteista.

Laite: ZIO -etäisyysanturi

  • Osanumero: RFD77402
  • I2C -osoite: 0x4C
  • Tietolomakkeen linkki

Laite: ZIO OLED -näyttö

  • Osanumero: SSD1306
  • Osoite: 0x3C
  • Tietolomakkeen linkki

Löydät orjalaitteiden yksilöllisen osoitteen avaamalla mukana toimitetun lomakkeen. Etäisyysanturin osoite annetaan moduuliliitännän osassa. Jokaisella anturilla tai komponentilla on erilainen taulukko, jossa on erilaisia tietoja. Joskus voi olla haastavaa löytää se 30 sivun tietolomakkeelta (vihje: avaa hakutyökalu PDF -katseluohjelmassa ja kirjoita "osoite" tai "laitetunnus" pikahakua varten).

Nyt kun jokaisen laitteen yksilöllinen osoite on tiedossa, tietojen lukemiseksi/ kirjoittamiseksi sisäisen rekisterin osoite on tunnistettava (myös taulukosta). Kun katsot ZIO -etäisyysanturin tietolomaketta, osoite, jolla etäisyys saadaan, vastaa 0x7FF.

Tässä tapauksessa emme todellakaan tarvitse näitä tietoja anturin käyttöön, kuten kirjasto jo tekee.

Seuraava vaihe, käske koodi. ZUINO M UNO on yhteensopiva Arduino IDE: n kanssa, mikä helpottaa asennusta. Tässä projektissa tarvittavat kirjastot ovat seuraavat:

  • Johto. H
  • Adafruit_GFX.h
  • Adafruit_SSD1306.h
  • SparkFun_RFD77402_Arduino_Library.h

Wire.h on arduino -kirjasto, kahta Adafruit -kirjastoa käytetään OLED -näyttöä varten ja viimeistä käytetään etäisyysanturiin. Tarkista tämä opetusohjelma *.zip -kirjastojen linkittämisestä Arduino IDE: hen.

Koodia tarkasteltaessa on ensin ilmoitettava kirjastot sekä OLED -osoite.

Asetuksissa () siirto alkaa ja teksti etäisyysanturin toiminnasta näytetään.

Silmukka () mittaa etäisyyden ja OLED tulostaa sen.

Tarkista esimerkkilähdekoodi github -linkistä.

Molempien katkaisulautojen käyttö on melko helppoa kaikin tavoin. Laitteistopuolella Qwiic -liitin tekee laitteiston asennuksesta nopeampaa ja paljon vähemmän sotkuista kuin leipälevyn ja hyppyjohtimien käyttö. Ja laiteohjelmiston osalta, käyttämällä vastaavia kirjastoja I2C -tiedonsiirtoon, anturi ja näyttö tekevät koodista paljon yksinkertaisemman.

Vaihe 4: Mikä on kaapelin enimmäispituus?

Suurin pituus riippuu SDA: lle ja SCL: lle käytetyistä vetovastauksista ja kaapelin kapasitanssista. Vastukset määrittävät myös väylän nopeuden, mitä pienempi väylän nopeus, sitä pidempi kaapeliraja. Kaapelin kapasitanssi rajoittaa väylän laitteiden määrää ja kaapelin pituutta. Tyypilliset sovellukset rajoittavat johdon pituuden 2,5-3,5 metriin (9-12 jalkaa), mutta vaihtelee käytetyn kaapelin mukaan. Vertailun vuoksi enimmäispituus I2C -sovelluksissa, joissa käytetään suojattuja 22 AWG -kierrettyjä parikaapeleita, on noin 1 m (3 jalkaa) 100 kbaundilla ja 10 m (30 jalkaa) 10 kbaud: lla.

Joillakin sivustoilla, kuten mogami tai WolframAlpha, voit arvioida kaapelin pituuden.

Vaihe 5: Kuinka yhdistää useita laitteita samaan väylään?

Kuinka yhdistää useita laitteita samaan väylään?
Kuinka yhdistää useita laitteita samaan väylään?
Kuinka yhdistää useita laitteita samaan väylään?
Kuinka yhdistää useita laitteita samaan väylään?

I2C on sarjaväylä, jossa kaikki laitteet on kytketty jaettuun väylään. Qwiic -liittimellä eri katkaisulaudat voidaan kytkeä peräkkäin Qwiic -liittimen avulla. Jokaisessa kortissa on vähintään 2 Qwiic -liitintä.

Olemme luoneet erilaisia levyjä ratkaisemaan joitakin Qwiic- ja I2C -rajoituksia. Zio Qwiic -sovitinkorttia käytetään yhdistämään Qwiic -laitteiden kautta ilman Qwiic -liitintä. Tämä yksinkertainen temppu luo rajattomat mahdollisuudet.

Yhdistämällä eri laitteet väylä- tai puuverkkoon keksimme Zio Qwiic Hubin.

Viimeisenä mutta ei vähäisimpänä, Zio Qwiic MUX mahdollistaa kahden tai useamman laitteen yhdistämisen samalla osoitteella.

Vaihe 6: Mikä on I2C -pääte?

I2C on lopetettava, joten linja voi vapaasti lisätä muita laitteita. Tämä voi olla hieman hämmentävää, koska päättämistermiä käytetään yleisesti kuvaamaan väylän vetovastuksia (oletustilan aikaansaamiseksi, tässä tapauksessa virran syöttämiseksi piiriin). Zuino -levyissä vastuksen arvo on 4,7 kΩ.

Jos pääte jätetään pois, väylällä ei ole lainkaan tiedonsiirtoa- isäntä ei pysty generoimaan käynnistysolosuhteita, joten viestiä ei lähetetä orjille.

Lisätietoja ja Zio -ominaisuudet löydät uusimmista Zio -tuotteista. Tämän artikkelin tavoitteena on selittää I²C -tiedonsiirron perusteet ja sen toiminta Zio- ja Qwiic -liittimien kanssa. Pysy kuulolla, niin saat lisää päivityksiä.

Suositeltava: