部品屋根性(70) レベル変換おさらい4、3.3Vと5V間双方向その2、MOSFET利用

Joseph Halfmoon

前回は双方向といっても外部から方向を指定して切り替える方式でした。今回は、方向など指定しなくても大丈夫な方式です。NMOSのFETのゲート電圧に3.3Vを与えたら、通したくても5Vの信号など通らない件を応用?オープンドレインの信号ならば出力信号のバッティングなど考えずに接続できると。簡単。

※「部品屋根性」投稿順Indexはこちら

今回の実験回路

以下の回路の青点線内が「レベル変換回路」です。MOS-FET「スイッチ」のゲートに3.3V電源を与えてます。その右側は5Vの世界、左側は3.3Vの世界。NMOSトランジスタのゲート電圧3.3V以上の右側の電圧は、左の世界には入り込めませぬ。しかし、0V付近、論理レベルがロウの信号は、右から左へでも左から右へでもツーツーっと。BSS138DUT_schematic

よって双方の信号それぞれをそれぞれの電圧にプルアップし、オープンドレインのドライバで駆動してやれば信号レベルの変換はOKっと。

実機実験のブレッドボード回路が以下に。MOSFETにはいつもお世話になっております BSS138 を起用(何気に大量に在庫があるのよ。)

BSS138DUT

オープンドレインの端子に適合する方法なので、まず考えつくのが

I2Cバス

のレベル変換への活用です。プッシュプルの端子の場合、3.3V系の端子に5Vがかかることは無いにせよ、何も制御しないでハイとローがぶつかるととてもな電流が流れる上に何だか分け分からなくなります。出力通しがブツカルような事態が勃発するように、外側で制御するか、いっそ単方向に縛ってしまえば利用は可能かと思います。

実機実験

実機実験は、電源電圧5V側のオープンドレインのドライバ、電源電圧3.3V側のドライバそれぞれに 1kHzの矩形波パルスを与えて行いました。5V側は、0Vから4.5V、3.3V側は0Vから3.3Vの電圧波形です。同期させて駆動しているので、見かけ上は1kHz内に以下の4パターンある動作をするはず。想定する動作パターンは以下のとおりです。

    • 両側ON、信号レベルはロー
    • 5VON、3.3VOFF、5V側のドライバのローが3.3V側にも伝播
    • 5VOFF、3.3VOFF、両方OFFなのでプルアップ抵抗により、5V側は5V、3.3V側は3.3Vとなる
    • 5VOFF、3.3VON、3.3V側のドライバのローが5V側にも伝播

実験結果

上記設定の実験結果が以下に。黄色C1が5V側、青色C2が3.3V側。1kHz周期の250μs期間毎(両側ドライバOFFの状態)に約5Vと3.3Vのハイが見えており、他はロウです。基本動作は確かめられたかな?

WaveForm1kHz

1kHzでの実験は予定どおりですが、弱点を突いてみたのがこちら。周波数を100kHzと100倍にしてみました。

今回の実験回路のプルアップ抵抗は10kΩとかなり大きいので、トランジスタ(オン抵抗は数Ω以下)と比べるとゆるゆるとしか上がりませぬ。結果100kHzではこんな感じになってしまいました。

WaveForm100kHzPNG

当然、プルアップ抵抗の値を小さくすればもっと高速化はできますが、ドライバが引かねばならない電流は大きくなるはず。またディスクリートのトランジスタほどオン抵抗の小さくないマイコン端子などで引く場合には、抵抗比で決まってくるVOLの値も上昇すると思われます。簡単で使い易いのだけれども、電気特性は考えて使えよな、という感じ?知らんけど。

秋月通商殿のモジュール

上記のように単体のMOSFETは小さすぎてブレッドボード上で使えないのでDIP化基板使ってます。しかし、例によって秋月殿を漁るとMOSFET使ったレベル変換モジュールが売られています。

4ビット双方向ロジックレベル変換モジュール BSS138使用

現物写真が以下に。端子名書いてあるのでとっても分かり易いデス。

AE_LCNV4_MOSFET

裏返すと、BSS138とプルアップ抵抗が並んでます。

AE_LCNV4_MOSFET_BACK

簡単回路でお手軽だけれども何でもOKともいかないです。次回はも少し「カッコイイ」奴。

部品屋根性(69) レベル変換おさらい3、3.3Vと5V間双方向その1 へ戻る

部品屋根性(71) レベル変換おさらい5、3.3Vと5V間双方向その3、FXMA108 へ進む