pca9674a — I2C 익스팬더 드라이버

pca9674a 모듈은 NXP PCA9674A 8비트 준양방향(quasi-bidirectional) I/O 익스팬더용 드라이버를 제공합니다. 이 칩은 I2C를 통해 8비트 I/O 포트를 노출하며, 입력 핀의 상태가 변할 때마다 펄스를 발생시키는 액티브 로우 INT 라인을 제공합니다.

각 핀은 준양방향입니다: 1을 쓰면 핀이 약한 내부 풀업으로 해제되어 외부 드라이버가 로우로 끌어내릴 수 있는 입력으로 작동하고, 0을 쓰면 핀을 능동적으로 로우로 구동합니다. 별도의 방향 레지스터는 없습니다 – PCA9674A.read()는 마지막으로 무엇을 썼는지와 관계없이 모든 핀의 현재 외부 레벨을 반환합니다.

7비트 I2C 주소는 A0/A1/A2 스트랩 핀에 따라 0x380x3F입니다. 0x3F(63)가 기본값입니다(모든 스트랩이 하이).

class PCA9674A – 8비트 I/O 익스팬더

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

PCA9674A I/O 익스팬더에 대한 인터페이스를 생성합니다.

  • bus는 익스팬더가 연결된 machine.I2C 버스입니다.

  • irq_pin은 익스팬더의 INT 출력에 연결된 호스트 MCU의 핀 레이블입니다. 드라이버는 이를 풀업이 있는 입력으로 구성하고 하강 에지를 감시합니다.

  • address는 익스팬더의 7비트 I2C 주소입니다(0x380x3F). 기본값은 0x3F입니다.

  • callback 은 핀 상태가 변할 때 irq_pin 의 하강 에지에서 호출됩니다. 유일한 인수로 PCA9674A 인스턴스를 받습니다. 새로운 핀 상태는 read() 로 읽을 수 있습니다. 폴링 방식 사용을 위해서는 None(기본값)을 전달하십시오.

write(value: int) None

8비트 value를 I/O 익스팬더 핀에 씁니다.

read() int

I/O 익스팬더 핀의 8비트 값을 반환합니다.

reset() None

I/O 익스팬더를 리셋하고 다시 초기화하며, 제공된 경우 IRQ callback을 다시 연결합니다.