Mundarija:
- 1 -qadam: I²C nima va bizga nima uchun yoqadi
- 2 -qadam: Keling, yaqinroq ko'rib chiqaylik
- 3 -qadam: I²C va ZIO
- 4 -qadam: Maksimal kabel uzunligi qancha?
- 5 -qadam: Bir xil avtobusda bir nechta qurilmalarni qanday ulash mumkin?
- 6 -qadam: I2C tugashi nima?
Video: Zio modullari va Qwiic bilan I2C -ni tanishtirish: 6 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:26
Robin Sharma: "Vaqt o'tishi bilan kundalik kichik yaxshilanishlar ajoyib natijalarga olib keladi", dedi. Siz o'ylayotgandirsiz: "Voy, boshqa I2C postimi?". Albatta, I2C haqida gap ketganda, minglab ma'lumotlar mavjud. Lekin kuzatib turing, bu faqat I2C haqidagi boshqa maqola emas. Qwiic Connect System va Zio periferik taxtalari, albatta, I²C o'yinlarini o'zgartiradi!
Kirish
Agar siz elektron loyihalar qurayotgan bo'lsangiz va ajoyib ishlarni qilayotgan bo'lsangiz, sizning loyihalaringiz kattalashgan sari, sizning non taxtangiz ilon qudug'iga o'xshab ketishini tushungan bo'lishingiz mumkin (to'g'rimi?).
Bundan tashqari, agar sizda bir nechta loyihalar bo'lsa, siz simlarni loyihadan loyihaga almashtirishga ko'p vaqt sarflaysiz.
Biz ishlab chiqaruvchilarmiz, shuning uchun biz kurashni tushunamiz. Bizning OHS hamjamiyatiga qo'shgan eng so'nggi hissamiz - Qwiic ulanish tizimini qabul qilgan ZIO deb nomlangan modulli prototiplash tizimi. Qwiic - bu programlanadigan elektron kartani sensorlar, aktuatorlar va uzatish platalariga I²C orqali etkazishning juda qulay usuli.
1 -qadam: I²C nima va bizga nima uchun yoqadi
I²C-bu eng ko'p ishlatiladigan ko'p masterli avtobus, ya'ni bitta chipga turli chiplarni ulash mumkin. U ko'plab dasturlarda master va slave yoki bir nechta master va slave qurilmalari o'rtasida qo'llaniladi. Mikrokontrollerlardan smartfonlarga, sanoat dasturlariga, ayniqsa kompyuter monitorlari kabi video qurilmalar uchun. U ko'plab elektron dizaynlarda osonlik bilan amalga oshirilishi mumkin (va yaqinda Qwiic ulagichi bilan ham osonroq).
Agar biz I²C ni ikki so'z bilan ta'riflashimiz kerak bo'lsa, ehtimol biz oddiylik va moslashuvchanlikdan foydalangan bo'lardik.
I²C -ning boshqa aloqa protokollaridan eng katta afzalliklaridan biri shundaki, u ikkita simli interfeys bo'lib, unga faqat ikkita signal simlari kerak bo'ladi, SDA (Serial Data Line) va SCL (Serial Clock Line). Bu eng tezkor protokol bo'lmasligi mumkin, lekin u avtobus voltajining moslashuvchanligini ta'minlaydigan juda moslashuvchanligi bilan mashhur.
Bu avtobusni jozibador qiladigan yana bir muhim xususiyat - xo'jayin va qul o'rtasidagi do'stlik. Bir avtobusga bir nechta qurilmalar ulanishi mumkin va har bir qurilmaning o'ziga xos manzili bo'lgani uchun qurilmalar orasidagi simlarni o'zgartirishga hojat yo'q (usta aloqa uchun qurilmani tanlaydi).
2 -qadam: Keling, yaqinroq ko'rib chiqaylik
Xo'sh, I²C qanday ishlaydi? Yuqorida aytib o'tganimizdek, eng muhim xususiyatlardan biri bu kuchlanish o'lchovidir, chunki I²C SDA va SCL aloqa liniyalari uchun ochiq kollektorni (ochiq drenaj deb ham ataladi) ishlatadi.
SCL - bu soat signalidir, I²C avtobusidagi qurilmalar orasidagi ma'lumotlarni uzatishni sinxronlashtiradi va uni master yaratadi. SDA avtobusga ulangan sensorlardan yoki boshqa qurilmalardan ma'lumotlarni yuborish yoki qabul qilish uchun ma'lumotlarni olib yuradi.
Signalning chiqishi erga ulanadi, ya'ni har bir qurilma past darajada o'rnatiladi. Signalni yuqori darajaga qaytarish uchun ikkala chiziq ham to'xtatiladigan rezistor orqali musbat besleme kuchlanishiga ulanadi.
ZIO modullari yordamida biz sizni qamrab olgandik, bizning barcha taxtalarda kerakli tortish qarshiligi o'rnatilgan.
I²C xo'jayinni qul qurilmalari bilan bog'lash uchun xabar protokoliga amal qiladi. Ikki qator (SCL va SDA) I²C barcha qullarida uchraydi, avtobusdagi barcha qullar xabarni tinglaydilar.
Xabar protokoli ilova qilingan rasmda ko'rsatilgan formatga mos keladi:
Bu birinchi qarashda murakkab ko'rinishi mumkin, lekin bizda yaxshi yangilik bor. Arduino IDE -dan foydalanganda, I²C xabarlar protokoli uchun sozlashni soddalashtirish uchun Wire.h kutubxonasi mavjud.
Boshlanish sharti ma'lumotlar chizig'i (SDA) past bo'lganda, soat chizig'i (SCL) hali ham yuqori bo'lganda hosil bo'ladi. Arduino interfeysida loyihani o'rnatishda biz boshlang'ich shartini yaratish haqida tashvishlanishga hojat yo'q, u ma'lum bir funktsiyadan boshlanadi (Wire.beginTransmission (slaveAddress)).
Bundan tashqari, bu funktsiya ma'lum bir qul manzili bilan uzatishni ham boshlaydi. Umumiy avtobusda muloqot qiladigan qulni tanlash uchun xo'jayin muloqot qilish uchun qulga manzilni uzatishni davom ettiradi. Manzil mos keladigan qul bilan bog'lanish uchun o'rnatilgandan so'ng, tanlangan rejimga qarab, xabar o'qish yoki yozish biti bilan birga keladi.
Qutqaruv javob beradi (ACK yoki NACK) va avtobusdagi boshqa qul qurilmalar qolgan ma'lumotni xabar tugaguncha va avtobus bepul bo'lguncha chegirma qiladi. ACKdan so'ng, qullarning ichki manzilli registrining ketma -ketligi uzatishni davom ettiradi.
Ma'lumot yuborilganda, uzatish xabari to'xtash sharti bilan tugaydi. Uzatishni tugatish uchun ma'lumotlar chizig'i yuqori darajaga o'zgaradi va soat chizig'i yuqori bo'lib qoladi.
3 -qadam: I²C va ZIO
Biz xo'jayin (aka Zuino, bizning mikro) va qullar (ZIO taxtalari taxtasi) o'rtasidagi suhbatda yuqoridagi barcha ma'lumotlarni chizish yaxshiroq ekanini tushundik.
Ushbu asosiy misolda biz ZIO TOF masofa sensori va ZIO OLED displeyidan foydalanamiz. TOF masofa haqida ma'lumot beradi, ZIO Oled esa ma'lumotlarni ko'rsatadi. Amaldagi komponentlar va qurilmalar:
- ZUINO M UNO - usta
- ZIO OLED displeyi - Slave_01
- ZIO TOF masofa sensori - Slave_02
- Qwiic kabeli - I²C qurilmalari uchun oson ulanish
Qwiic yordamida taxtalarni bir -biriga ulash qanchalik oson, non taxtasi kerak emas, qo'shimcha simli yoki ZUINO pinlari. ZUINO -ning ketma -ket soat va ma'lumotlar liniyasi Qwiic ulagichi yordamida avtomatik ravishda masofa sensori va OLED -ga ulanadi. Boshqa ikkita kabel - 3V3 va GND.
Birinchidan, kerakli ma'lumotlarni ko'rib chiqaylik, xo'jayinni qullar bilan bog'lash uchun biz noyob manzillarni bilishimiz kerak.
Qurilma: ZIO masofa sensori
- Parcha raqami: RFD77402
- I2C manzili: 0x4C
- Ma'lumotlar jadvaliga havola
Qurilma: ZIO OLED displeyi
- Partiya raqami: SSD1306
- Manzil: 0x3C
- Ma'lumotlar jadvaliga havola
Qul qurilmalar uchun yagona manzilni topish uchun taqdim etilgan ma'lumotlar jadvalini oching. Masofa sensori uchun manzil Module Interface seksiyasida ko'rsatilgan. Har bir sensor yoki komponentda har xil ma'lumotlarga ega bo'lgan har xil ma'lumotlar jadvali mavjud. Ba'zan uni 30 sahifali ma'lumotlar varag'i orqali topish qiyin bo'lishi mumkin (maslahat: PDF ko'rish vositasida topish vositasini oching va tezkor qidirish uchun "manzil" yoki "qurilma identifikatori" ni kiriting).
Ma'lumotni o'qish/ yozish uchun har bir qurilma uchun yagona manzil ma'lum bo'lganidan so'ng, ichki registr manzili aniqlanishi kerak (shuningdek, ma'lumotlar jadvalidan). ZIO masofa sensori ma'lumotlar jadvaliga nazar tashlab, masofani olish uchun manzil 0x7FF ga to'g'ri keladi.
Bunday holda, kutubxonada bo'lgani kabi, sensorni ishlatish uchun bizga bu ma'lumot kerak emas.
Keyingi qadam - kod. ZUINO M UNO Arduino IDE bilan mos keladi, bu esa sozlashni ancha osonlashtiradi. Ushbu loyiha uchun kutubxonalar kerak:
- Wire.h
- Adafruit_GFX.h
- Adafruit_SSD1306.h
- SparkFun_RFD77402_Arduino_Library.h
Wire.h - bu arduino kutubxonasi, ikkita Adafruit kutubxonasi OLED uchun, ikkinchisi esa masofa sensori uchun ishlatiladi. *. Zip kutubxonalarini Arduino IDE -ga qanday ulash haqida ushbu qo'llanmani tekshiring.
Kodga nazar tashlasak, avval kutubxonalar va OLED manzili e'lon qilinishi kerak.
O'rnatish () da uzatish boshlanadi va masofa sensori funksiyasi uchun matn ko'rsatiladi.
Loop () masofani o'lchaydi va OLED uni bosib chiqaradi.
Github havolasidagi manba kodining namunasini tekshiring.
Ikkala taxtadan foydalanish hamma ma'noda juda oson. Uskuna tomonida Qwiic ulagichi apparatni sozlashni tez va ancha pastroq qiladi, bu esa taxta va o'tish simlariga qaraganda. I2C aloqasi uchun mos keladigan kutubxonalardan foydalanib, dasturiy ta'minot uchun sensor va displey kodni ancha soddalashtiradi.
4 -qadam: Maksimal kabel uzunligi qancha?
Maksimal uzunlik SDA va SCL uchun ishlatiladigan qarshilik rezistorlariga va simi sig'imiga bog'liq. Rezistorlar, shuningdek, avtobus tezligini aniqlaydi, avtobus tezligi qanchalik past bo'lsa, kabel chegarasi shuncha ko'p bo'ladi. Kabel sig'imi avtobusdagi qurilmalar sonini, shuningdek kabel uzunligini cheklaydi. Odatiy ilovalar sim uzunligini 2,5-3,5 m (9-12 fut) gacha cheklaydi, lekin ishlatilgan kabelga qarab farqlar mavjud. Ma'lumot uchun, himoyalangan 22 ta AWG o'ralgan juft simli I2C ilovalaridagi maksimal uzunlik 100 kbaundda taxminan 1 m (10 fut), 10 kbaudda 10 m (30 fut).
Kabel uzunligini taxmin qilishga imkon beradigan mogami yoki WolframAlpha kabi saytlar mavjud.
5 -qadam: Bir xil avtobusda bir nechta qurilmalarni qanday ulash mumkin?
I2C - ketma -ket avtobus, bu erda barcha qurilmalar umumiy avtobusga ulangan. Qwiic ulagichi yordamida har xil kesish platalari Qwiic ulagichi yordamida birin -ketin ulanishi mumkin. Har bir kartada kamida 2 Qwiic ulagichi mavjud.
Biz Qwiic va I2C cheklovlarini hal qilish uchun turli xil taxtalarni yaratdik. Zio Qwiic adapter taxtasi Qwiic qurilmalari orqali Qwiic ulagichisiz ulanish uchun ishlatiladi, Qwiic -dan erkaklar sarlavhasi kabeliga ulanadi. Bu oddiy hiyla cheksiz imkoniyatlarni yaratadi.
Avtobus yoki daraxtlar tarmog'idagi turli xil qurilmalarni ulash uchun biz Zio Qwiic Hub bilan kelishdik.
Oxir -oqibat, Zio Qwiic MUX bir xil manzil yordamida ikki yoki undan ortiq qurilmani ulash imkonini beradi.
6 -qadam: I2C tugashi nima?
I2C tugatish uchun talab qilinadi, shuning uchun chiziq boshqa qurilmalarni qo'shish uchun bepul. Bu biroz chalkash bo'lishi mumkin, chunki tugatish atamasi odatda avtobusning tortish rezistorlarini tavsiflash uchun ishlatiladi (standart holatni ta'minlash uchun, bu holda kontaktlarning zanglashiga olib kelishi uchun). Zuino plitalari uchun qarshilik qiymati 4,7 kΩ.
Agar bekor qilinsa, avtobusda hech qanday aloqa bo'lmaydi- xo'jayin boshlang'ich shartini yaratolmaydi, shuning uchun xabar qullarga uzatilmaydi.
Qo'shimcha ma'lumot va Zio imkoniyatlari uchun so'nggi Zio mahsulotlarini tekshiring. Ushbu maqolaning maqsadi I²C aloqa asoslari va uning Zio va Qwiic ulagichi bilan qanday ishlashini tushuntirishdan iborat. Boshqa yangiliklardan xabardor bo'ling.
Tavsiya:
RSSI RF modullari bilan masofaga (Xbees): 4 qadam
RF modullari bilan masofaga RSSI (Xbees): Xbees - bu kichik radiochastota modullari bo'lib, ular ma'lumotni oldinga va orqaga yuborish va boshqa aniq maqsadlarda ishlatilishi mumkin. Ushbu loyiha uchun men ularni qabul qilingan signal kuchi indikatori (RSSI) qiymatlarini olish uchun foydalanayapman
Jonli teskari muhandislik WiFi modullari: 8 qadam (rasmlar bilan)
Jonli teskari muhandislik WiFi modullari: Men iloji boricha ko'proq ishlaydigan komponentlarni qayta ishlatishni yaxshi ko'raman. Garchi men WiFi printerlarini teskari muhandislik qilsam ham, bu usul boshqa ko'plab qurilmalarda ishlaydi. Iltimos; shunchaki eskirgan elektronikani ajratib qo'ymang, keyin saqlangan komponentlar uchun ma'lumotlar jadvalini topishni kuting
HiFive1 veb -serveri ESP32 / ESP8266 WiFi modullari bilan qo'llanma: 5 qadam
HiFive1 veb-serveri ESP32 / ESP8266 WiFi modullari bo'yicha qo'llanma: HiFive1-SiFive-dan FE310 protsessori bilan qurilgan Arduino-ga mos keladigan birinchi RISC-V kartasi. Kengash Arduino UNO -dan taxminan 20 barobar tezroq, ammo UNO boshqaruv kengashi kabi HiFive1 simsiz ulanishga ega emas. Yaxshiyamki, bir nechta arzon narxlar bor
Robot qo'lini Zio modullari bilan boshqaring 1 -qism: 8 qadam
Robot qo'lini Zio modullari bilan boshqaring 1 -qism: Bu blog posti Zio Robotics seriyasining bir qismidir. Kirish Ushbu qo'llanmada biz Robot qo'lini boshqarish uchun Zio modullaridan foydalanadigan loyiha tuzamiz. Ushbu loyiha sizga robot qo'lingizning panjasini ochish va yopishni o'rgatadi. Bu n
Arzon 433 MGts chastotali RF modullari va Pic mikrokontrollerlaridan foydalangan holda simsiz aloqa. 2 -qism: 4 qadam (rasmlar bilan)
Arzon 433 MGts chastotali RF modullari va Pic mikrokontrollerlaridan foydalangan holda simsiz aloqa. 2 -qism: Ushbu ko'rsatmaning birinchi qismida men MPLAB IDE va XC8 kompilyatori yordamida PIC12F1822 -ni qanday dasturlashni, arzon TX/RX 433MHz modullari yordamida oddiy simni simsiz jo'natishni ko'rsatdim. Qabul qilish moduli USB orqali UART TTL -ga ulangan. kabel reklamasi