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

لماذا يحتاج I²C مقاومات سحب؟

خطوط I²C تستخدم عادة مخارج open-drain أو open-collector؛ الجهاز يسحب الخط إلى المنخفض ويترك المقاومة تعيده إلى العالي. لذلك لا يكون الانتقال الصاعد حافة مثالية. يحدد NXP UM10204 أزمنة صعود مختلفة حسب نمط السرعة، ويعرض حدوداً مرتبطة بسعة الخط. يشرح تقرير TI SLVA689 طريقة حساب مجال مقاومة السحب من شرط زمن الصعود ومن حد تيار السحب. القيمة المناسبة ليست واحدة لكل مشروع، لأن السعة الكلية والجهد ونوع المتحكم وعدد الوحدات تختلف.

المعادلة التقريبية لزمن الصعود إلى نقطة القياس تعرف غالباً على الصورة tr ≈ 0.8473 × Rp × Cb، حيث Rp مقاومة السحب وCb سعة الناقل. إذا كانت Cb تساوي 100 pF وRp تساوي 4.7 kΩ، فالتقدير نحو 398 ns. هذا حساب تعليمي لا قياس فعلي، كما أن النموذج لا يصف كل تفاصيل العتبات والتوصيلات. فحص المجال يطلب أيضاً ألا تكون المقاومة صغيرة جداً فتتجاوز قدرة الجهاز على سحب التيار عندما يكون الخط منخفضاً.

منصة قياس آمنة ومنخفضة الجهد

استخدم لوحة متحكم 3.3 V أو 5 V بحسب الوحدات، وحساس I²C معروفاً، ومقاومات سحب قابلة للتبديل، ومحلل منطقي أو راسم إشارة مناسباً لمستوى الجهد. لا توصل راسم أرضي بمصدر غير معزول أو بدارة جهد رئيسي. إذا استخدمت ADC داخلياً لتقدير الحافة، فتحقق أن معدل تحويله كافٍ؛ غالباً لن يحل محل راسم إشارة لقياس نانوثوانٍ أو مئات النانوثواني. يمكن تسجيل نجاح المعاملات بالمتحكم ومقارنة ذلك بمقياس زمني أدق.

صمم لوحة اختبار قصيرة مع نقاط قياس SDA وSCL وGND، ثم أضف أطوال أسلاك معروفة على مراحل. افحص الجهد العالي لكل وحدة قبل ربطها، ولا تجمع ناقلين بمستويي pull-up مختلفين دون مراجعة حدود الجهد. وحدات كثيرة تحمل مقاومات سحب مدمجة، وعند وصل عدة ألواح تصبح المقاومات على التوازي. احسب المقاومة المكافئة بدلاً من افتراض أن كل لوحة تضيف مقاومة مستقلة على التوالي.

مسح المقاومة والسعة خطوة بخطوة

ابدأ بتوصيل وحدة واحدة وسجل الشكل الزمني عند مقاومة السحب الموجودة، ثم أضف مقاومة معروفة بالتوازي أو استبدلها بقيمة معلومة بعد فصل الطاقة. كرر القياس مع سلك قصير ومتوسط وطويل، مع تثبيت الأجهزة ومعدل الساعة. سجل زمن الصعود بين النسب المحددة في مرجع القياس، لا من حافة الشاشة بالعين. بعد كل حالة أرسل سلسلة معاملات متكررة واكتب عدد ACK وNACK والقراءات الخاطئة.

أنشئ جدولاً يضم Rp المقاسة، الطول أو السعة التقديرية، جهد التغذية، معدل الساعة، زمن الصعود، تيار المستوى المنخفض التقريبي، ونسبة أخطاء النقل. إذا لم تتوفر أداة قياس سعة، صف الأطوال كتجربة مقارنة ولا تدّع قيمة Cb مضبوطة. افحص أيضاً تأثير مسبار القياس نفسه؛ سعة المسبار قد تضيف حملاً يغير الحافة. لا تترك رأس المجس معلقاً أو تستخدم وصلة أرضي طويلة إذا أردت مقارنة دقيقة بين الحواف.

اختيار المقاومة ضمن مجالين

شرط زمن الصعود يعطي حداً أعلى تقريبياً للمقاومة: Rp(max) = tr(max)/(0.8473×Cb). أما حد التيار المنخفض فيعطي حداً أدنى: Rp(min) ≈ (Vcc−Vol(max))/Iol(max)، مع استخدام القيم المناسبة من بيانات الجهاز. يجب أن يوجد تداخل بين المجالين؛ إذا لم يوجد، فالمطلوب تقليل السعة أو خفض السرعة أو اختيار مكونات مختلفة، لا اختيار قيمة وسطية غير صالحة. يورد تقرير TI أمثلة للمجالين، أما الحدود الفعلية فتحصل عليها من مواصفات كل شريحة ونسخة I²C التي تستهدفها.

مثال تقريبي: لو كان حد الصعود 1 µs والسعة المفترضة 200 pF، فإن Rp(max) نحو 5.9 kΩ. لكن إذا كان حد تيار السحب يتطلب Rp لا تقل عن 1 kΩ، يصبح مجال تصميم محتمل بين الحدين قبل احتساب تفاوت المقاومات والعتبات. لا تحول المثال إلى وصفة عامة للوحة. قياس جهازك ومراجعة datasheet أهم من نسخ 4.7 kΩ من مخطط آخر.

تمييز الأعطال بالقياس

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

حالات الفشل تشمل انعكاس SDA وSCL، توصيل أرضي غير مشترك، خلط 5V و3.3V، سلك طويل قرب محرك، مقاومات pull-up مكررة، وخط عالق منخفض بسبب جهاز لم يكمل معاملة. أوقف تغذية الدارة قبل تبديل التوصيلات، ثم اختبر كل جهاز منفرداً. لا تستخدم زيادة سرعة الساعة كحل لمشكلة زمن صعود؛ ذلك يقلل الهامش غالباً. أظهر إطار المعاملة على المحلل المنطقي بالتزامن مع القياس التناظري إن توفر الجهازان.

اختبارات قبول ومعايير تقرير

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

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

نطاق المشروع ومراجع القياس

قد يكون التطوير المفيد أداة صغيرة تختار Rp المقترحة بعد إدخال الجهد والسعة وسرعة الناقل وحدود التيار، ثم تعرض المجال المتاح وتحذر إن لم يوجد تداخل. يجب أن يطلب البرنامج datasheet للمكونات؛ لا يمكنه معرفة خصائص أي وحدة مجهولة. تستطيع فرق مشاريع التخرج إدراج المنصة ضمن مشاريع Arduino والأنظمة المضمنة مع ملف قياسات قابل لإعادة التجربة. توسعة جيدة هي قياس أثر المسبار أو مقارنة كابلين، لا وضع إشارة «ممتاز» على رقم واحد.

راجع مواصفة NXP UM10204 لفهم توقيت الحافلة، وحساب TI لمقاومات السحب لموازنة الصعود والتيار. افتح ورقة بيانات كل متحكم وحساس في تجربتك أيضاً؛ المرجع العام لا يضمن التوافق الكهربائي للوحة مجهولة. المقالة تقترح اختباراً تعليمياً منخفض الجهد ولا تحتوي قياسات أو اعتماداً لمعيار منتج.

المصادر

مراجعة المصادر: .

اختبار المثال وحدوده

حسابات RC وخطة قياس تعليمية؛ التوقيتات الفعلية تتوقف على الأجهزة والسعة ولا تمثل قياسات من لوحة بعينها.

مقالات ذات صلة

الخدمة المرتبطة: برمجة Arduino والأجهزة المتصلة والروبوتات.

أرسل متطلبات مشروعك