Sisukord:
- Samm: mis on I²C ja miks see meile meeldib
- Samm: vaatame lähemalt
- 3. samm: I²C ja ZIO
- Samm: milline on kaabli maksimaalne pikkus?
- Samm: kuidas ühendada mitu seadet sama bussiga?
- Samm: mis on I2C lõpetamine?
Video: Tutvustame I2C koos Zio moodulite ja Qwiiciga: 6 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:48
Robin Sharma ütles: "Väikesed igapäevased parandused aja jooksul toovad kaasa hämmastavaid tulemusi." Võib -olla mõtlete: "Oh, veel üks I2C postitus?". I2C kohta on kindlasti tuhandeid andmeid. Kuid olge lainel, see pole lihtsalt järjekordne I2C artikkel. Qwiic Connect System ja Zio välisseadmed on kindlasti I²C mängumuutjad!
Sissejuhatus
Kui ehitate elektroonilisi projekte ja teete ägedaid asju, oleksite võinud aru saada, et kui teie projektid suurenevad, hakkab teie leivaplaat välja nägema nagu maduauk (natuke segane, eks?).
Lisaks, kui teil on käsil mitu projekti, kulutate palju aega projektide vahel juhtmete vahetamiseks.
Oleme tegijad, seega mõistame võitlust. Meie viimane panus töötervishoiu ja tööohutuse kogukonda on modulaarne prototüüpimissüsteem nimega ZIO, mis võtab kasutusele Qwiic ühendussüsteemi. Qwiic on väga mugav viis edastada programmeeritav trükkplaat anduritele, täiturmehhanismidele ja kaitselülititele I²C kaudu.
Samm: mis on I²C ja miks see meile meeldib
I²C on kõige laialdasemalt kasutatav multimeisterbuss, mis tähendab, et samale siinile saab ühendada erinevaid kiipe. Seda kasutatakse paljudes rakendustes ülem- ja alamseadme või mitme ülem- ja alamseadme vahel. Alates mikrokontrolleritest, nutitelefonidest kuni tööstusrakendusteni, eriti videoseadmete, näiteks arvutimonitoride jaoks. Seda saab hõlpsasti rakendada paljudes elektroonilistes konstruktsioonides (ja hiljuti veelgi lihtsamaks Qwiic -pistiku abil).
Kui peaksime I²C -d kirjeldama kahe sõnaga, kasutaksime ilmselt lihtsust ja paindlikkust.
Üks I²C suurimaid eeliseid teiste kommunikatsiooniprotokollide ees on see, et see on kahejuhtmeline liides, mis tähendab, et see vajab ainult kahte signaalijuhet, SDA (Serial Data Line) ja SCL (Serial Clock Line). See ei pruugi olla kiireim protokoll, kuid see on hästi tuntud kui väga paindlik, võimaldades siinipinge paindlikkust.
Teine oluline omadus, mis muudab selle bussi atraktiivseks, on osadus peremehe ja orja vahel. Sama bussiga saab ühendada mitu seadet ja seadmete vahelist juhtmestikku pole vaja muuta, kuna igal seadmel on kordumatu aadress (kapten valib suhtlemiseks seadme).
Samm: vaatame lähemalt
Niisiis, kuidas I²C töötab? Varem mainisime, et üks olulisemaid omadusi on pingevaru, see on võimalik, kuna I²C kasutab avatud kollektorit (tuntud ka kui avatud äravool) nii SDA- kui ka SCL -sideühenduste jaoks.
SCL on kella signaal, sünkroonib andmeedastust I²C siinil olevate seadmete vahel ja selle genereerib kapten. Kuigi SDA kannab andmeid anduritele või muudele siiniga ühendatud seadmetele saatmiseks või vastuvõtmiseks.
Signaali väljund on ühendatud maapinnaga, mis tähendab, et iga seade on määratud madalaks. Signaali kõrgeks taastamiseks ühendatakse mõlemad liinid lõpetatava tõmbetakisti kaudu positiivse toitepingega.
Tänu ZIO moodulitele oleme teid katnud, kõik meie purunemisplaadid sisaldavad vajalikku tõmbe takistit.
I²C järgib sõnumiprotokolli, et suhelda masteriga alamseadmetega. Kaks rida (SCL ja SDA) on ühised kõikidel I²C alamatel, kõik bussis olevad orjad kuulavad sõnumit.
Sõnumiprotokoll järgib lisatud pildil näidatud vormingut:
Esmapilgul võib see tunduda keeruline, kuid meil on natuke häid uudiseid. Arduino IDE kasutamisel on raamatukogu Wire.h, et lihtsustada I²C sõnumiprotokolli seadistamist.
Starditingimus luuakse, kui andmeside (SDA) langeb madalale, samal ajal kui kellaliin (SCL) on endiselt kõrge. Projekti seadistamisel Arduino liidesel ei pea me tegelikult muretsema käivitustingimuse genereerimise pärast, see käivitatakse konkreetse funktsiooniga (Wire.beginTransmission (slaveAddress)).
Lisaks käivitab see funktsioon ka edastamise konkreetse alam -aadressiga. Jagatud bussis suhtlemiseks orja valimiseks jätkab kapten aadressi edastamiseks orjale. Kui aadress on seatud suhtlema vastava orjaga, järgneb teade kas lugemis- või kirjutusbittiga, sõltuvalt valitud režiimist.
Salv annab vastuse kinnitusega (ACK või NACK) ja teised bussis olevad alamseadmed soodustavad ülejäänud andmeid, kuni teade on täielik ja buss on vaba. Pärast ACK -d jätkab saatmist orjade sisemise aadressiregistri jada.
Andmete saatmisel lõpeb ülekandesõnum stopp -tingimusega. Edastamise lõpetamiseks muutub andmeliin kõrgeks ja kellajoon jääb kõrgeks.
3. samm: I²C ja ZIO
Me arvasime, et mul oleks kõige parem koostada kogu ülaltoodud teave peremehe (teise nimega Zuino, meie mikro) ja orjade (teise nimega ZIO läbilöögiplaadid) vahel.
Selles põhinäites kasutame ZIO TOF kaugusandurit ja ZIO OLED -ekraani. TOF annab kaugusteabe, samal ajal kui ZIO Oled kuvab andmed. Kasutatud komponendid ja seadmed:
- ZUINO M UNO - Meister
- ZIO OLED -ekraan - Slave_01
- ZIO TOF kaugusandur - ori_02
- Qwiic -kaabel - lihtne ühendamine I²C seadmete jaoks
Siit saate teada, kui lihtne on plaate üksteisega Qwiici abil ühendada, leivaplaati pole vaja, täiendavad kaablid või ZUINO tihvtid. ZUINO jadakella ja andmeside liin ühendatakse Qwiic -pistiku abil automaatselt kaugusanduri ja OLED -iga. Kaks muud kaablit on 3V3 ja GND.
Kõigepealt vaatame vajalikku teavet, et suhelda peremehega alamatega, mida meil on vaja unikaalsete aadresside teadmiseks.
Seade: ZIO kaugusandur
- Osa number: RFD77402
- I2C aadress: 0x4C
- Andmelehe link
Seade: ZIO OLED ekraan
- Osa number: SSD1306
- Aadress: 0x3C
- Andmelehe link
Alamseadmete kordumatu aadressi leidmiseks avage kaasasolev andmeleht. Kaugusanduri aadress on esitatud mooduli liidese jaotises. Igal anduril või komponendil on erinev andmeleht, mis sisaldab erinevat teavet. Mõnikord võib selle leidmine 30 -leheküljeliselt andmelehelt olla keeruline (vihje: avage PDF -vaatajas otsingutööriist ja tippige kiireks otsimiseks „aadress” või „seadme ID”).
Nüüd, kui iga seadme kordumatu aadress on teada, tuleb andmete lugemiseks/ kirjutamiseks tuvastada sisemine registriaadress (ka andmelehelt). Vaadates ZIO kaugusanduri andmelehte, vastab kauguse saamiseks aadress 0x7FF.
Sel konkreetsel juhul me tõesti ei vaja seda teavet anduri kasutamiseks, nagu raamatukogu seda juba teeb.
Järgmine samm, andke kood kätte. ZUINO M UNO ühildub Arduino IDE -ga, mis muudab seadistamise palju lihtsamaks. Selle projekti jaoks vajalikud raamatukogud on järgmised:
- Traat.h
- Adafruit_GFX.h
- Adafruit_SSD1306.h
- SparkFun_RFD77402_Arduino_Library.h
Wire.h on arduino raamatukogu, kahte Adafruit raamatukogu kasutatakse OLED -i jaoks ja viimast kasutatakse kaugussensori jaoks. Vaadake seda õpetust, kuidas siduda *.zip raamatukogud Arduino IDE -ga.
Koodi vaadates tuleb esmalt deklareerida raamatukogud ja OLED -i aadress.
Seadistuses () algab edastamine ja kuvatakse tekst kaugusanduri funktsionaalsuse kohta.
Silmus () mõõdab kaugust ja OLED prindib selle.
Kontrollige lähtekoodi näidet githubi lingilt.
Mõlema purunemisplaadi kasutamine on igas mõttes üsna lihtne. Riistvara poolel muudab Qwiic -pistik riistvara seadistamise kiiremaks ja palju vähem segaseks kui leivaplaadi ja hüppajajuhtmete olemasolu. Püsivara puhul muudavad koodi palju lihtsamaks, kasutades I2C -side jaoks vastavaid teeke, andurit ja ekraani.
Samm: milline on kaabli maksimaalne pikkus?
Maksimaalne pikkus sõltub SDA ja SCL jaoks kasutatavatest tõmbetakistitest ja kaabli mahtuvusest. Takistid määravad ka bussi kiiruse, mida madalam on bussi kiirus, seda pikem on kaabli piir. Kaabli mahtuvus piirab siinil olevate seadmete arvu ja kaabli pikkust. Tüüpilised rakendused piiravad traadi pikkust 2,5-3,5 m-ni (9-12 jalga), kuid sõltuvalt kasutatavast kaablist võib see varieeruda. Võrdluseks: maksimaalne pikkus I2C rakendustes, kasutades varjestatud 22 AWG keerdpaarkaableid, on umbes 1 m (3 jalga) 100 kbaundi juures, 10 m (30 jalga) 10 kbaud juures.
Mõned saidid, nagu mogami või WolframAlpha, võimaldavad hinnata kaabli pikkust.
Samm: kuidas ühendada mitu seadet sama bussiga?
I2C on jadasiin, kus kõik seadmed on ühendatud jagatud siiniga. Qwiic -pistiku abil saab erinevaid katkestusplaate Qwiic -pistiku abil üksteise järel ühendada. Igal plaadil on vähemalt 2 Qwiic -pistikut.
Mõne Qwiici ja I2C piirangu lahendamiseks lõime erinevad tahvlid. Zio Qwiic adapterplaati kasutatakse Qwiic -seadmete ühendamiseks ilma Qwiic -pistikuta, kasutades Qwiic -i leivaplaadi isase kaabliga. See lihtne trikk loob piiramatud võimalused.
Erinevate seadmete ühendamiseks bussi- või puuvõrku pakkusime välja Zio Qwiic Hub.
Lõpuks võimaldab Zio Qwiic MUX ühendada kahe või enama seadmega sama aadressi.
Samm: mis on I2C lõpetamine?
I2C on vaja lõpetada, nii et liinil on vabadus teiste seadmete lisamiseks. See võib olla pisut segane, kuna lõpetamisterminit kasutatakse tavaliselt siinitõmbe takistite kirjeldamiseks (vaikeseisundi andmiseks, antud juhul vooluahela varustamiseks). Zuino plaatide puhul on takisti väärtus 4,7 kΩ.
Kui lõpetamine vahele jäetakse, ei toimu siinil üldse sidepidamist- kapten ei saaks käivitustingimust genereerida, nii et sõnumit ei edastata orjadele.
Lisateavet ja Zio võimalusi vaadake Zio uusimatest toodetest. Selle artikli eesmärk on selgitada I²C kommunikatsiooni põhitõdesid ja seda, kuidas see Zio ja Qwiic -pistikuga töötab. Oodake rohkem värskendusi.
Soovitan:
Äärmiselt lihtne viis koduautomaatikaga alustamiseks DIY -moodulite abil: 6 sammu
Äärmiselt lihtne viis koduautomaatikaga alustamiseks DIY -moodulite abil: olin meeldivalt üllatunud, kui otsustasin proovida koduabilisele lisada mõned DIY -andurid. ESPHome'i kasutamine on äärmiselt lihtne ja selles postituses õpime, kuidas juhtida GPIO -nööpi ja saada ka temperatuuri & niiskusandmed traadita ühenduse kaudu
Vanemate Noritake Itron VFD moodulite kasutamine: 7 sammu
Vanemate Noritake Itron VFD moodulite kasutamine: aeg-ajalt satute ebayst huvitavatele osadele, sõpradelt või lihtsalt kasutatud kauplustes ringi. Üks näide sellest oli tohutu Noritake Itron 40 x 2 tähemärgiga vaakum-fluorestseeriv ekraan aastast 1994 (või varem), mis anti edasi
Tutvustame LoRa ™!: 19 sammu
Tutvustame LoRa! kaubamärgi (™) autor Semtech - pikaajaline (1960) USA rahvusvaheline valitud
Tutvustame "Deodorino" - infrapuna kontrollitud Arduino tühjas deodorandipulgas. Klõpsake 1. fotol: 7 sammu
Tutvustame "Deodorino" - infrapuna kontrollitud Arduino tühjas deodorandipulgas. Klõpsake 1. fotol: nüüd üksikasjadeni
Krüpteerige oma isikuandmed .. Tutvustame Truecrypt !: 8 sammu
Krüpteerige oma isikuandmed .. Tutvustame Truecryptit !: Noh, teil võib tekkida küsimus, mis kurat on Truecrypt? Noh, Truecrypt on programm, mis võimaldab teil krüptida palju andmeid ja seda on ülilihtne teha. Nii et järgige. Krüpteerimismeetodite hulka kuuluvad AES-256, Serpent ja Twofish (kombinatsioon