pca9674a --- Driver I2C Expander

Modul pca9674a menyediakan driver untuk I/O expander 8-bit quasi-bidirectional NXP PCA9674A. Chip ini mengekspos port I/O 8-bit melalui I2C dan jalur INT aktif-rendah yang berpulsa setiap kali pin input berubah keadaan.

Setiap pin bersifat quasi-bidirectional: menulis 1 melepaskan pin ke pull-up internal yang lemah sehingga bertindak sebagai input yang dapat ditarik rendah oleh driver eksternal; menulis 0 secara aktif menggerakkan pin ke kondisi rendah. Tidak ada register arah terpisah -- PCA9674A.read() mengembalikan level eksternal saat ini dari setiap pin tanpa memandang apa yang terakhir ditulis.

Alamat I2C 7-bit adalah 0x38 -- 0x3F tergantung pada pin strap A0/A1/A2; 0x3F (63) adalah default (semua strap tinggi).

class PCA9674A -- I/O expander 8-bit

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

Membuat antarmuka ke I/O expander PCA9674A.

  • bus adalah bus machine.I2C tempat expander terhubung.

  • irq_pin adalah label pin pada MCU host yang terhubung ke output INT expander. Driver mengonfigurasinya sebagai input dengan pull-up dan memantau tepi turunnya.

  • address adalah alamat I2C 7-bit expander (0x38 -- 0x3F). Default-nya adalah 0x3F.

  • callback dipanggil pada tepi turun irq_pin saat ada perubahan keadaan pin. Menerima instans PCA9674A sebagai satu-satunya argumen; keadaan pin baru dapat dibaca dengan read(). Berikan None (default) untuk penggunaan polled.

write(value: int) None

Menulis value 8-bit ke pin I/O expander.

read() int

Mengembalikan nilai 8-bit dari pin I/O expander.

reset() None

Mengatur ulang dan menginisialisasi ulang I/O expander, serta melampirkan kembali callback IRQ jika ada yang diberikan.