pca9674a --- I2C エキスパンダードライバ

pca9674a モジュールは、NXP PCA9674A 8ビット準双方向 I/O エキスパンダー用のドライバを提供します。このチップは、I2C 経由で8ビットの I/O ポートと、入力ピンの状態が変化するたびにパルスを発するアクティブロウの INT ラインを公開します。

各ピンは 準双方向 です。1 を書き込むとピンが弱い内部プルアップに解放され、外部ドライバがロウに引き下げられる入力として動作します。0 を書き込むとピンが能動的にロウに駆動されます。個別の方向レジスタはなく、PCA9674A.read() は最後に書き込まれた内容に関係なく、すべてのピンの現在の外部レベルを返します。

7ビットの I2C アドレスは、A0A1A2 ストラップピンに応じて 0x380x3F です。0x3F63)がデフォルト(すべてハイのストラップ)です。

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 が指定されていた場合は再アタッチします。