3.3Vの入出力を5Vの入出力にインターフェースするICはないでしょうか?主にArduino Dueのために必要なのですが、そのような双方向に動作するICがあれば最高です。
SN74AHC125やCD4050というICを使うようにとアドバイスされた方もいらっしゃいましたが、仕組みやインターフェースの仕方がよくわかりません。
N-mosfet1個で非常にシンプルな双方向レベル変換器を作ることができます。
画像の説明を入力してください]1。
使用するMOSFETは、Vgsスレッショルドが低いモデルで、目的の入力電圧レベル(この場合は3.3V)で比較的低いRds-ON(オン抵抗)を持つことができるようにする必要があります。
BSS138の例では、Vgs-thが1.5v maxで、Vgs電圧が2.5vと低くてもドレイン-ソース抵抗が低い仕様になっています(もう少し低い場合もあるかもしれません)。
この例では3.3v <-> 5vの変換を使用していますが、2.5v <-> 3.3v や 2.5v <-> 5v、さらには 2.5v <-> 12v でも動作させることができます。この範囲は使用するモスフェットの特性によってのみ制限されます。
この回路は、NXPのアプリケーションノートに基づいています。 AN97055 I2Cバスおよびその他のシステム用双方向レベルシフタ I2Cバスおよびその他のシステム用双方向レベルシフタ 新しい短縮版です。AN10441 I2Cバス設計におけるレベルシフティング技術
L1がHigh(3V3)またはフローティングの時、R1はモスフェットをオフにしておくので、R2はドレイン側をHigh(5V)に引き込む。
L1がLowになると、モスフェットが導通し、ドレインがLowになる。
H1にローレベル(0)が印加されると、その電圧は基板ダイオードを介してソース側(L1)に伝達される。
抵抗の大きさが速度に影響することに注意してください (画像ソース)
画像の説明を入力してください]2。
トランジスタの代替案](http://www.hagtech.com/pdf/translator.pdf) 画像の説明を入力してください]3 。
あなたが見つけることができる関連記事:。
複数の電源電圧を使用するシステムでレベル変換器を購入する必要はない - EDN](http://edn.com/design/analog/4318916/Don-t-pay-for-level-translators-in-systems-using-multiple-power-supply-voltages)
3V Tips 'n Tricks - Microchip](http://ww1.microchip.com/downloads/en/DeviceDoc/chapter%208.pdf)
もう一つ考慮すべきは,レベルシフトが本当に必要かどうかです。多くのチップは、3.3のような低い電圧で動作していても、5Vトレラントの入力ピンを持っています。また、atmega CPUは0.6*Vcc以上、つまりArduinoの場合は3V以上をロジックハイと解釈するので、3.3Vの信号はレベルシフトなしでArduinoのピンを直接駆動することができます。
5VのArduinoで3.3Vの部品と通信する場合、部品が5V耐性の入力を持っていれば(最近は多くの部品がそうです)、それを接続すれば動作します。i2cのようなオープンコレクタの双方向通信の場合、プルアップ抵抗を5Vではなく3.3Vに接続すれば、そのまま動作させることができます。
抵抗とツェナーを使えば、Arduinoのラインに抵抗を入れて、ツェナーで電圧を3.3Vにクランプすることができます。ツェナー抵抗のクランプ1。 (source:repetae.net
危険な生活をしていると、10kの抵抗だけを使って何もしないという誘惑に駆られるかもしれません。これは、受信チップの中にクランプダイオードがあり、余分な電圧をVccまたは3.3Vにシャットアウトしているからです(たまにですが)。このダイオードは、あなたがそれを介して3.3Vライン全体を5Vに引き上げようとすると(そのラインを5Vに引き上げることによって生じるいかなる損害に加えて)、しかし抵抗であまり電流が流れないと3.3Vラインがそれに非自明な負荷を持っていると仮定すると、あなたの電源ラインのレベルを大幅に変更しません&#39注意事項がたくさんあります。一般的には、ローカルで絶縁された3.3Vバスがあり、ツェナーのための2セントの追加費用を惜しまない限り、この方法は使わないでください。ebayで手に入る安物のブレークアウトボードの回路図を見て、真似したくなるかもしれませんから、これだけは言っておきますが、ブレッドボードから製品設計に持ち込まないでください。)
**ツェナー抵抗のトリックはまだ動作しますが、どうやらi/oラインのいくつかは5Vトレラントである可能性があります。teensy 3.1は、すべての5Vトレラントピンを持つ小さなARMボードで、Dueの半分以下のコストで、IMHOのより良い設計です http://www.pjrc.com/store/teensy31.html 。
最もシンプルな解決策は、すべての回路を3.3Vで動作させることです。HCチップはそのレベルで喜んで動作します。
それが不可能な場合、一方向に限定すれば、物事をよりシンプルにすることができます。5VのHCTチップは3.3Vでも問題なく動作しますし,単純な2抵抗の分圧器で5Vを3.3Vに落とすことができます.uCの中には5V耐圧のものもあり,その場合は分圧器は不要になります.また、ピンに5Vのプルアップを付けて、グランドとオープン(=入力)を切り替えれば、0-5Vの出力として成立します。
オープンコレクタのバス(I2Cやダラス1線)をカップリングするには、BS138のトリックが有効です。I2C用の小型チップで、2つのFETを1つの筐体に収めたものがあります。(PCA9306など)
しかし、もし本当に双方向のレベル変換が必要なら、そのようなチップも存在します(例えば、TXB0108など)。