pca9674a --- I2C エキスパンダードライバ¶
pca9674a モジュールは、NXP PCA9674A 8ビット準双方向 I/O エキスパンダー用のドライバを提供します。このチップは、I2C 経由で8ビットの I/O ポートと、入力ピンの状態が変化するたびにパルスを発するアクティブロウの INT ラインを公開します。
各ピンは 準双方向 です。1 を書き込むとピンが弱い内部プルアップに解放され、外部ドライバがロウに引き下げられる入力として動作します。0 を書き込むとピンが能動的にロウに駆動されます。個別の方向レジスタはなく、PCA9674A.read() は最後に書き込まれた内容に関係なく、すべてのピンの現在の外部レベルを返します。
7ビットの I2C アドレスは、A0 / A1 / A2 ストラップピンに応じて 0x38 ~ 0x3F です。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 アドレス(0x38~0x3F)です。デフォルトは0x3Fです。callbackは、いずれかのピン状態が変化したときにirq_pinの立ち下がりエッジで呼び出されます。唯一の引数としてPCA9674Aインスタンスを受け取ります。新しいピン状態はread()で読み取れます。ポーリングで使用する場合はNone(デフォルト)を渡してください。