pca9674a --- Driver I2C Expander

Module pca9674a cung cấp driver cho bộ mở rộng I/O 8-bit quasi-bidirectional NXP PCA9674A. Chip này cung cấp cổng I/O 8-bit qua I2C và một đường INT tích cực thấp sẽ xung mỗi khi bất kỳ chân đầu vào nào thay đổi trạng thái.

Mỗi chân (pin) là quasi-bidirectional: ghi 1 giải phóng chân (pin) về pull-up nội bộ yếu để nó hoạt động như đầu vào mà driver bên ngoài có thể kéo xuống thấp; ghi 0 tích cực kéo chân (pin) xuống thấp. Không có thanh ghi hướng riêng -- PCA9674A.read() trả về mức bên ngoài hiện tại của mọi chân (pin) bất kể giá trị đã được ghi lần cuối là gì.

Địa chỉ I2C 7-bit là 0x38 -- 0x3F tùy thuộc vào các chân (pin) strap A0/A1/A2; 0x3F (63) là mặc định (tất cả strap ở mức cao).

class PCA9674A -- bộ mở rộng I/O 8-bit

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

Tạo giao diện với bộ mở rộng I/O PCA9674A.

  • bus là bus machine.I2C mà bộ mở rộng được kết nối vào.

  • irq_pin là nhãn chân (pin) trên MCU chủ được kết nối với đầu ra INT của bộ mở rộng. Driver cấu hình nó là đầu vào với pull-up và theo dõi cạnh xuống của nó.

  • address là địa chỉ I2C 7-bit của bộ mở rộng (0x38 -- 0x3F). Mặc định là 0x3F.

  • callback được gọi trên cạnh xuống của irq_pin khi bất kỳ trạng thái chân (pin) nào thay đổi. Nó nhận instance PCA9674A làm tham số duy nhất; trạng thái chân (pin) mới có thể được đọc bằng read(). Truyền None (mặc định) để sử dụng theo kiểu thăm dò.

write(value: int) None

Ghi value 8-bit vào các chân (pin) của bộ mở rộng I/O.

read() int

Trả về giá trị 8-bit của các chân (pin) bộ mở rộng I/O.

reset() None

Đặt lại và khởi tạo lại bộ mở rộng I/O, và gắn lại IRQ callback nếu có.