回答:
主題に関する良い文書は、双方向レベルシフターとして単一のMOSFETを使用するI2Cバスおよび他のシステム用の双方向レベルシフターです。
sivuの答えを拡張するために、これは基本的に論理制御されたMOSFETであるいわゆる「バススイッチ」の一般的な使用法です。ディスクリートMOSFETの使用にはいくつかの欠点(寄生容量/容量結合の1つ)があり、適切なMOSFETを選択するのは難しい場合があります。バススイッチは、高速論理回路での使用に最適化されています。
Fairchild、TI、IDT、Pericomなど、いくつかのメーカーがそれらを製造しています。見てくださいNC7SZ384を。
とりわけ、次のappnoteを参照してください。
多くのArduinoには3.3 Vで実行するためのオンボードサポートがあります。実際には、すべてが3.3 Vで実行でき、FTDIチップの回路図では例で説明しています。Teensy USB Arduinoを作ったPaulは、USBケーブルを開いて接続し、ケーブルのV CCラインの代わりに3.3 Vの電圧を供給することを提案していました。これを試すことができます。しかし、他のオプションもあります。
最後に、Chiphackerでこれについて電圧降下の単方向および双方向ソリューションについて興味があるかもしれない議論があります。todbotが言及したSparkFun に関するこの記事は、SparkFun からリンクされている双方向整流MOSFETの記事に関する議論と同様に有用です。SparkFunの記事を要約するには:
レベルシフトI2C専用のICがあります。
設計にどのような制約があるのかわかりませんが、専用のICを使用する方が、独自のソリューションを考え出すよりも簡単だと思います。