pca9674a --- مشغّل موسّع I2C

توفّر الوحدة pca9674a مشغّلًا لموسّع الإدخال/الإخراج شبه ثنائي الاتجاه ذي 8 بت من نوع NXP PCA9674A. تكشف الشريحة منفذ إدخال/إخراج بعرض 8 بت عبر I2C وخط INT منخفض-الفعالية ينبض كلما تغيّرت حالة أي دبوس إدخال.

كل دبوس شبه ثنائي الاتجاه: كتابة 1 تحرر الدبوس إلى رفع داخلي ضعيف بحيث يعمل كدخل يمكن لمشغّل خارجي سحبه إلى المنخفض؛ وكتابة 0 تقود الدبوس إلى المنخفض بفعالية. لا يوجد سجل اتجاه منفصل -- يُرجع PCA9674A.read() المستوى الخارجي الحالي لكل دبوس بغض النظر عمّا كُتب آخرًا.

عنوان I2C ذو 7 بت هو 0x38 -- 0x3F حسب دبابيس الربط A0/A1/A2؛ والقيمة الافتراضية هي 0x3F (63) (جميع دبابيس الربط مرفوعة).

class PCA9674A -- موسّع إدخال/إخراج ذو 8 بت

class pca9674a.PCA9674A(bus: machine.I2C, irq_pin: str, address: int = 63, callback: Callable | None = None)

ينشئ واجهة لموسّع الإدخال/الإخراج PCA9674A.

  • bus هو ناقل machine.I2C المتصل به الموسّع.

  • irq_pin هو تسمية الدبوس على المعالج المضيف المتصل بخرج INT الخاص بالموسّع. يهيئه المشغّل كدخل مع رفع ويراقب حافته الهابطة.

  • address هو عنوان I2C ذو 7 بت للموسّع (0x38 -- 0x3F). القيمة الافتراضية 0x3F.

  • تُستدعى callback عند الحافة الهابطة لـ irq_pin عندما تتغيّر حالة أي دبوس. تتلقى نسخة PCA9674A كوسيطها الوحيد؛ ويمكن قراءة حالة الدبابيس الجديدة باستخدام read(). مرّر None (القيمة الافتراضية) للاستخدام بالاستقصاء.

write(value: int) None

يكتب القيمة value ذات 8 بت إلى دبابيس موسّع الإدخال/الإخراج.

read() int

يُرجع القيمة ذات 8 بت لدبابيس موسّع الإدخال/الإخراج.

reset() None

يعيد ضبط وتهيئة موسّع الإدخال/الإخراج، ويعيد إرفاق دالة رد النداء callback للمقاطعة إن كانت قد قُدِّمت.