pca9674a --- I2C Expander Driver¶
โมดูล pca9674a มีไดรเวอร์สำหรับ NXP PCA9674A 8-bit quasi-bidirectional I/O expander ชิปนี้เปิดเผย I/O port ขนาด 8 บิตผ่าน I2C และสาย INT active-low ที่พัลส์เมื่อใดก็ตามที่พินอินพุตใดเปลี่ยนสถานะ
แต่ละพินเป็น quasi-bidirectional: การเขียน 1 จะปล่อยพินไปยัง pull-up ภายในแบบอ่อนเพื่อทำหน้าที่เป็นอินพุตที่ไดรเวอร์ภายนอกสามารถดึงต่ำได้; การเขียน 0 จะขับพินต่ำอย่างแอ็กทีฟ ไม่มีรีจิสเตอร์ direction แยกต่างหาก -- PCA9674A.read() คืนระดับภายนอกปัจจุบันของทุกพินโดยไม่คำนึงถึงสิ่งที่เขียนล่าสุด
ที่อยู่ I2C 7 บิตคือ 0x38 -- 0x3F ขึ้นอยู่กับพิน strap A0/A1/A2; 0x3F (63) คือค่าเริ่มต้น (strap ทั้งหมดสูง)
class PCA9674A -- 8-bit I/O expander¶
- class pca9674a.PCA9674A(bus: machine.I2C, irq_pin: str, address: int = 63, callback: Callable | None = None)¶
สร้างอินเทอร์เฟซกับ PCA9674A I/O expander
busคือบัสmachine.I2Cที่ expander เชื่อมต่ออยู่irq_pinคือป้ายกำกับพินบน host MCU ที่เชื่อมต่อกับ outputINTของ expander ไดรเวอร์กำหนดค่าเป็นอินพุตพร้อม pull-up และเฝ้าดู falling edge ของมันaddressคือที่อยู่ I2C 7 บิตของ expander (0x38--0x3F) ค่าเริ่มต้นคือ0x3Fcallbackจะถูกเรียกบน falling edge ของirq_pinเมื่อสถานะพินใดเปลี่ยน รับ instancePCA9674Aเป็นอาร์กิวเมนต์เดียว สถานะพินใหม่สามารถอ่านด้วยread()ส่งNone(ค่าเริ่มต้น) สำหรับการใช้แบบ polled