オープンドレインのマイクロコントローラーポート


9

8051マイクロコントローラーのポートP0のようなオープンドレインポートの概念を理解したいと思います。プルアップ抵抗をポートP0に接続する必要があるのはなぜですか?

MOSFETやその他の電子デバイスの基本的な知識があります。


わかりましたので、私が理解していることは、基本的に他のポートと同じように機能しますが、外部電源を介して電源を供給する必要があります。私は正しいですか?
abkds 2013年

回答:


13

Mosfetの動作方法の詳細を無視します。出力はグランドへのスイッチのように機能します。それだけでは高(+ 5V)信号を生成できません。プルアップ抵抗は、スイッチが開いているときに出力が高くなるように使用されます。スイッチを閉じると、出力は低くなります(0V)

ここに画像の説明を入力してください


9

オープンドレイン(またはBJTの場合はオープンコレクター)の2つの一般的なアプリケーションがあります。

1)複数の出力を同じラインに接続します。これはワイヤードORと呼ばれます。たとえば、デバイスに通常ハイのリセットピンがあり、マイクロコントローラーピンと別のソース(プッシュボタンなど)の両方からリセットされる場合があります。リセットピンはプルアップ抵抗でハイに接続されています。マイクロコントローラは、オープンドレイン出力として構成されています。押しボタンは、押すとグラウンドに接続されます。マイクロコントローラーがその出力を0にするか、プッシュボタンを押すと、デバイスがリセットされます。

マイクロコントローラが出力ピンを1に設定すると、ピンは事実上ラインから切断されます。電圧でラインを駆動(「ソーシング」)していないため、プッシュボタンでラインをグランドに引き下げても短絡は発生しません。

ワイヤードOR構成は非常に便利であるため、マイクロコントローラーのリセット、割り込みライン、フリップフロップなどのデバイスのクリアラインとイネーブルラインなどのピンはすべて「アクティブLOW」です。 、プルアップ抵抗を介して)、およびオープンドレインとして構成されたいくつかのデバイスのいずれかがそれらをローにプルすることがあります。このような入力は通常、信号名の上部にあるバーまたは先行!(!CLR)、または末尾の#記号(CLR#)。

2)異なる供給電圧に接続されたデバイスの制御。20 mAを必要とするが5ボルトの電圧のリレーがあるとします。ただし、マイクロコントローラーの出力は、3.3 Vの電源(VCC)電圧までしかピンを駆動できません。オープンドレイン出力では、リレーの片側を5 Vに接続し、もう一方をマイクロコントローラーの出力ピンに接続できます。のマイクロコントローラの出力が1の場合、何も起こりません(ここでも、ピンが切断されているように動作します)。0に設定すると、リレーの底面が接地され、回路が完成してリレーが動作します。そのようなアプリケーションでは、デバイスの電源が切れたときにマイクロコントローラーへの損傷を防ぐために、リレーコイルの両端に「フライバック」ダイオードを配置することが重要です。

ULN2803(ダーリントントランジスタアレイ)などの出力ドライバーの場合、50 vの高電圧に接続された負荷を駆動し、ロジック互換入力でそれらを制御できます。


a microcontroller can often sink more current (drive to ground) than it can source (drive to the VCC of the microcontroller)それは、現代のCMOSマイクロコントローラーではもう当てはまりません
m.Alin

1
2番目の使用例は、マイクロコントローラーにはめったに当てはまりません。ほとんどの場合、それらのIOピンは接地電力間隔外の電圧に耐えることができません(ただし、一部の低電圧チップは5Vに耐えると主張しています)。一部のMicrochip ucのRA4ピンは例外です(でしたか??)。しかし、2003/2803スタイルのドライバーチップは、2番目の使用例の優れた例です。
Wouter van Ooijen 2013年

MSP430、Atmel AVR、およびPic 16/18の間では、同じ量の電流をシンクまたはソースできない最新のマイクロコントローラーはまだ見ていません。
2013年

m.Alin、Wouter_van_Ooijen、Passerby-コメントありがとうございます。私の回答を編集しました。
tcrosley 2013年

2

オープンドレイン出力は、0Vに接続されたオープンスイッチです。電流を流すには、電流を流す必要があり、これはプルアップ抵抗で行うことができます。ピンに電流を流さないと、電圧を見ることができません:-

ここに画像の説明を入力してください

同じオープンドレイン出力を共有する2つのデバイスがあります。プルアップ抵抗が+ 5Vになっていることに注意してください。実際、この回路は「オープンドレイン」を使用してロジックを実行します。NANDゲートのいずれかが1,1で「アクティブ化」されている場合、バスは0Vにプルダウンされます。したがって、バスに配信されるロジックは

バスの反転= AB + CD

通常のBJTでもこの機能を実行できますが、MOSFETは通常、オープンドレインデバイスとして使用されます。オープンドレイン出力は、通常のCMOS出力を簡略化したものです。グラウンドにターンオンするのは高速ですが、+ Logicへの戻り時に、プルアップ抵抗を介した寄生コンデンサの充電時間のため、遅くなります。

wikiのオープンコレクターは良い読み物です。これはオープンドレインと同じであり、上記の小さな図と同様に記事で言及されています。


0

1)tcrosleyによる回答の最初のポイントを簡略化するために、出力内にプルアップ抵抗を設けないことの利点は、多くの出力間でその非常にプルアップ抵抗を共有できることです。次に、出力が並列に配線され、すべてが共有抵抗とグランドに接続されます。

2)抵抗器(回路図内)の「下」のポイントは、結合された出力が回路の他の部分によって収集される場所です。(もちろん、それは地面と供給に関してすべて逆であった可能性があります。)

3)多くの出力から組み合わせた出力を収集したくない場合(および回路がどこでも同じ電圧供給を使用している場合)、プルアップパーツなしで出力を使用する必要はありません。それ以外の場合は、「不完全な」出力が(ある意味で)提供され、ニーズに合わせてカスタマイズできます。


私はあなたのテキストの壁を番号付きの段落に解析しました。作成した特定の部分やステートメントを読んだりコメントしたりするときに、理解しやすくなります。段落は回答の前後関係の変化から始まります。
Sparky256 2016年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.