オープンドレインとプッシュプル出力の違い:構成・立ち上がり・ワイヤードAND・用途を比較
どちらもデジタルの信号を出す出力段ですが、Hの出し方が違います。プッシュプル出力は、電源側のpMOSとグランド側のnMOSを組み合わせ、HもLもトランジスタで積極的に出すので、速く、止まっている間は電流もほとんど流れません。オープンドレイン出力はグランド側のnMOSだけを持ち、Lは引き下げますが、Hは出力を切り離してプルアップ抵抗で引き上げます。立ち上がりは遅くなりますが、複数の出力を1本の線につなげ(ワイヤードAND)、プルアップ先の電圧も選べるので、I2Cや割り込みの線に使われます。
| 項目 | プッシュプル出力 | オープンドレイン出力 |
|---|---|---|
| 出力段の構成 | 電源側のpMOSとグランド側のnMOSの2つ(CMOSのインバータと同じ形) | グランド側のnMOSだけ。ドレインが端子に出ていて、電源側には何もない |
| Hを出すしくみ | pMOSがオンになり、端子を電源につなぐ | nMOSをオフにして端子を切り離し(ハイインピーダンス)、外のプルアップ抵抗で引き上げる |
| Lを出すしくみ | nMOSがオンになり、端子をグランドにつなぐ | nMOSがオンになり、端子をグランドにつなぐ(同じ) |
| 立ち上がりの速さ | 速い。pMOSで充電する | 遅い。プルアップ抵抗Rと線の容量Cの時定数RCで決まる(例:4.7 kΩと100 pFで約0.47 µs) |
| 立ち下がりの速さ | 速い。nMOSで放電する | 速い。nMOSで放電する |
| 複数の出力を1本の線につなぐ | できない。HとLがぶつかると、電源からグランドへ大きな電流が流れる | できる。どれか1つでもLを出すと線がLになる(ワイヤードAND) |
| 電圧の違う回路との接続 | Hの電圧は自分の電源の電圧で決まる。違う電圧の回路にはレベルシフタが必要 | Hの電圧はプルアップ先で決まるので、端子の耐圧の範囲で相手の電圧に合わせられる |
| 消費電流 | 止まっている間はほぼ流れない(リーク電流だけ)。切り替えのときに充放電の電流が流れる | Lを出している間、プルアップ抵抗に電流が流れ続ける(3.3 Vと4.7 kΩで約0.7 mA) |
| 速度の目安 | 数十 MHz以上も出せる | プルアップ抵抗と容量で制限される。I2Cでは100 kHz、400 kHz、1 MHzなど |
| 主な用途 | SPIやUARTの信号、クロック、一般のGPIO、メモリのバスなどの速い信号 | I2CやSMBus、複数の部品で共有する割り込みやリセットの線、電圧の違う回路への接続、LEDの駆動 |
数値は代表的な目安で、世代や製品によって異なります。