双方向ロジックレベル変換モジュール 試してみた(抵抗を外付けして高速化!)

2022/04/10

部品

t f B! P L

Amazonにて、「双方向ロジックレベル変換モジュール」というものを買ってみました。

双方向レベル変換モジュール・外観

これは、ロジック信号を双方向にレベル変換(3.3V⇔5Vとか)できる代物で、安くてお手軽に4chを変換できるので便利です。SPI通信やI2C通信などで、電圧の違うICを接続するときなどに活躍します。秋月やsparkfunなどにも似たものがあります。

(PR)

今回は、この「双方向ロジックレベル変換モジュール」の中身や使い方などについて、やっていきます。

双方向レベル変換モジュールとは、どういうものか?

双方向レベル変換モジュールは、デジタル(ロジック)信号の電圧を変えるものです。信号を入れたら、逆側から電圧レベルを変更された信号が出力されます。

レベル変換の概念

"双方向"なので、逆向きもOKです。

レベル変換の概念(逆方向)

今回のモジュールでは、チャンネルごとに自由に方向を決められます。特に設定とかはなく、途中で向きを切り替えることもOKです。

双方向レベル変換モジュールの使い方(接続方法)

実際の、双方向レベル変換モジュールの接続方法はこんな感じです(一例)。

レベル変換モジュールの接続例

この例では、信号の向きをチャンネル1~3は3.3V→5V、チャンネル4は5V→3.3Vとしています。

双方向レベル変換モジュールの内部回路

さて、このモジュールの中身はどうなっているのか?というと、こんな感じになっています。

双方向レベル変換モジュールの内部回路図

MOSFETと10k抵抗が2つで1チャンネルとなっていて、これが4チャンネル分ある、という構成になっています。MOSFETはゲートしきい値が1V程度のものが使用されているようです。

双方向レベル変換モジュールの動作原理

上記の回路から、1チャンネル分だけ切り出すと、こうなります。

双方向レベル変換回路(1チャンネル分)

これを見ながら、双方向レベル変換回路の動作を見ていきます。

3.3V→5V

"0"のとき

レベル変換原理L→H[0]

LV信号に"0"を入力すると、MOSFETのVgsに3.3VがかかるためMOSFETがONとなります。すると、MOSFETのD-S間が導通するため、HV信号とLV信号の電位が同じになります。つまり、HV信号はLV信号と同じ0Vとなるので、HV信号に"0"が出力されます。

"1"のとき

レベル変換原理L→H[1]

LV信号に"1"を入力すると、MOSFETのVgsは0V(電位差なし)となるのでMOSFETはOFFです。そのため、HV信号は抵抗によるプルアップで5Vです。よって、論理"1"がHV信号に出力されます。

5V→3.3V

"0"のとき

レベル変換原理H→L

HV信号に"0"を入力した時を考えます。まず、LV信号は入力なのでHighインピーダンスと考えて、抵抗RLによってMOSFETのソースも3.3Vとなり、Vgs=0V、MOSFETはOFFとなります。すると、MOSFETのソース(3.3V)からドレイン(0V)へボディダイオードを通じて電流が流れます。

レベル変換原理H→L[0]

ボディダイオードが導通すると、ソースの電位がVFとなるため、Vgs=3.3-VFとなり、MOSFETがONになります。MOSFETがONとなると、HV信号とLV信号は同電位になるので、LV信号に"0"が出力されます。

"1"のとき

レベル変換原理H→L[1]

HV信号に"1"を入力すると、Vgs=0VとなるのでMOSFETはOFFとなります。ソースの電位(3.3V)<ドレインの電位(5V)なので、ボディダイオードは導通しません。そのため、MOSFETはOFFのままとなり、LV信号は抵抗RLでプルアップされた3.3Vが入るので、論理"1"がLV信号に出力されます。

実際に動作させてみた

ファンクション・ジェネレータで矩形波(Duty50%、0-5V or 0-3.3V)を出力させて、入出力の波形をオシロスコープで観測してみました。

3.3V→5V

実験回路L→H

実験回路はこんなイメージ(ファンクション・ジェネレータとオシロのプローブのGNDは省略)。観測波形はそれぞれこんな感じになりました。

3.3V→5V(1kHz)

3.3V→5V(1kHz) CH1:入力(3.3V) CH2:出力(5V)

3.3V→5V(10kHz)

3.3V→5V(10kHz) CH1:入力(3.3V) CH2:出力(5V)

>3.3V→5V(100kHz)

3.3V→5V(100kHz) CH1:入力(3.3V) CH2:出力(5V) 立ち上がりの遅れ(波形のなまり)が目立ってきます。

3.3V→5V(200kHz)

3.3V→5V(200kHz) CH1:入力(3.3V) CH2:出力(5V)

3.3V→5V(500kHz)

3.3V→5V(500kHz) CH1:入力(3.3V) CH2:出力(5V)

5V→3.3V

実験回路H→L

実験回路はこんなイメージ。観測波形はそれぞれこんな感じになりました。

5V→3.3V(1kHz)

5V→3.3V(1kHz) CH1:入力(5V) CH2:出力(3.3V)

5V→3.3V(10kHz)

5V→3.3V(10kHz) CH1:入力(5V) CH2:出力(3.3V)

5V→3.3V(100kHz)

5V→3.3V(100kHz) CH1:入力(5V) CH2:出力(3.3V) 立ち上がりの遅れ(波形のなまり)が目立ってきます。

5V→3.3V(200kHz)

5V→3.3V(200kHz) CH1:入力(5V) CH2:出力(3.3V)

5V→3.3V(500kHz)

5V→3.3V(500kHz) CH1:入力(5V) CH2:出力(3.3V)

双方向レベル変換モジュールを高速化するには?

上記の実験結果から、3.3V→5Vのときも、5V→3.3Vのときも100kHzあたりから、立ち上がりがなまりだします。500kHzはもとより、200kHzでも実用は厳しい印象です。しかし、200kHzや500kHzは、SPI通信やI2C通信で使用する領域です。

このレベル変換回路を高速化するには、抵抗値を小さくするという方法があります。この場合、信号出力側の抵抗を小さくすることになります。

レベル変換回路

この回路図でいえば、抵抗RHを小さくすると3.3V→5Vが高速化され、抵抗RLを小さくすると5V→3.3Vが高速化されます。

ところが、これらの抵抗は(今回のモジュールだと)実装済みのチップ抵抗です。チップ抵抗の貼り替えは、正直やりたくない!のが本音です(私だけ?)。そんな場合は、(このモジュールなら)抵抗を外付けすることで対応できます。

外付け抵抗で抵抗値を下げる

外付けの抵抗と実装済みのチップ抵抗で、合成抵抗とすることで抵抗値を下げます。外付けする抵抗値を1kΩとすると、合成抵抗は(10kΩ×1kΩ)/(10kΩ+1kΩ)=0.9kΩになります。

実際のモジュールでの接続例はこんな感じです。

外付け抵抗を付けた場合の接続図

抵抗を外付けして、動作させてみた

上記のように1kΩの抵抗を外付けしたときに、どれくらい変化があるか、試してみました。試験方法はさきほどと同様です。

3.3V→5V

3.3V→5V(100kHz)外付け抵抗付き

3.3V→5V(100kHz) CH1:入力(5V) CH2:出力(3.3V)

3.3V→5V(200kHz)外付け抵抗付き

3.3V→5V(200kHz) CH1:入力(5V) CH2:出力(3.3V)

3.3V→5V(500kHz)外付け抵抗付き

3.3V→5V(500kHz) CH1:入力(5V) CH2:出力(3.3V)

5V→3.3V

5V→3.3V(100kHz)外付け抵抗付き

5V→3.3V(100kHz) CH1:入力(5V) CH2:出力(3.3V)

5V→3.3V(200kHz)外付け抵抗付き

5V→3.3V(200kHz) CH1:入力(5V) CH2:出力(3.3V)

5V→3.3V(500kHz)外付け抵抗付き

5V→3.3V(500kHz) CH1:入力(5V) CH2:出力(3.3V)

3.3V→5V、5V→3.3Vともに500kHzで多少なまる程度まで改善されました。これならこのあたりの周波数でも使えそうです。

今回は、双方向ロジックレベル変換モジュールについて、内部回路・動作原理・動作波形などやってきました。今回はこれで終了です。参考になれば幸いです。

当ブログはアフィリエイト広告を利用しています。

このブログを検索

最新記事

ブログ運営者:そのへんの誰か


このブログのURL

QooQ