双方向5v-3.3vレベルシフターはありますか?


27

3.3V入力/出力を5V出力/入力にインターフェースするICはありますか?主にArduino Dueのために必要ですが、そのように動作する双方向ICがある場合は素晴らしいでしょう。

SN74AHC125およびCD4050 ICを使用するように勧められた人もいますが、それらがどのように機能するか、またはそれらとどのようにインターフェイスするかがわかりません。


2
意図した周波数範囲は何ですか?
alexan_e 14年

1
たとえば、5Vデバイスを3.3V arduinoに接続するとします。5V出力と3.3V入力をどこに接続するかわかりませんでした。そして、例えば5Vデバイスにarduinoから3.3Vを出力するのはどうですか?周波数範囲とはどういう意味ですか?
3bdalla 14年

1
私はあなたのポイントを得たかどうかわかりません、私は以前に周波数を扱ったことがありません、私の目的は単純な電子機器のためです:
3bdalla 14年

3
sparkfunは、ボードを持って、その「レベル変換器」と呼ばれる
geometrikal

1
通常、テキサス州の楽器のICを使用しました。TXSおよびTXBシリーズには双方向電圧変換器があります(たとえば、TXS0102には2つのチャネルがあります)
frarugi87

回答:


44

単一のN-mosfetを使用して、非常に単純な双方向レベルトランスレーターを作成できます。

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

使用するMOSFETは、目的の入力電圧レベル(この場合は3.3v)でRds-ON(オン抵抗)が比較的低くなるように、Vgsしきい値が低いモデルにする必要があります。そのような例の
BSS138は、Vgs-thが最大1.5vであり、Vgs電圧が2.5vと低いドレイン-ソース抵抗を持つように指定されています(わずかに低い場合もあります)。

示されている例では3.3v <-> 5v変換を使用していますが、2.5v <-> 3.3vまたは2.5v <-> 5v、2.5v <-> 12vの間でも動作します。範囲は、使用するMOSFETの特性によってのみ制限されます。

示されている回路は、NXP
AN97055 I2Cバスおよびその他のシステム用の双方向レベルシフターのアプリケーションノートに基づいています。
新しい短縮バージョン:AN10441 I2Cバス設計のレベルシフト技術

L1がハイ(3v3)またはフローティングR1の場合、MOSFETはオフのままなので、R2はドレイン側をハイ(5v)に引き上げます。

L1がローに引き下げられると、MOSFETが導通し、ドレインがローになります。

低レベル(0)がH1に印加されると、その電圧は基板ダイオードを介してソース側(L1)に転送されます。

抵抗のサイズは速度に影響する可能性があることに注意してください(画像ソース

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

代替トランジスタソリューション ここに画像の説明を入力してください


役に立つと思われる関連記事:


11

質問は双方向レベルシフトを提供するICに向けられているように見えるので、テキサスインスツルメンツのTXB010xファミリのパーツを検討してください。TXB0102には2チャネル、TXB0104には4チャネル、TXB0108には8チャネルがあります。

このICファミリの優れた機能は、信号の方向が自動的に検出されるため、方向設定ピンを別に用意する必要がないことです。

最大10 MHzのスイッチング速度が確実に機能します。理論上の最大速度はより高くなる可能性があります-データシートは、私が決定できることから、これについて明示的ではありません。

3.6ボルトMSP430ラウンチパッドと5ボルトArduino Nanoの間で動作するTXB0108があるので、質問のユースケースがカバーされています。

試してみる目的で、AdafruitはTXB0108を組み込んだビルド済みモジュールを提供します。これにより、SMD部品をはんだ付けする手間が省けます。それらまたは他から0102および0104の同様のオプションがあります。

8チャンネル双方向ロジックレベルコンバーター-TXB0108

TXBシリーズICに理想的には適さないI2C信号のレベルシフトが目的の場合、I2Cのプルアップ抵抗とオープンコレクタトポロジに特に対処するオプションは、Adafruitが販売しているこのようなモジュールですおよび他のベンダー。

I2Cレベルシフター

このモジュールは、alexan_e回答で説明されている方法でBSS138 MOSFETを使用します。質問が求めるような単一のICではありませんが、おそらく意図した目的を果たします。あるいは、MOSFETを使用してこの回路を自分で作成するのは簡単です。


+1素敵な検索!... TXB0102へのリンクは、実際にはTXS0102へのものです。私は違いを判断していませんが、これはTXS0102のデータシートに記載されています。「その主なターゲットアプリケーションの使用は、データがTXS0102はプッシュプルドライバーがデータI / Oに接続されているアプリケーションでも使用できますが、TXB0102はそのようなプッシュプルアプリケーションにとってより良いオプションです。ここに実際のリンクですTXB0102
ツタンカーメン

@Tutおっと、スリップアップ、ありがとう。私自身のニーズはTXB0108で満たされているので、他の人は私にとって「知っておくべき」ものです。:
アニンドゴーシュ14年

10

考慮すべきもう1つのことは、実際にレベルシフトが必要かどうかです。多くのチップには、3.3などの低い電圧で動作している場合でも5V許容入力ピンがあります。atmega CPUは、arduinoの0.6 * Vccまたは3Vを超えるものをすべてロジックHighと解釈するため、3.3V信号はレベルシフトなしでArduinoピンを直接駆動できます。

5VのArduinoを使用しており、3.3Vのデバイスと通信する必要があると仮定すると、そのデバイスに5Vの許容入力がある場合(最近は多くのことが行われています)、emを接続するだけで機能します。双方向ラインが、デバイスがラインをローにプルするだけのi2cなどのオープンコレクター設計の場合、プルアップ抵抗を5Vではなく3.3Vに接続するだけで機能します。

それ以外の場合は、ラインが3.3Vを超えないようにする必要があります。抵抗とツェナーを使用して、arduinoラインに抵抗を配置し、ツェナーを使用して電圧を3.3Vにクランプします。(ソース:repetae.netツェナー抵抗クランプ

危険な状態で生活し、10k抵抗器だけを使用するように誘惑されるかもしれません。これが(時には!)動作する理由は、過剰な電圧をvccまたは3.3Vにシャントするクランプダイオードが受信チップ内にあるためです。このダイオードは、3.3Vライン全体を5Vに引き上げようとすると燃え尽きます(そのラインを5Vに引き下げることによって生じる損傷に加えて)。ただし、抵抗器では3.3Vラインを想定してあまり電流は流れません。自明ではない負荷がかかっているため、電力線のレベルは実質的に変化しませんが、多くの注意事項があります。したがって、一般に、ローカルの分離された3.3Vバスがあり、実際にツェナー用に余分な2セントを節約できない場合を除き、これを行わないでください。あなたがebayに乗ってそれをコピーしようとするかもしれない汚れの安いブレイクアウトボードの回路図でそれを見るので、私はそれを言及するだけです ただブレッドボードを越えて本番設計に忍び込まないでください。:)

編集はただ単に私が上記の言ったことを反転させるので、ツェナー抵抗トリックはまだ仕事明らかに起因上に線O I /のいくつかは5Vトレラントかもしれますが、いくつかの意見の相違があるようです、あなたは新しい3.3Vのarduinoのを使用していた気づきましたフォーラムで。teensy 3.1は、すべての5Vトレラントピンを備えた素敵な小さなARMボードでもあり、適切な設計のIMHO http://www.pjrc.com/store/teensy31.htmlの半分以下のコストです


3

安価なソリューション部門では、FET(NXP appnoteに基づいて受け入れられた回答から)は、Silicon Labs AN883のようにBJTおよびショットキーダイオードに置き換えることができます。それらの回路図は他のものとは少し複雑なので、ここで重要な部分を抽出し、2つの回路図を簡単に比較できるように受け入れられた答えのように再配置しました。

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

BJTは、シングルトランジスタレベルアップシフターで説明されているとおり、ロー→ハイ方向にのみ変換を行います。ショットキーはFETのボディダイオードを置き換えて、高→低変換を行います。

以下は、3.3 <-> 1.8V変換器の拡大されたスコープ測定です。彼らはまた、5 <-> 1.8V変換などのためにこの回路図を提案しています。BAS40ダイオードでは、逆方向に350mVの降下がありました。これらのオフセットは、トランスレータのロー側とハイ側のロジックローレベル出力に(明らかに)影響します。

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

両側に素敵なCMOSデバイスがあったので、入力インピーダンスはさほど問題ではありませんでした。1V / divトレースのロジック高マージンの目に見える劣化/オフセットはなかったので、ここに含めて気にしませんでした。それらのデバイスの入力インピーダンスは、シミュレーションからわかることから少なくとも1Mohmでした。ロジックハイマージンは、100K入力インピーダンス以下で低下し始めます。

また、このBJTベースのトランスレータは最大300KHz程度しかお勧めしません。

これらのソリューションのどれが実際に安価であるかは分かりませんが、FETまたはショットキー+ BJT ...しかし、これは確かにより多くの部品を必要とします...存在するそれらのダイオード+トランジスタパッケージの1つ、例えばPZMT1101を使用しない限り。ただし、3つの抵抗も必要です。


FETベースの方法と比較した場合、この方法の予想される消費電流/消費電力はいくらですか?
KyranF

@KyranF:私はそれらを比較していませんが、もしあなたがそれを心配しているなら、どちらかがプルアップのためにバラ色にならないでしょう。低電力CMOSバージョンは、m.eet.com / media / 1103155 / Fig2.gifのように見えます。これは、eetimes.com / document.asp?doc_id = 1231111からのもので、さまざまなアプローチを比較した優れた記事です。
フィズ

リンクをありがとう。BJTアプローチは、ベースが飽和しているときと比較して非常に高い電力になると思います。プルアップ抵抗の一定の負荷は、設計、特にバッテリー駆動の設計では確かに心配です。
KyranF

@KyranF:私はシミュレーションでそれを見ました:トランジスタとダイオードはuWの電力を消費し、抵抗器はmWを消費します。実際、BJTは約100uW、ダイオードは1uWを消費します。ここでは、FETやBJTは重要ではありません...静電気を放散するためのグランドへのパスを持つ抵抗が重要です。これは1Megの入力インピーダンスを使用しています。
フィズ

@KyranF:ONのBSS138LT1モデルを使用してみましたが、LTspiceで負の平均電力分散(-63uW)が得られるため、モデルに問題があると思います。ガベージイン...ガベージアウト。また、ハイサイドから駆動されると(信号よりもはるかに高い周波数で)発振し始めました。これは、単純なMOSモデルではなく、サブモデルです。したがって、何が起こっているのかを把握するのは困難です。[続き]
フィズ


2

また、優れた電気的絶縁と双方向レベルシフト機能を探しているなら、ISO1541をお勧めします。それはかなり安価であり、分離を通じて良好な保護を提供します。



1

最も簡単な解決策は、すべての回路を3.3Vで実行することです。HCチップはそのレベルで問題なく動作します。

それが不可能な場合は、自分を一方向に制限することで物事をより簡単にすることができます。5VのHCTチップは3.3Vレベルを問題なく受け入れ、単純な2抵抗分割器で5Vを3.3Vに低減できます。一部のuCはピンで5Vに耐性があるため、分周器は必要ありません。また、ピンに5Vプルアップを配置し、グランドとオープン(=入力)を切り替えると、0〜5Vの許容範囲の出力が得られます。

オープンコレクタバス(I2C、ダラス1線)を結合するには、BS138トリックが最適です。1つのハウジングに2つのFETを配置するI2C用の小さなチップがあります。(PCA9306など)

ただし、双方向レベルの変換が本当に必要な場合、そのようなチップが存在する場合は、TXB0108を確認してください。


-4

簡単な解決策は、SN74LVC244ANを使用することです。3V3で給電でき、入力で5Vの耐性があります。


5
それは双方向ではありません。
マットヤング

いいえ、74LVC4245はそうです。
ブレガラド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.