入出力ポートのはなし
入出力ポートのはなしとは

上図はTI のI2Cバス制御の I/OエキスパンダIC TCA9555のポート回路です。
右中央の IO Pionとあるのがポートで、Q1は出力用の P-CH FET, Q2は N-CH FETです。
出力ポートのはたらき
反転Q は Lowなので繋がる NAND は他の入力がいずれでも、出力 High になるので Q1はいつも OFF になります。 これが、入力ポート状態になります。
さて、その反対の Q=Lowのときに出力ポートになりますが、その High /Lowは Output Port Registor ラッチで決まります。NANDと NOR を使って、2つの FETをうまく ON/OFF させて出力させます。もう1個ラッチが別にあれば Q1をいつも OFF にして、 OpenDrain 出力ポートに対応することも出来ますね。
入力ポート時は?
また便利な機能として入力割り込み機能がありますが、入力ラッッチの入力と出力を EXORで見ているだけって構成に感心しました。
EXORは2つの入力の極性が違った時だけ High になるので、ポートの極性が変化した時に High (割り込み発生)になり、読んで同じになったら自動的にクリアされるなんてなかなかシンプルでうまい構成ですね。
I2C で2つの8ビットポートを拡張出来るなんてけっこう便利なIC でもありますね。