جدول المحتويات:

تقديم I2C مع وحدات Zio و Qwiic: 6 خطوات
تقديم I2C مع وحدات Zio و Qwiic: 6 خطوات

فيديو: تقديم I2C مع وحدات Zio و Qwiic: 6 خطوات

فيديو: تقديم I2C مع وحدات Zio و Qwiic: 6 خطوات
فيديو: How to use multiple LCD1602 I2C or LCD2004 display with Arduino 2024, يوليو
Anonim
تقديم I2C مع وحدات Zio و Qwiic
تقديم I2C مع وحدات Zio و Qwiic

قال روبن شارما: "التحسينات اليومية الصغيرة بمرور الوقت تؤدي إلى نتائج مذهلة". قد تفكر ، "عذرًا ، منشور I2C آخر؟". حسنًا ، هناك بالتأكيد آلاف المعلومات عندما يتعلق الأمر بـ I2C. لكن ترقبوا ، هذه ليست مجرد مقالة I2C أخرى. نظام Qwiic Connect ولوحات الاختراق الطرفية Zio هي بالتأكيد مغيّرات قواعد اللعبة I²C!

مقدمة

إذا كنت تقوم ببناء مشاريع إلكترونية وتقوم بأشياء رائعة ، فربما تكون قد أدركت أنه مع زيادة حجم مشاريعك ، يبدأ لوح التجارب في الظهور وكأنه حفرة ثعبان (أليس كذلك؟).

بالإضافة إلى ذلك ، إذا كان لديك العديد من المشاريع الجارية ، فإنك تقضي وقتًا طويلاً في تبديل الأسلاك من مشروع إلى آخر.

نحن صناع ، لذلك نحن نفهم النضال. أحدث مساهماتنا في مجتمع الصحة والسلامة المهنية هي نظام نمطي معياري يسمى ZIO ، يعتمد نظام توصيل Qwiic. Qwiic هي طريقة مريحة للغاية لتوصيل لوحة دائرة قابلة للبرمجة إلى المستشعرات والمشغلات ولوحات الفصل عبر I²C.

الخطوة 1: ما هو I²C ولماذا نحبها

ما هو I²C ولماذا نحبها
ما هو I²C ولماذا نحبها

I²C هي أكثر الحافلات الرئيسية استخدامًا على نطاق واسع ، مما يعني أنه يمكن توصيل شرائح متنوعة بنفس الناقل. يتم استخدامه عبر العديد من التطبيقات بين السيد والعبد أو العديد من الأجهزة الرئيسية والتابعة. من المتحكمات الدقيقة إلى الهواتف الذكية إلى التطبيقات الصناعية ، خاصة لأجهزة الفيديو مثل شاشات الكمبيوتر. يمكن تنفيذه بسهولة في العديد من التصميمات الإلكترونية (وقد أصبح أسهل مؤخرًا باستخدام موصل Qwiic).

إذا كان علينا وصف I²C بكلمتين ، فربما نستخدم البساطة والمرونة.

واحدة من أكبر مزايا I²C مقارنة ببروتوكولات الاتصال الأخرى هي أنها واجهة ثنائية الأسلاك مما يعني أنها تحتاج فقط إلى سلكين للإشارة ، SDA (خط البيانات التسلسلي) و SCL (خط الساعة التسلسلي). قد لا يكون أسرع بروتوكول ، لكنه معروف جيدًا بكونه مرنًا للغاية ، مما يسمح بالمرونة في جهد الناقل.

من الخصائص المهمة الأخرى التي تجعل هذه الحافلة جذابة هي الشركة بين السيد والعبد. يمكن توصيل العديد من الأجهزة بالحافلة نفسها ولا داعي لتغيير الأسلاك بين الأجهزة حيث أن لكل جهاز عنوانًا فريدًا (يقوم السيد باختيار الجهاز للتواصل).

الخطوة الثانية: دعونا نلقي نظرة عن كثب

دعونا نلقي نظرة فاحصة
دعونا نلقي نظرة فاحصة
دعونا نلقي نظرة فاحصة
دعونا نلقي نظرة فاحصة
دعونا نلقي نظرة فاحصة
دعونا نلقي نظرة فاحصة
دعونا نلقي نظرة فاحصة
دعونا نلقي نظرة فاحصة

إذن ، كيف يعمل I²C؟ ذكرنا سابقًا أن أحد أهم الميزات هو بدل الجهد ، وهذا ممكن لأن I²C تستخدم جامعًا مفتوحًا (يُعرف أيضًا باسم الصرف المفتوح) لكل من خطوط الاتصال SDA و SCL.

SCL هي إشارة الساعة ، وتزامن نقل البيانات بين الأجهزة على ناقل I²C ويتم إنشاؤها بواسطة السيد. بينما تحمل SDA البيانات لإرسالها أو استقبالها من المستشعرات أو الأجهزة الأخرى المتصلة بالحافلة.

يتم توصيل خرج الإشارة بالأرض ، مما يعني أن كل جهاز يتم فرضه على أنه منخفض. لاستعادة الإشارة إلى مستوى عالٍ ، يتم توصيل كلا الخطين بجهد إمداد موجب من خلال مقاومة سحب ليتم إنهاؤها.

مع وحدات ZIO التي قمنا بتغطيتها ، تشتمل جميع لوحات الكسر لدينا على مقاومة السحب اللازمة.

I²C يتبع بروتوكول الرسائل من أجل توصيل السيد مع الأجهزة التابعة. الخطان (SCL و SDA) شائعان في جميع العبيد I²C ، جميع العبيد في الحافلة يستمعون إلى الرسالة.

يتبع بروتوكول الرسائل التنسيق الموضح في الصورة المرفقة:

قد يبدو الأمر معقدًا للوهلة الأولى ، لكن لدينا بعض الأخبار الجيدة. عند استخدام Arduino IDE ، توجد مكتبة Wire.h ، لتبسيط كل الإعداد لبروتوكول رسائل I²C.

يتم إنشاء حالة البدء عندما ينخفض خط البيانات (SDA) بينما يظل خط الساعة (SCL) مرتفعًا. عند إعداد مشروع على واجهة Arduino ، لا داعي للقلق حقًا بشأن إنشاء حالة البداية ، فسيتم بدؤه بوظيفة محددة (Wire.beginTransmission (slaveAddress)).

بالإضافة إلى ذلك ، تبدأ هذه الوظيفة أيضًا في الإرسال بعنوان تابع محدد. لاختيار العبد للتواصل على الحافلة المشتركة ، يشرع السيد في تمرير العنوان إلى العبد للتواصل. بعد تعيين العنوان للتواصل مع التابع المقابل ، تتبع الرسالة إما بقراءة أو كتابة ، اعتمادًا على الوضع المحدد.

يقدم المرهم ردًا مع إقرار (ACK أو NACK) ، وتخصم الأجهزة التابعة الأخرى الموجودة على الناقل بقية البيانات حتى تكتمل الرسالة وتكون الحافلة مجانية. بعد ACK ، يواصل الإرسال سلسلة من سجل العنونة الداخلي للعبيد.

عند إرسال البيانات ، تنتهي رسالة النقل بشرط التوقف. لإنهاء الإرسال ، يتغير خط البيانات إلى مستوى مرتفع ويظل خط الساعة مرتفعًا.

الخطوة 3: I²C و ZIO

I²C و ZIO
I²C و ZIO

لقد توصلنا إلى أنه سيكون من الأفضل أن أرسم مخططًا لجميع المعلومات الواردة أعلاه في محادثة بين السيد (المعروف أيضًا باسم Zuino ، المصغر) والعبيد (المعروف أيضًا باسم لوحات الاختراق ZIO).

في هذا المثال الأساسي ، نستخدم مستشعر المسافة ZIO TOF وشاشة ZIO OLED. يوفر TOF معلومات المسافة بينما يعرض ZIO Oled البيانات. المكونات والأجهزة المستخدمة:

  • ZUINO M UNO - السيد
  • شاشة ZIO OLED - Slave_01
  • مستشعر المسافة من ZIO TOF - Slave_02
  • كبل Qwiic - توصيل سهل لأجهزة I²C

إليك مدى سهولة توصيل الألواح ببعضها البعض باستخدام Qwiic ، دون الحاجة إلى لوحة توصيل ، أو كبلات إضافية مدمجة أو دبابيس ZUINO. يتم توصيل الساعة التسلسلية وخط البيانات الخاص بـ ZUINO تلقائيًا بمستشعر المسافة و OLED باستخدام موصل Qwiic. الكبلان الآخران هما 3V3 و GND.

أولاً ، دعنا نلقي نظرة على المعلومات المطلوبة ، لتوصيل السيد مع العبيد ، سنحتاج إلى معرفة العناوين الفريدة.

الجهاز: مستشعر المسافة ZIO

  • رقم الجزء: RFD77402
  • عنوان I2C: 0x4C
  • ارتباط ورقة البيانات

الجهاز: شاشة ZIO OLED

  • رقم الجزء: SSD1306
  • العنوان: 0x3C
  • ارتباط ورقة البيانات

للعثور على العنوان الفريد للأجهزة التابعة ، افتح ورقة البيانات المتوفرة. بالنسبة لمستشعر المسافة ، يتم توفير العنوان في قسم واجهة الوحدة النمطية. يحتوي كل جهاز استشعار أو مكون على ورقة بيانات مختلفة مع توفير معلومات مختلفة. قد يكون من الصعب أحيانًا العثور عليه في ورقة بيانات 30 صفحة (تلميح: افتح أداة البحث في عارض PDF واكتب "العنوان" أو "معرف الجهاز" للبحث السريع).

الآن بعد أن أصبح العنوان الفريد لكل جهاز معروفًا ، لقراءة / كتابة البيانات ، يجب تحديد عنوان السجل الداخلي (أيضًا من ورقة البيانات). بإلقاء نظرة على ورقة بيانات مستشعر المسافة ZIO ، فإن العنوان للحصول على المسافة يتوافق مع 0x7FF.

في هذه الحالة بالذات ، لا نحتاج حقًا إلى هذه المعلومات لاستخدام المستشعر كما تفعل المكتبة بالفعل.

الخطوة التالية ، قم بتدوين الكود. ZUINO M UNO متوافق مع Arduino IDE ، مما يجعل الإعداد أسهل كثيرًا. المكتبات اللازمة لهذا المشروع هي كما يلي:

  • سلك
  • Adafruit_GFX.h
  • Adafruit_SSD1306.h
  • SparkFun_RFD77402_Arduino_Library.h

Wire.h هي مكتبة اردوينو ، ويتم استخدام مكتبتي Adafruit لـ OLED وتستخدم المكتبة الأخيرة لجهاز استشعار المسافة. تحقق من هذا البرنامج التعليمي حول كيفية ربط مكتبات *.zip بـ Arduino IDE.

بالنظر إلى الكود ، يجب أولاً الإعلان عن المكتبات وكذلك عنوان OLED.

في الإعداد () يبدأ الإرسال ويتم عرض نص لوظيفة مستشعر المسافة.

تأخذ الحلقة () قياسات على المسافة ويطبعها OLED.

تحقق من كود المصدر المثال على رابط جيثب.

يعد استخدام كل من الألواح القابلة للكسر أمرًا سهلاً للغاية من جميع النواحي. على جانب الأجهزة ، يجعل موصل Qwiic إعداد الأجهزة أسرع وأقل فوضى من وجود لوح توصيل وأسلاك توصيل. وبالنسبة للبرامج الثابتة ، فإن استخدام المكتبات المقابلة لاتصالات I2C ، يجعل المستشعر والشاشة الكود أكثر بساطة.

الخطوة 4: ما هو الحد الأقصى لطول الكابل؟

يعتمد الطول الأقصى على مقاومات السحب المستخدمة في SDA و SCL وسعة الكابل. تحدد المقاومات أيضًا سرعة الحافلة ، فكلما انخفضت سرعة الحافلة ، زاد حد الكابل. تحدد سعة الكبل عدد الأجهزة الموجودة على الحافلة ، فضلاً عن طول الكابل. تحدد التطبيقات النموذجية طول السلك بـ 2.5-3.5 م (9-12 قدمًا) ولكن هناك تباينًا اعتمادًا على الكبل المستخدم. كمرجع ، يبلغ الحد الأقصى للطول في تطبيقات I2C التي تستخدم كبلات زوجية ملتوية 22 AWG محمية حوالي 1 متر (3 أقدام) عند 100 كيلو بايت ، 10 متر (30 قدمًا) عند 10 كيلو بايت.

هناك بعض المواقع مثل mogami أو WolframAlpha التي تسمح بتقدير طول الكابل.

الخطوة الخامسة: كيفية توصيل أجهزة متعددة على نفس الحافلة؟

كيفية توصيل أجهزة متعددة على نفس الحافلة؟
كيفية توصيل أجهزة متعددة على نفس الحافلة؟
كيفية توصيل أجهزة متعددة على نفس الحافلة؟
كيفية توصيل أجهزة متعددة على نفس الحافلة؟

I2C عبارة عن ناقل تسلسلي ، حيث يتم توصيل جميع الأجهزة بحافلة مشتركة. باستخدام موصل Qwiic ، يمكن توصيل لوحات الفصل المختلفة واحدة تلو الأخرى باستخدام موصل Qwiic. تحتوي كل لوحة على موصلين Qwiic على الأقل.

لقد أنشأنا لوحات مختلفة لحل بعض قيود Qwiic و I2C. تُستخدم لوحة مهايئ Zio Qwiic للاتصال عبر أجهزة Qwiic بدون موصل Qwiic ، باستخدام Qwiic إلى كابل رأس ذكر للوحة توصيل الدوائر. هذه الحيلة البسيطة تخلق إمكانيات غير محدودة.

لتوصيل أجهزة مختلفة على شبكة حافلة أو شجرة ، توصلنا إلى Zio Qwiic Hub.

أخيرًا وليس آخرًا ، يسمح Zio Qwiic MUX بالاتصال بجهازين أو أكثر باستخدام نفس العنوان.

الخطوة 6: ما هو إنهاء I2C؟

مطلوب I2C للإنهاء ، وبالتالي فإن الخط مجاني لإضافة أجهزة أخرى. قد يكون هذا مربكًا بعض الشيء ، حيث يتم استخدام مصطلح الإنهاء بشكل شائع لوصف مقاومات سحب الحافلة (لتوفير حالة افتراضية ، في هذه الحالة لتزويد الدائرة بالتيار). بالنسبة للوحات Zuino ، تبلغ قيمة المقاوم 4.7kΩ.

إذا تم حذف الإنهاء ، فلن يكون هناك اتصال على الإطلاق في الناقل - لن يتمكن السيد من إنشاء حالة البداية ، لذلك لن يتم إرسال الرسالة إلى العبيد.

لمزيد من المعلومات وإمكانيات Zio ، تحقق من أحدث منتجات Zio. الهدف من هذه المقالة هو شرح أساسيات الاتصال I²C وكيفية عملها مع موصل Zio و Qwiic. ترقبوا المزيد من التحديثات.

موصى به: