オープンドレインとオープンコレクタ
オープンドレインとは
オープンドレインは、デジタル回路における出力方式の一つである。
出力信号がドレイン(出力トランジスタ)を通して外部に接続された抵抗によってプルアップされる回路を指す。
出力信号がLowレベルの場合は、トランジスタがOFFになり、外部に接続された抵抗によって信号がHighレベルに引き上げられる。
出力信号がHighレベルの場合は、トランジスタがONになり、外部抵抗を通じた電流が流れなくなるため、信号はHighレベルに保たれる。
オープンドレインは、CMOS回路などで使用されることが多い。
オープンドレインは、デジタル回路における出力方式の一つ。
出力信号がドレイン(出力トランジスタ)を通して外部に接続された抵抗によってプルアップされる回路を指す。
出力信号がLowレベルの場合は、トランジスタがOFFになり、外部に接続された抵抗によって信号がHighレベルに引き上げられる。
出力信号がHighレベルの場合は、トランジスタがONになり、外部抵抗を通じた電流が流れなくなるため、信号はHighレベルに保たれる。
オープンドレインは、CMOS回路などで使用されることが多い。
オープンドレインの利点
出力信号の安定性が高く、外部のノイズなどに影響されにくい。
出力の制御が容易であり、多様な機能を実現することができる。
外部に抵抗を接続することで、複数の信号を共有することができる。
オープンドレインの欠点
出力信号がLowレベルの場合に限り、外部抵抗によってHighレベルに引き上げる必要があるため、回路全体の消費電力が大きくなる可能性がある。
出力信号のスピードが遅くなるため、高速な信号処理が必要な場合には不向きである。
マイコンにおけるオープンドレイン
マイコンにおいても、オープンドレインの設定が可能である。
ポートの設定によって、出力をオープンドレインにすることができる。
デジタル信号の入力や出力に使用されることが多い。
オープンドレインとオープンコレクタの違い
出力方法の違い: オープンドレインは、トランジスタを使ってドレイン(出力側)を接地に接続することで信号を出力するため、出力が0V(Low)か非常に高いインピーダンスの状態(High-Z)になります。一方、オープンコレクタは、トランジスタを使ってコレクタ(出力側)をVccに接続することで信号を出力するため、出力がVccか高いインピーダンスの状態になります。
使用用途の違い: オープンドレインは、出力が0V(Low)の状態で外部回路に接続された場合に回路が閉じられる(ON)ため、I2C通信やGPIOの入出力ポートとして使用されます。一方、オープンコレクタは、出力がVccか高いインピーダンスの状態になるため、外部にプルアップ抵抗を接続することで、トランジスタのON/OFFによって回路を制御することができます。また、マイコンと直接接続せず、他のICとのインタフェースを提供する場合にも使用されます。
出力の信頼性の違い: オープンドレインは、外部回路との接続によって信号を形成するため、信号の位相が反転する場合があります。また、トランジスタの故障などによって出力が固定されてしまうことがあります。一方、オープンコレクタは、プルアップ抵抗によって出力が安定するため、信号の位相反転が起こらず、トランジスタの故障によって出力が固定されることはほとんどありません。
応用例の違い: オープンドレインは、I2C通信やGPIOポートの入出力として広く使用されます。一方、オープンコレクタは、ディジタル信号の集積回路(IC)間の通信や、アナログ信号をデジタル信号に変換するADCの入力回路など、様々な用途で使用されます。
(a) オープンコレクタとは
トランジスタのコレクタを共通の出力端子に接続し、そのコレクタが接続された回路の信号を制御する回路のことを指します。出力が"Low"の場合、トランジスタのコレクタと共通端子との間に抵抗が挿入されているため、出力端子に接続された回路には電圧がかかりません。出力が"High"の場合は、トランジスタがオフ状態となり、出力端子に接続された回路には外部から電圧がかかります。
オープンコレクタは、トランジスタのコレクタを共通の出力端子に接続する回路のことを指します。
出力が "Low" の場合、トランジスタのコレクタと共通端子との間に抵抗が挿入されているため、出力端子に接続された回路には電圧がかかりません。
出力が "High" の場合、トランジスタがオフ状態となり、出力端子に接続された回路には外部から電圧がかかります。
オープンコレクタは、複数のデバイスを同じ回路に接続する場合に有用で、共通の出力端子を介してそれらのデバイスを制御できます。
オープンコレクタの回路には、プルアップ抵抗やプルダウン抵抗を追加することができます。これらの抵抗は、出力信号を安定化するために使用されます。
(b) オープンコレクタの利点
複数の出力信号を1つの入力信号に集約することができる点です。また、外部から入力信号を与える場合には、入力側の回路に電圧レベルを合わせる必要がないため、入力回路の設計が簡略化されます。
複数の出力信号を1つの入力信号に集約することができます。複数のデバイスを同じ回路に接続する際に、共通の出力端子を介してそれらのデバイスを制御することができます。
出力信号が "Low" の場合、トランジスタのコレクタと共通端子との間に抵抗が挿入されるため、出力端子に接続された回路には電圧がかかりません。これにより、出力側の回路に直接電源を供給することなく、複数の回路を制御することができます。
入力側の回路に電圧レベルを合わせる必要がないため、入力回路の設計が簡略化されます。外部から入力信号を与える場合に、入力回路の保護や電圧レベルの変換を行う必要がなくなります。
オープンコレクタは、比較的簡単な回路で実現できるため、回路の構成が簡単化されます。また、出力回路の負荷に合わせて適切な抵抗値を選択することで、出力信号の電流や電圧を調整することができます。
(c) オープンコレクタの欠点
出力信号が"High"の場合でも外部から電圧がかかるため、負荷回路の消費電流が増加し、ノイズが発生する可能性がある点です。
出力信号が "High" の場合でも外部から電圧がかかるため、負荷回路の消費電流が増加し、ノイズが発生する可能性があります。出力信号が "High" の状態でも、共通端子にはトランジスタのベース電圧分だけ電圧がかかるため、外部回路に流れる電流が増加します。
出力信号の電圧レベルが一定でなく、ロードによって異なるため、ロードに合わせた設計が必要となります。例えば、ロードが低インピーダンスの場合には、出力電圧が低下するため、トランジスタの消費電力が増加します。
出力信号が "Low" の場合、共通端子には抵抗によって定電圧がかかるため、負荷回路に流れる電流が制限されます。一方、出力信号が "High" の場合には、共通端子にはトランジスタのベース電圧分の電圧がかかるため、負荷回路の消費電流が制限されません。
オープンコレクタを使用する場合、負荷回路の入力側にプルアップ抵抗を必要とするため、回路全体の部品点数が増加します。また、プルアップ抵抗の値を選択することが重要であり、値が小さい場合には消費電力が増加し、値が大きすぎる場合には信号の立ち上がり時間が遅くなる可能性があります。
(d) マイコンにおけるオープンコレクタ
内蔵されたトランジスタを利用して、GPIOの出力を制御します。マイコンには、オープンドレインやプッシュプル出力など、他の出力方式も存在しますが、オープンコレクタは、複数のデバイスを接続して制御する場合に利用されることが多いです。また、外部からの入力に対しては、プルアップ抵抗などを使用して電圧レベルを合わせる必要があります。
マイコンの出力には、オープンドレインモードとオープンコレクタモード以外にも、プッシュプルモードがあります。プッシュプルモードは、マイコンの出力ピンが直接電圧を出力するモードで、オープンドレインモードやオープンコレクタモードとは異なり、出力ピンが高レベルの時には電圧を出力し、低レベルの時には電圧を出力しないため、高速な信号伝送が可能です。ただし、プッシュプルモードでは、出力ピンに対して過大な負荷がかかると、出力ピンが破損する恐れがあるため、適切な負荷容量に注意する必要があります。
マイコンの出力の種類には以下のようなものがあります。
プッシュプル出力: マイコンの出力ピンから電流が流れ、出力電圧が高い状態(High)または低い状態(Low)になる。
オープンドレイン出力: マイコンの出力ピンからは、電流は流れず、出力電圧がHighのときはオープン、LowのときはGNDに短絡するようにして接続する。
オープンコレクタ出力: マイコンの出力ピンからは、電流は流れず、出力電圧がHighのときはオープン、Lowのときはコレクタ(トランジスタのコレクタ)に接続する。
トライステート出力: マイコンの出力ピンからは、出力信号を出力せずに、ハイインピーダンス状態にすることができる。通常は、外部回路との接続を切るために使用される。
PWM出力: デジタル信号をアナログ信号に変換する手法で、矩形波を生成する。デューティ比を調整することで、アナログ的な出力を実現することができる。
アナログ出力: マイコンの出力ピンからは、アナログ電圧が出力される。通常は、DAC(Digital to Analog Converter)と呼ばれる回路を使って実現される。
キャパシタタッチ出力: マイコンの出力ピンからは、内部に接続されたキャパシタの充電・放電を制御することで、外部からのタッチを検知する手法である。一部のマイコンに搭載されている。