I2Cレベル変換器の動作
I2Cのレベル変換器でGTL2002というデバイスがあります。
1.0V~1.8Vまでの振幅で送られてきたI2C信号を3.3Vや5Vの振幅に変換でき、逆に5Vや3.3Vのロジックを1.2Vや1.8Vに変換することもできるというICです。このICは古いのでNVT2002DP,118といった新しいデバイスに変わっていますが、同様のICはいろいろなメーカーが出しているようで、秋月電子でもPCA9306というのを扱っています。
GTL2002の使い方は下の図のとおりとなります。
このICの中はどうなっているのかというと、なんと、MOSFETたった3個でできています。
これだけ見てもさっぱりわからない謎が多い接続図です。どういう原理で動作しているか回路シミュレータを使って調べてみました。
まず、この手のICを使ったレベル変換回路をMOSFETで書き直します。
上の図のT2はオープンドレインの出力を作るためのMOS FETで、I2Cの出力を模倣しています。T3とT1がレベル変換IC「GTL2002」の中身に相当します。いま、MOS FETのスレッショルドは0.9Vに設定しています。
この回路で気が付くところは、DREFとGREFが接続されてT3がダイオード接続を構成しているところです。MOS FETのダイオード接続とは、ゲートとドレインを接続して、Vs<Vg(=Vd)のときにFETがONする働きをします。
ダイオード接続のMOS FETに加える電圧を徐々に上げていくとスレッショルドを超えた分がクリップされます。別の味方をすれば、Vg(=Vd)はVs+Vthになるとも言えます。
最初の回路図で左側の電源電圧(=SREF)は1.8Vで、MOSFETのスレッショルドは0.9Vに設定しているので、DREF=GREF=2.7Vに固定されます。
信号をスイッチするのは右のT1なのですが、0V/1.8Vの振幅のロジック信号をソースに入れています。ここで、T1のゲートは約2.7V(SREF+Vth)なので、Vin=LならばトランジスタはONしてVout=0になります。Vin=H(1.8V)ならばトランジスタはOFFして、Vout=5Vになります。
- Vs < 1.8V・・・MOSFET ON→Vout=L
- Vs = 1.8V・・・MOSFET OFF→Vout=H
このようにして、左から右へのレベル変換ができます。
上の図の緑の線はVREF、黄色がVOUT、茶色がVINです。
逆に、5V側から1.8V側へのレベル変換ですが、VREFが2.7Vなので、5Vの振幅は2.7V-0.9V(Vth)=1.8V(SREF)にクリッピングされることで行っています。右の回路からSREF以上の電圧が加わったときにMOSFETがその電圧を削って左に与えるというわけです。
なお、200kΩの抵抗はゲートにバイアスを与えるための抵抗で、コンデンサはFETがONするときにゲート電圧が一緒に引きずられて揺れるのを防ぐためのものです。シミュレーションではコンデンサがないとVREFに下の図のような大きなスパイクが乗りました。これはただのパスコンじゃないので重要です。GS間の容量に負けないコンデンサが必要です。
このICの動作をまとめると、
- 左→右へのレベル変換はMOS FETのON/OFFによるオープンドレイン動作
- 右→左へのレベル変換はクリッピング動作
によって変換していたというわけです。
この回路で大事なのは「左の回路の電源電圧」<「右の回路の電源電圧」であることです。これを逆にするとうまくいきません。
また、「左の回路の出力振幅=左の回路の電源電圧」であることも大切です。
| 固定リンク
コメント