Mündəricat:

Zio Modulları və Qwiic ilə I2C: 6 Addım
Zio Modulları və Qwiic ilə I2C: 6 Addım

Video: Zio Modulları və Qwiic ilə I2C: 6 Addım

Video: Zio Modulları və Qwiic ilə I2C: 6 Addım
Video: Output DC or AC Voltage using MCP4725 DAC with LCD and PWM to Voltage Converter with Arduino 2024, Iyul
Anonim
Zio Modulları və Qwiic ilə I2C -ni təqdim edirik
Zio Modulları və Qwiic ilə I2C -ni təqdim edirik

Robin Sharma: "Zamanla kiçik gündəlik inkişaflar heyrətamiz nəticələrə gətirib çıxarır" dedi. "Ah, başqa bir I2C yazısı?" Deyə düşünə bilərsiniz. I2C -yə gəldikdə, əlbəttə ki, minlərlə məlumat var. Ancaq bizi izləməyə davam edin, bu başqa bir I2C məqaləsi deyil. Qwiic Connect System və Zio periferik qırılma lövhələri mütləq I²C oyun dəyişdiriciləridir!

Giriş

Elektron layihələr qurursanız və zəhmli işlər görürsünüzsə, başa düşmüş ola bilərsiniz ki, layihələriniz böyüdükcə çörək taxtanız ilan çuxuruna bənzəyir (bir az qarışıqdır?).

Əlavə olaraq, birdən çox layihəniz davam edirsə, bir çox vaxtınızı layihədən layihəyə keçirirsiniz.

Biz yaradıcıyıq, ona görə də mübarizəni başa düşürük. İSG cəmiyyətinə ən son qatqımız, Qwiic birləşdirmə sistemini mənimsəyən ZIO adlı modul bir prototipləşdirmə sistemidir. Qwiic, proqramlaşdırıla bilən bir elektron lövhəni sensorlar, aktuatorlar və qırılma lövhələrinə I²C vasitəsilə çatdırmaq üçün çox əlverişli bir yoldur.

Addım 1: I²C nədir və niyə bəyənirik

I²C nədir və niyə bəyənirik
I²C nədir və niyə bəyənirik

I²C, ən çox istifadə olunan çox masterli avtobusdur, yəni eyni avtobusa müxtəlif çiplər qoşula bilər. Bir usta ilə nökər və ya birdən çox master və qul cihazı arasında bir çox tətbiqdə istifadə olunur. Xüsusilə kompüter monitorları kimi video qurğular üçün mikrokontrolörlərdən ağıllı telefonlara, sənaye tətbiqlərinə qədər. Bir çox elektron dizaynda asanlıqla tətbiq oluna bilər (və bu yaxınlarda Qwiic konnektoru ilə daha da asanlaşdı).

I²C -ni iki sözlə təsvir etməli olsaydıq, yəqin ki, sadəlik və rahatlıqdan istifadə edərdik.

I²C -nin digər ünsiyyət protokollarından ən böyük üstünlüklərindən biri, iki telli bir interfeys olmasıdır ki, bunun üçün yalnız iki siqnal telinə ehtiyac var, SDA (Serial Data Line) və SCL (Serial Clock Line). Ən sürətli protokol olmaya bilər, ancaq avtobus gərginliyində elastikliyə imkan verən çox çevik olması ilə məşhurdur.

Bu avtobusu cazibədar edən digər əhəmiyyətli xüsusiyyət, ağa ilə qul arasındakı ünsiyyətdir. Eyni avtobusa birdən çox cihaz qoşula bilər və hər cihazın özünəməxsus ünvanı olduğu üçün cihazlar arasındakı naqilləri dəyişdirməyə ehtiyac yoxdur (usta ünsiyyət qurmaq üçün cihazı seçir).

Addım 2: Daha yaxından nəzər salaq

Daha yaxından baxaq
Daha yaxından baxaq
Daha yaxından baxaq
Daha yaxından baxaq
Daha yaxından baxaq
Daha yaxından baxaq
Daha yaxından baxaq
Daha yaxından baxaq

Beləliklə, I²C necə işləyir? Daha əvvəl qeyd etdik ki, ən əhəmiyyətli xüsusiyyətlərdən biri gərginlik payıdır, çünki I²C həm SDA, həm də SCL rabitə xətləri üçün açıq kollektor (açıq drenaj olaraq da bilinir) istifadə edir.

SCL, saat siqnalıdır, I²C avtobusundakı cihazlar arasında məlumat ötürülməsini senkronize edir və master tərəfindən yaradılır. SDA, məlumatları avtobusa bağlı olan sensorlardan və ya digər cihazlardan göndərmək və ya almaq üçün daşıyır.

Siqnalın çıxışı yerə bağlıdır, yəni hər bir cihaz aşağıya endirilir. Siqnalın yüksək səviyyəyə qalxması üçün hər iki xətt pozulacaq müqavimət vasitəsi ilə pozitiv təchizat gərginliyinə qoşulur.

Sizi əhatə etdiyimiz ZIO modulları ilə bütün qırılma lövhələrimiz lazım olan çəkmə müqavimətini özündə birləşdirir.

I²C, master cihazını qul cihazları ilə əlaqələndirmək üçün bir mesaj protokolunu izləyir. İki xətt (SCL və SDA) bütün I²C qullarında ortaqdır, avtobusdakı bütün qullar mesajı dinləyir.

Mesaj protokolu əlavə şəkildəki formatı izləyir:

İlk baxışdan mürəkkəb görünə bilər, amma yaxşı xəbərimiz var. Arduino IDE istifadə edərkən, I²C mesaj protokolu üçün bütün quruluşu asanlaşdırmaq üçün Wire.h kitabxanası var.

Başlanğıc vəziyyəti, məlumat xətti (SDA) aşağı düşəndə, saat xətti (SCL) hələ də yüksək olduqda yaranır. Arduino interfeysində bir layihə qurarkən, başlanğıc şərtini yaratmaqdan narahat olmağımıza ehtiyac yoxdur, müəyyən bir funksiya ilə başlayacaq (Wire.beginTransmission (slaveAddress)).

Əlavə olaraq, bu funksiya xüsusi qul ünvanı ilə ötürülməyə də başlayır. Ortaq avtobusda ünsiyyət quracaq kölə seçmək üçün usta ünsiyyət qurmaq üçün ünvanı qula ötürməyə davam edir. Ünvan müvafiq qulla ünsiyyət qurduqdan sonra, seçilmiş rejimdən asılı olaraq ya mesaj oxunur, ya da yazılır.

Salve bir təsdiqlə bir cavab verir (ACK və ya NACK) və avtobusdakı digər qul cihazları mesaj tamamlanana və avtobus pulsuz olana qədər qalan məlumatları endirim edir. ACK -dan sonra, qulların daxili ünvan qeydinin ardıcıllığı ötürülməyə davam edir.

Məlumat göndərildikdə, köçürmə mesajı dayandırma şərti ilə bitir. Göndərməni dayandırmaq üçün məlumat xətti yüksək səviyyəyə dəyişir və saat xətti yüksək olaraq qalır.

Addım 3: I²C və ZIO

I²C və ZIO
I²C və ZIO

Bir usta (a.k.a Zuino, bizim mikro) və qullar (a.k.a ZIO qırılma lövhələri) arasındakı bir söhbətdə yuxarıdakı bütün məlumatları ən yaxşı şəkildə hazırlayacağımı başa düşdük.

Bu əsas nümunədə ZIO TOF məsafə sensoru və ZIO OLED Ekranı istifadə edirik. TOO məsafə haqqında məlumat verir, ZIO Oled isə məlumatları göstərir. İstifadə olunan komponentlər və qurğular:

  • ZUINO M UNO - Ustad
  • ZIO OLED Ekranı - Slave_01
  • ZIO TOF Məsafə Sensoru - Slave_02
  • Qwiic Kabeli - I²C cihazları üçün asan əlaqə

Qwiic istifadə edərək lövhələri bir -birinə bağlamaq nə qədər asandır, çörək taxtasına ehtiyac yoxdur, əlavə kabellər və ya ZUINO pinləri. ZUINO -nun seriyalı Saat və Məlumat xətti Qwiic konnektoru istifadə edərək avtomatik olaraq Uzaqlıq sensoru və OLED -ə qoşulur. Digər iki kabel 3V3 və GND -dir.

Əvvəlcə, lazım olan məlumatlara nəzər salaq, unikal ünvanları bilməyimiz lazım olan qullarla usta ilə əlaqə quraq.

Cihaz: ZIO Məsafə Sensoru

  • Parça nömrəsi: RFD77402
  • I2C Ünvan: 0x4C
  • Məlumat cədvəli bağlantısı

Cihaz: ZIO OLED Ekranı

  • Parça nömrəsi: SSD1306
  • Ünvan: 0x3C
  • Məlumat cədvəli bağlantısı

Kölə cihazların unikal ünvanını tapmaq üçün verilən məlumat cədvəlini açın. Məsafə sensoru üçün ünvan Module Interface seksiyasında verilir. Hər bir sensor və ya komponentin fərqli məlumatları olan fərqli bir məlumat cədvəli var. Bəzən onu 30 səhifəlik məlumat cədvəlində tapmaq çətin ola bilər (işarə: PDF görüntüləyicisində tapma vasitəsini açın və sürətli bir axtarış üçün "ünvan" və ya "cihaz ID" yazın).

Məlumatların oxunması/ yazılması üçün hər bir cihazın unikal ünvanı məlum olduğu üçün, daxili reyestr ünvanı (həmçinin məlumat cədvəlindən) müəyyən edilməlidir. ZIO Məsafə sensoru məlumat cədvəlinə baxaraq məsafəni əldə etmək üçün ünvan 0x7FF -ə uyğundur.

Bu vəziyyətdə, kitabxanada olduğu kimi sensorun istifadəsi üçün bu məlumatlara ehtiyacımız yoxdur.

Növbəti addım kodu əllərinizə verin. ZUINO M UNO, Arduino IDE ilə uyğundur, bu da quraşdırmanı çox asanlaşdırır. Bu layihə üçün lazım olan kitabxanalar aşağıdakılardır:

  • Tel.h
  • Adafruit_GFX.h
  • Adafruit_SSD1306.h
  • SparkFun_RFD77402_Arduino_Library.h

Wire.h bir arduino kitabxanasıdır, iki Adafruit kitabxanası OLED üçün, sonuncusu isə Məsafə sensoru üçün istifadə olunur. *. Zip kitabxanalarını Arduino IDE -yə necə bağlamaq barədə bu təlimatı yoxlayın.

Kodu nəzərdən keçirsək, əvvəlcə kitabxanaların və OLED ünvanlarının elan edilməsi lazımdır.

Quraşdırmada () ötürmə başlayır və məsafə sensoru funksiyası üçün mətn göstərilir.

Döngü () məsafəni ölçür və OLED onu çap edir.

Github linkindəki nümunə mənbə kodunu yoxlayın.

Hər iki qırılma lövhəsindən istifadə etmək bütün mənalarda olduqca asandır. Avadanlıq tərəfində Qwiic konnektoru, qurğunu çörək taxtası və tullanan tellərə nisbətən daha sürətli və daha az qarışıq edir. Və firmware üçün, I2C əlaqəsi üçün uyğun kitabxanalardan istifadə edərək, sensor və ekran kodu daha da asanlaşdırır.

Addım 4: Maksimum Kabel Uzunluğu Nədir?

Maksimum uzunluq SDA və SCL üçün istifadə olunan çəkmə rezistorlarından və kabel tutumundan asılıdır. Rezistorlar həmçinin avtobus sürətini təyin edir, avtobus sürəti nə qədər aşağı olarsa, kabel limiti o qədər uzun olar. Kabel tutumu, avtobusdakı cihazların sayını və kabel uzunluğunu məhdudlaşdırır. Tipik tətbiqlər telin uzunluğunu 2,5-3,5 m (9-12ft) ilə məhdudlaşdırır, lakin istifadə olunan kabeldən asılı olaraq dəyişikliklər mövcuddur. Məlumat üçün bildirək ki, ekranlanmış 22 AWG bükülü cüt kabel istifadə edən I2C tətbiqlərində maksimum uzunluq 100 kbaundda təxminən 1 m (10 ft), 10kbaudda 10 m (30ft) təşkil edir.

Kabel uzunluğunu təxmin etməyə imkan verən mogami və ya WolframAlpha kimi saytlar var.

Addım 5: Eyni Avtobusda Birdən çox cihazı necə bağlamaq olar?

Eyni avtobusda birdən çox cihazı necə bağlamaq olar?
Eyni avtobusda birdən çox cihazı necə bağlamaq olar?
Eyni avtobusda birdən çox cihazı necə bağlamaq olar?
Eyni avtobusda birdən çox cihazı necə bağlamaq olar?

I2C, bütün cihazların ortaq bir avtobusa qoşulduğu bir serial avtobusdur. Qwiic konnektoru ilə fərqli qırılma lövhələri Qwiic konnektoru ilə bir -birinin ardınca bağlana bilər. Hər bir lövhədə ən azı 2 Qwiic konnektoru var.

Qwiic və I2C məhdudiyyətlərini həll etmək üçün fərqli lövhələr yaratdıq. Zio Qwiic adapter lövhəsi, Qwiic konnektoru olmayan Qwiic cihazları vasitəsilə Qwiic istifadə edərək kişi başlıq kabelini taxmaq üçün istifadə olunur. Bu sadə hiylə məhdudiyyətsiz imkanlar yaradır.

Bir avtobusda və ya ağac şəbəkəsində fərqli cihazları birləşdirmək üçün Zio Qwiic Hub ilə tanış olduq.

Zio Qwiic MUX eyni ünvandan istifadə edərək iki və ya daha çox cihazın bağlanmasına imkan verir.

Addım 6: I2C Fasiləsi nədir?

I2C -nin dayandırılması tələb olunur, buna görə xətt digər cihazları əlavə etməkdə sərbəstdir. Bu bir az çaşqın ola bilər, çünki sonluq termini ümumiyyətlə avtobusun çəkilmə rezistorlarını təsvir etmək üçün istifadə olunur (standart vəziyyəti təmin etmək üçün, bu halda dövrə cərəyan vermək üçün). Zuino lövhələri üçün müqavimət dəyəri 4.7kΩ təşkil edir.

Xitam verilsə, avtobusda heç bir əlaqə olmayacaq- usta başlanğıc şərtini yarada bilməyəcək, buna görə mesaj qullara ötürülməyəcək.

Əlavə məlumat və Zio imkanları üçün ən son Zio məhsullarını yoxlayın. Bu yazıda məqsəd, I²C ünsiyyətinin əsaslarını və Zio və Qwiic konnektoru ilə necə işlədiyini izah etməkdir. Daha çox yeniləmə üçün bizi izləyin.

Tövsiyə: