前回は簡単で方向制御も要らない回路でした。しかし、ハイへの遷移はプルアップ頼みなので速度的にはあまり速くできそうにありませんでした。今回はレベル変換専用のIC、オンセミFXMA108を使ってみます。方向制御お任せ、それでいて3.3Vと5V間であれば100Mbpsの信号を通せる、と。性能ダンチというやつ。
※「部品屋根性」投稿順Indexはこちら
今回使用してみたFXMA108というチップは、業界の老舗中の老舗、フェアチャイルド社の製品だったみたいです。大分前にフェアチャイルドはオン・セミコンダクタに買収されたので、現在はオンセミ印になっています。製品ページは以下に。
シンプルな石で
-
- 2電源、VCCAとVCCB
- GND
- OE(出力イネーブル、ロウアクティブ)
- ポートA、8端子、ポートB、8端子
という構成です。VCCAとVCCBに2つの電圧を与えるのですが、1.65Vから5.5Vまでの電圧をAでもBでも与えられます。そしてそれぞれの電圧に適合する信号をポートAなりポートBなりに接続します。アウトプットイネーブル(この端子はVCCA側の電圧にあわせる)がハイであると、どちらのポートもハイインピーダンスとなり、ロウであると、AからBまたはBからAと信号の伝達方向を勝手に判断して出力をイネーブルにしてくれます。この信号の伝達方向の切り替え方法については良く分からなかったですが駆動側の電流など監視しているのかな、という感じ。
注意点としては、外部にプルアップ抵抗などつけるなと書かれています。電圧をホールドする回路を内蔵しているから不要とありますが、多分、方向の切り替えロジックの関係もあるのかな、と想像してます。
なお、出力は一瞬だけ大電流(30mAくらい)用のトランジスタで高速に電圧をだいたい定めたあと、ホールド用の弱いトランジスタに切り替えているようです。この辺も良いんでないでしょうか。
パッケージはDQFNです。足もないので手半田などできませぬ(私にはできません。)ブレッドボードに刺すために、例によって秋月電子殿の以下のDIP化モジュールを使わせていただいております。
実験回路
実験では、VCCAに3.3V、VCCBに5Vを与え、A0に3Vの信号、B0に5Vの信号という構成で
-
- A0に3Vの矩形波を与えたときにB0に5Vの波形が出力される
- B0に5Vの矩形波を与えたときにA0に3.3Vの波形が出力される
という2ケースを動作させてみました(VIHの規定は電源電圧*0.65なので3.3V電源で3Vの信号は問題ないっす。)A0もしくはB0に与えるW1波形と連動させて、もう一本の信号W2をOEに与えています。こちらはVCCA側なので3Vの信号です。これがHIGHの間は出力はイネーブルにならないのでドライバはHiZ状態。これがLowになっている期間はAからBなり、BからAなりに信号が通る、という目論見です。波形ジェネレータの設定が以下に。
実験1、3.3V側から5V側へ
3.3V(A)側に信号W1(Highのとき3Vに設定)を与えた時の波形が以下に、黄色C1がA側、青色C2がB側です。W2でOEを制御しているので、OEがアクティブの期間はレベル変換された信号が通り、OEがインアクティブな期間はHiZ(実際にはHighレベルが維持されて見えている)になっている様子が見てとれます。
実験2、5V側から3.3V側へ
5V(B)側に信号W1(Highのとき5Vに設定)を与えた時の波形が以下に、黄色C1がA側、青色C2がB側です。青が前に来ているのでちょっと見難いですが、先ほどと同様、OEがアクティブの期間はレベル変換された信号が通り、OEがインアクティブな期間はHiZ(実際にはHighレベルが維持されて見えている)になっている様子が見てとれます。
入力信号を与える端子をAからBに付け替えただけで、後は何もしていないのですが、ちゃんと信号を伝達すべき方向を検出して切り替えてくれています。スピードも速いし便利だな。