pca9674a — מנהל התקן מרחיב I2C

המודול pca9674a מספק מנהל התקן עבור מרחיב הקלט/פלט מסוג quasi-bidirectional של 8 ביט NXP PCA9674A. השבב חושף פורט קלט/פלט של 8 ביט דרך I2C וקו INT פעיל-נמוך הפועם בכל פעם שפין קלט כלשהו משנה את מצבו.

כל פין הוא quasi-bidirectional: כתיבת 1 משחררת את הפין ל-pull-up פנימי חלש כך שהוא מתפקד כקלט שדרייבר חיצוני יכול למשוך לנמוך; כתיבת 0 מנעה באופן פעיל את הפין לנמוך. אין אוגר כיוון נפרד – PCA9674A.read() מחזירה את הרמה החיצונית הנוכחית של כל פין ללא קשר למה שנכתב לאחרונה.

כתובת ה-I2C של 7 ביט היא 0x380x3F בהתאם לפיני הקיבוע 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 הוא ה-bus מסוג machine.I2C שאליו מחובר המרחיב.

  • irq_pin הוא תווית הפין ב-MCU המארח המחובר לפלט ה-INT של המרחיב. מנהל ההתקן מגדיר אותו כקלט עם pull-up ועוקב אחר הקצה היורד שלו.

  • address היא כתובת ה-I2C של 7 ביט של המרחיב (0x380x3F). ברירת המחדל היא 0x3F.

  • callback מופעלת בקצה היורד של irq_pin כאשר מצב פין כלשהו משתנה. היא מקבלת את המופע PCA9674A כארגומנט היחיד שלה; ניתן לקרוא את מצב הפין החדש באמצעות read(). העבירו None (ברירת המחדל) לשימוש בסקירה (polled).

write(value: int) None

כותבת את ה-value של 8 ביט לפיני מרחיב הקלט/פלט.

read() int

מחזירה את הערך של 8 ביט של פיני מרחיב הקלט/פלט.

reset() None

מאפסת ומאתחלת מחדש את מרחיב הקלט/פלט, ומחברת מחדש את ה-callback של ה-IRQ אם סופקה אחת.