uchan note

プログラミングや電子工作の話題を書きます

MOSFET を用いた双方向レベル変換回路の考察

前回の記事 で紹介したレベル変換回路(level shifter)の動作を説明し、MOSFET の機種選択の考慮点を考えます。結論は、MOSFET のゲートしきい値電圧が高い機種は使えないので注意しましょうということです。

レベル変換回路の動作

NXP 公式ドキュメント Level shifting techniques in I2C-bus design に書かれた内容をもとに説明します。このドキュメントは I2C 規格のためのレベル変換回路を述べていますが、紹介されている回路はオープンドレイン出力の回路同士のレベル変換に汎用的に使えます。

レベル変換回路は「低電圧」区域と「高電圧」区域をつなぐものです。両方の回路がバスラインをプルダウンしているかどうかに応じて次の 3 つの場合があります。

  1. どちらもプルダウンしていない場合
  2. 低電圧側がプルダウンした場合
  3. 高電圧側がプルダウンした場合

なお、両側がプルダウンした状態は通信の競合を意味する不正な状態なので、ここでは考えません。I2C のマスタ機器が 1 台しかない場合は、基本的に競合状態になることはありません。

どちらもプルダウンしていない場合

低電圧側のバスラインは 3.3V にプルアップされていますから、MOSFET のゲートとソースは共に 3.3V となります。すなわちゲート・ソース間電圧 VGS はゲートしきい値電圧より小さく、MOSFET は非導通状態です。したがって高電圧側は 5V にプルアップされます。結果的に それぞれ異なる電圧で 両側とも HIGH レベルになります。

低電圧側がプルダウンした場合

MOSFET のゲート電圧は 3.3V のまま、ソース電圧が 0V まで下がります。すなわちゲート・ソース間電圧 VGS がゲートしきい値電圧より大きくなり、MOSFET が導通状態となります。したがって、高電圧側のバスラインもプルダウンされます。結果的に両側とも LOW レベルになります。

高電圧側がプルダウンした場合

高電圧側のバスラインが 0V になるとソース電圧がドレイン電圧より高くなります。MOSFET の寄生ダイオード(製造上の副産物として生成されるダイオード)に順方向電圧がかかり、ソースからドレインへ電流が流れます。するとソース電圧が下がっていき、VGS がゲートしきい値電圧を上回ると MOSFET が導通します。したがって、低電圧側のバスラインが 0V になります。結果的に両側とも LOW レベルになります。

MOSFET 選定の考慮点

MOSFET を選ぶ際にはゲートしきい値電圧に注意します。しきい値電圧が (3.3V - ダイオードの順方向電圧) より大きい場合、3 番のケースで MOSFET が導通せず、低電圧側のバスラインが 0V まで下がりません。寄生ダイオードの順方向電圧と対象の機器によっては LOW レベルと認識されず、誤動作の原因となります。