オープン ドレイン 出力。 ARMマイコンに内蔵された周辺デバイスの使い方を学ぶ−GPIO 出力編− (2/3)

オープンコレクタ

オープン ドレイン 出力

通常のロジック回路なら、L出力は0V、H出力は ほぼ 電源電圧。 ですが、次段の入力電圧が、この電圧より高い場合は問題です。 0Vと3. 3Vで出力しても、次の入力が0Vと5Vでは3. 3VだとH入力として動かないかもしれません。 このような、レベルシフトに使えますね。 次段が低い閾値なら抵抗で分圧すればよい 出力電流が多くの必要な場合も、使えます。 プルアップ抵抗を介するものの、電源線に繋がるため、多くの電流が流せるわけです。 例えば、リレー駆動とか。 出力によって、LEDが点いたり消えたりします。 7セグメントLEDドライバICなんか、オープンドレイン出力を見かけることも多いと思いますよ。 これは、どんなLEDが付くかわかりませんしね。 オープンドレイン同士なら、出力同士を短絡しても、問題はありませんので、そちらの使い方もあります。 通常出力のものとトランジスタを組み合わせても良いのですが、ICになってれば簡単ですよね。 デジタル回路としてオープンドレインを使うメリットは、 1 複数のICが同じ信号線を駆動しても壊れない。 普通の出力だと、IC-Aが5Vを出力し、IC-Bが0Vを出力すると、その間で大電流が 流れてICが壊れてしまいますが、オープンドレインだと0Vしか出力しないので 大丈夫です。 どれか1つがLowを出力したらLowレベルになる動作となります。 バスの割り込み信号線などで使用されます。 2 違う電源電圧に対応できる。 3V系のICから5V系のICに信号を伝達するとき、そのままつなぐとHighレベルの 電圧が足りません。 逆に5Vから3. 3Vにつなぐと過電圧で壊れたりしますが、 オープンドレインを使えば、プルアップ抵抗の接続先を、後段ICの電源電圧に 合わせるだけで問題を解決できます。 3 電気的に絶縁する方法として使われることがある。 電子回路からデジタル信号を出力する時、電気的安定性を確保する目的で、電子回路内部と 外部を電気的に絶縁する必要がある場合があります。 そういう時はフォトカプラという素子を使って 絶縁するのが一般的なのですが、フォトカプラの出力をそのまま出力に出すとオープンドレイン形式 になります。 デメリットは遅い事です。 Lowを出力しているとき、プルアップ抵抗経由で電源から電流を吸い込む事に なりますので、プルアップ抵抗をあまり小さく出来ません。 その一方、プルアップ抵抗を大きくするとHigh側への駆動能力が小さくなるので、 信号電圧の立ち上がり時間が長くなってしまいます。

次の

AR# 1651: ザイリンクス デバイス I/O をオープン ドレイン (オープン コレクター) としてコンフィギュレーションする方法

オープン ドレイン 出力

解決策 まず、デバイスのユーザマニュアルを確認して、デバイスがプッシュプル(アクティブ駆動またはソース、ソーシングとも呼ばれる)、およびオープンドレイン(オープンコレクタまたはシンク、シンキングとも呼ばれる)に対応しているかどうかを確認する必要があります。 ユーザマニュアルには、デバイスのデフォルト状態も記載されています。 メモ: 一部のNI-DAQデバイスをシンクまたはソースとして設定することはできません。 デジタルラインの正しい配線の詳細については、デバイスのユーザーマニュアルを参照してください。 次に、オープンドレインについて簡潔に説明します。 オープンドレイン(MOSFET)またはオープンコレクタ(バイポーラトランジスタ、BJT)は、プルダウンまたはプルアップ抵抗を1つ使用してデジタルラインのハイとローを切り替えるための回路です。 回路には、基本的にグランドへのパスまたは5 Vへのパスを持つ抵抗があります。 そのため、トランジスタがオフのときに、ラインが高電位または低電位に浮動します。 プルアップ抵抗のあるBJTを使用するケースを検討してみます。 ハイの間、BJTのベースは0 Vです。 これは、ラインを5 Vにプルアップすることによってハイに引き上げられるBJTで開回路になります。 高インピーダンス負荷で全負荷にわたって5 Vに見えるはずです(プルアップは4. ローの間、BJTのベースは5Vが生成されます。 これは、回路をグランドに短絡し、プルアップ回路から直接グランドに流れる電流となります。 よって、負荷にわたって0 Vです。 プッシュプルは、アクティブ駆動も併用するため大きく異なる動作をします。 この回路は、ハイとロー論理間を決定するために2つのトランジスタを使用します。 この回路では、基本的に1つのNPNでもう1つがPNPである2つのBJTがあります。 回路図は以下のとおりです。 図2の回路図に示すとおり、5 Vとグランド間の出力を駆動するのに使用されます。 Vinがローのとき、下側のBJTはONで上側のBJTがOFFとなり、負荷にわたって0 Vとなります。 Vinがハイのとき、上側のBJTはONで下側のBJTがOFFとなり、負荷にわたって5Vとなります。 メモ: NI-USB 6008は、常にオープンドレインの出力駆動タイプであり、プッシュプルに変更することはできません。 NI-DAQmxを使用してプッシュプルタイプに設定する LabVIEWでチャンネルプロパティノードを使用してデバイスのさまざまなチャンネルを構成することができます。 右クリックしてすべてを書き込みに変更を選択し、DO. オープンコレクタの項目はオープンドレインに相当し、アクティブ駆動はプッシュプルに相当します。 LabVIEWで、このDO. OutputDriveType チャンネルプロパティは、異なる出力駆動タイプをサポートするデバイスに参照されない限り表示されません。 また、DAQmxチャンネルプロパティを右クリックしてフィルタを選択... からすべての属性を表示を選択すると、必須チャンネルリファレンスが提供されていない場合でもプロパティを見ることができます。 この機能は、NI-DAQmxドライバでプログラミングできるLabWindows CVI、Microsoft Visual Studio、および他の言語でも同様に動作します。 必要な関数を使用するには、DAQmx APIヘルプで「Output Drive Type」と検索してください。 NI-DAQmx Baseを使用してプッシュプルに設定する NI-DAQmx Baseを使用している場合は、NI-DAQmx Base Configuration Utilityでこのプロパティを設定することが可能です。 NI-DAQmx Baseでは、出力起動タイプをプログラム的に設定する方法はありません。 出力駆動タイプを変更する手順は以下のとおりです。 Create New Taskを選択します。 タスクを作成した後に Voltageタブを選択します。 Voltageタブには、DIO Voltage Levelオプションがあります。 オープンドレインにするには、0-5Vオプションを使用します。 プッシュプルにするには、0-3. 3Vオプションを使用します。

次の

AR# 1651: ザイリンクス デバイス I/O をオープン ドレイン (オープン コレクター) としてコンフィギュレーションする方法

オープン ドレイン 出力

ハードウェアエンジニア嶋田 です。 今日もソフト屋さんによく質問される、電子工作をかじると避けては通れない「プルアップ、プルダウン抵抗」について解説していきたいと思います。 2つの信号出力形態 プルアップ、プルダウン抵抗についてお話する前に、ICがデジタル信号を出力する際の2つの出力形態について知っておく必要があります。 ひとつは プッシュプル出力、もうひとつは オープンドレイン(もしくはオープンコレクタ)出力 です。 下図にその違いを書きました。 簡易化のため厳密な回路ではなく、動作が同じであるスイッチ(SW1, SW2, SW3)に置き換えて表現しています。 プッシュプル 上図左をごらんください。 スイッチが2つ接続された構造になっています。 SW1がオン(ショート)になると、出力信号=Vcc(電源電圧)となるためHIGH信号(以下 Hと表記)になります。 他方、SW2がオン(ショート)になると、出力信号=GND 0V になるためLOW信号(以下 Lと表記)になります。 SW1とSW2が同時にオンになることはありません。 オープンドレイン 上図右のようにプッシュプルからSW1を削除したものです。 SW3をオン(ショート)することで、出力信号を Lにできます。 SW3がオフ(オープン)のときは、どこにもつながっていないので、 Hでも Lでもない 不定状態(Hi-Z: ハイインピーダンス)です。 「え、 Hはどうするの?」 ということで、登場するのがプルアップ抵抗です。 プルアップ抵抗は下図R1のようにICの外で、出力信号とVcc(電源)を繋ぐように回路設計者自身が配置します。 動きを改めて見てみると、SW3がオフ(オープン)のときはR1に電流が流れないため、R1での電圧降下はなく出力信号=Vccとなり、 H出力となります。 他方、SW3がオン(ショート)のときは、GNDと出力信号がショート状態のため、 L出力となります。 なお、ICのデータシートには必ず出力信号がプッシュプルかオープンドレインかの記載があります。 オープンドレインであれば、 必ずプルアップ抵抗をつけるということを頭においてください。 データシート引用: オープンドレインの存在意義 「抵抗を追加する必要のないプッシュプルがあれば、オープンドレインなんていらないでしょ」 と、思われるかもしれません。 しかし、よく使う活用法として ワイヤードOR、 レベルシフタがあります。 ワイヤードOR ワイヤードORは下図のように信号の出力同士を直接結線してロジックを作る手法です。 下図左はプッシュプルの出力同士を直接結線した場合ですが、IC1が H(SW1-1をオン)でIC2が L(SW2-2がオン)を同時に出そうとするとIC1の電源からIC2のGNDがショートしてしまいます。 逆にIC1が L、IC2が Hでも同様です。 オープンドレインの場合はどうでしょうか。 下図右のようにIC1が Hi-Z(SW3-1をオフ)、IC2が L(SW3-2をオン)を同時に出しても、プルアップ抵抗R1を介して電源から電流が流れるためショート状態になることはありません。 真理値表を見ると、どちらか一方が Lを出力しようとすると出力はLになります。 これはOR(ただし負論理)なので、ワイヤードORと呼ばれており回路ではよく使われます。 レベルシフタ ICで出力した信号は、別のICに入力するのが普通です。 そこで通常はIC同士の電源電圧を同じに揃えるようにするのですが、ICの仕様でどうしても同じ電圧にできないことがあります。 その際に使用するのがレベルシフタと呼ばれる電圧レベルを合わせる回路です。 下図をご覧ください。 出力側IC1の電源が5V, 入力側IC2の電源が3. 3Vと仮定します。 左のプッシュプルで H出力をした場合、IC2の入力端子には5Vの電圧が印加されてしまい、IC2の電源電圧3. 3Vを超えるためIC2の動作不良を引き起こします。 そこで下図右のように出力側をオープンドレインにし、その信号のプルアップR1にIC2と同じ電圧を使います。 こうすると H出力の電圧は3. 3VとなりIC2と電圧レベルが揃いますので、問題がおきません。 プッシュプルとプルダウン抵抗 プルアップ抵抗については既にお話しましたが、オープンドレイン出力の際に Hを出すための外付け抵抗でした。 プルダウン抵抗はプッシュプル出力とセットで使います。 プルダウン抵抗は電源を投入した直後や電源を落としたときに効果を発揮します。 下図左はプルダウン抵抗なしのとき、右はプルダウン抵抗ありのときです。 回路に電源を入れると人間の感覚では一瞬で電源が入ったように思いますが、"電気的"にはmsecなどの時間をかけてゆっくりと立ち上がります。 プッシュプル出力の場合は、ICに電源が入るまえはSWを制御することができないため、出力信号は電源にもGNDにもどこにも接続されていない 不定状態(Hi-Z:ハイインピーダンス)となります。 不定状態は Hとも Lとも分からない曖昧な状態なので、その瞬間は意図しない動作不良を起こすことがあります。 また、出力側ICがマイコンなどの場合は、電源電圧が印加された後にプログラムを読み込んで動作を開始するまでの遅延時間(下図左のTdelay)が存在するので、その不定状態が長く続くことがあります。 そこで、下図右のように出力信号に抵抗値R2をつけてGNDと接続します。 そうするとIC1のSWが制御できていない状態でも、信号がR2を介してGNDと接続されているため、出力信号は L(GND)と確定します。 こうすることで曖昧な不定状態を回避することができます。 プルアップ抵抗は、抵抗値を低くすると"消費電力"が増え、抵抗値を高くすると"ノイズやリーク電流による誤動作"のリスクが増えます。 趣味の電子工作であれば消費電力を気にすることはないでしょうから低めに設定しておけば間違いないです。 "抵抗値を高くするとノイズに弱い"から分かるように、プッシュプルとオープンドレインだとプッシュプルのほうが原理的にノイズに強いという特徴を持ちます。 プルダウン抵抗は、低くすると消費電力が増えるばかりか、通常動作にも影響を与えてしまうので私は高めに設定します。 まとめ 色々と書きましたがここで理解していただきたいことは、下記3点かなと思います。 信号出力にはプッシュプルとオープンドレインの2種類あり、どちらの出力形態かはデーターシートを読めばわかる• オープンドレインの場合は、プルアップ抵抗を必ずつけること•

次の