要約
ロジックレベル変換技術と落とし穴。そしてマキシムソリューション。
電子回路設計は、TTLと5V CMOSがロジック回路で標準的な規格であった時代から大きく変わっている。高度化していく現在のエレクトロニクス装置は、低電圧ロジック主流の傾向を促しているが、一方で、システム内でロジックファミリの入出力レベルの不一致が起こっている。たとえば、1.8Vで動作するディジタル部が、3.3Vで動作するアナログ部と通信する必要があるような状況は珍しいことではない。本稿は、特にシリアルデータシステムについて、ロジック動作の基本を検討し、様々なロジック電圧を変換する方法について考察する。
ロジックレベル変換の必要性
ロジックレベルの変換が必要とされる背景には、互換性のない電圧レール、低VDDレール、またはVCOREとVI/O用のデュアルレールの機能をもつディジタルICの増加、また使用するミックストシグナルICの電源電圧の低電圧化がディジタル部のそれに追いついていないことなどがある。
変換方法は、対象の電圧範囲、変換するライン数(たとえば4線式シリアルペリフェラルインタフェース(SPI™)対32ビットデータバス)、およびディジタル信号の速度によって異なる。多くのロジックICには、(5Vから3.3Vロジックなど)ハイからローレベルへの変換能力はあるが、ローからハイ(3.3Vから5V)の変換ができるものは少ない。レベル変換は、ディスクリート単一トランジスタや抵抗-ダイオードの組合せで実現することができるものの、それらの方法に固有の寄生容量によってデータ転送速度が減少することがある。
バイト長とワード長のレベル変換器は利用しやすいが、本稿で扱う20Mbps以下のシリアルバス(SPI、I2C、USBなど)に対しては最適であるとは言えない。そのようなデバイスは、ピン数が多く、I/O方向ピンのある大型パッケージとなり、小型のシリアルおよび周辺インターフェースには適していない。
SPI (シリアルペリフェラルインタフェース)は、一方向性制御線データイン、データアウト、クロックとチップセレクトから構成される。データインとデータアウトは、MISO (マスタイン、スレーブアウト)とMOSI (マスタアウト、スレーブイン)としても知られている。SPIは、20Mbps以上のクロックで動作可能で、CMOSプッシュプルロジックによって駆動される。SPIが一方向性なので、レベル変換は単純になる。同じ信号線で両方向の変換が必要でないため、抵抗器とダイオード(図1)、またはディスクリート/ディジタルトランジスタ(図2)からなるシンプルな技法を用いることができる。
図1. 抵抗-ダイオードというトポロジでも、1本の信号ラインについて単一方向の変換を行うことができる。
図2. ディスクリート/ディジタルトランジスタで単一方向の変換が可能。
I2C、SMBus™や1-Wire®インタフェースはすべて双方向であり、オープンドレインI/Oトポロジである。I2Cには、100kbps以下の標準モード、400kbps以下のファーストモード、および3.4Mbps以下のハイスピードモードの3種類の速度範囲がある。双方向バスのレベル変換はより難しい。同じデータライン上で両方向に変換する必要があるからである。オープンコレクタまたはドレインを備えた、抵抗-ダイオードと1段-トランジスタの変換器をベースとした簡素なトポロジでは、それが本質的に一方向性であるため動作しない。
一方向性のハイからローレベルへの変換—入力過電圧耐性
高いロジックレベルから低いロジックレベルに変換するために、ICメーカは、入力での過電圧耐性を持つデバイスを各種取り揃えている。ロジックデバイスは、その電源電圧より高い入力電圧に(破壊を伴わず)耐え得る場合、入力過電圧保護されていると言う。そのような入力保護デバイスでは、信号対雑音比マージンを増加させながら、高いVCCから低いVCCロジックに変換するタスクが簡単になる。
たとえば、入力が過電圧耐性を持つことによって、ロジックデバイスが、1.8V電源から電力を供給されながら、1.8V以上のロジックレベルに対処することができる。大部分が入力過電圧保護を備えたLVCロジックファミリのデバイスは、ハイ・トゥ・ロー変換を必要とするアプリケーションで良好に動作する。それとは逆にロー・トゥ・ハイ変換は、それほど簡単ではない。低電圧ロジックレベル閾値からそれ以上の高電圧ロジックレベル閾値(VIH)の生成は、実現できない場合がある。
コネクタ、高ファンアウト、または浮遊負荷容量が大容量負荷の原因になる回路を設計する場合、すべてのロジックファミリで、電源電圧の低下は駆動能力の低下につながることに注意が必要である。例外は、3.3V CMOSまたはTTL (LV、LVT、ALVT、LVCおよびALVC)と5V標準TTL (H、L、S、HS、LS、ALS)の間である。これらのファミリについては、3.3Vと5Vのロジックアクティブ化ポイント(VOL、VIL、VIH、およびVOH)が互いに一致する。
ハイからローとローからハイの混合変換
SPIバスのようなアプリケーションでは、ハイからローとローからハイへの混合変換が必要となる。たとえば1.8Vのプロセッサと3.3Vの周辺装置について考えた場合、上述の技法の組合せを使うことも可能であるが、MAX1840、MAX1841やMAX3390のようなシングルチップであれば、それ自体で必要な変換を実行することができる(図3)。
図3. SPI/QSPI™/MICROWIRE™インタフェースを持ち、高低・低高の混合変換が行えるICレベルトランスレータの例。
他のシステム、たとえばI2Cや1-Wireバスなどでは、両方向のロジック変換が必要である。オープンコレクタまたはオープンドレインで単一トランジスタからなる単純なトポロジは、それが本質的に一方向性であるため、双方向性バスとして動作しない。
双方向トランシーバ法
WRとRD信号がすでに備わっている多バイトおよび多ワード長バスに対して、多電圧レベル間でデータ転送を行う1つの方法は、74CBTB3384のようなバススイッチを使用することである。このようなデバイスは、3.3V~5V間の動作に最適化されている場合が多い。小さな1線および2線バスの場合、このソリューションでは2つの問題が出てくる。データフローの方向制御に、別々のイネーブルピンが必要となり、これによって貴重なポートピンが奪われてしまい、また貴重な基板スペースを占拠する大きなICが必要となることである。
すべての技法にはそれぞれ一長一短がある。しかし、設計者としては、すべての変換レベルで動作し、ロー・トゥ・ハイとハイ・トゥ・ローの混合ロジック遷移を可能にし、片方向や双方向変換を含んだ汎用デバイスが必要となる。次世代の双方向レベルシフタ(MAX3370~MAX3393ファミリICのMAX3370)は、それらの要件を満たしており、同時に代替方法に付随する問題のいくつかを解決する。
MAX3370は、レベル変換にトランスミッションゲート法(図4)を実行するのであるが、低電圧または高電圧ロジック領域のいずれの動作に対しても、電流をシンクする外付け出力ドライバが必要となる。このデバイスはその能力によって、オープンドレインまたはプッシュプル出力段として動作する。さらに、トランスミッションゲートの比較的低いオン抵抗(135Ω以下)は、図1の直列抵抗に比べて動作速度の制限が小さい。
図4. MAX3370はレベル変換にトランスミッションゲート法を利用。
図4は他の2つの利点を示している。オープンドレイントポロジに対して、MAX3370は、「スピードアップ」スイッチによって並列にされた10kΩプルアップ抵抗を内蔵しており、従来のオープンドレイントポロジに関するRC時定数の勾配を小さくしながら、外付けプルアップ抵抗の必要性を最小にしている。またMAX3370の小型SC70パッケージによって貴重な基板スペースを節約することができる。
スピード問題の解決
RC時定数は、他のほとんどのオープンドレインアプローチの実効データレートを制限する(図5および6)。MAX3370 ICファミリは、能動的に立上りエッジをプルアップするスピードアップ方式を備えており、それによって容量性負荷の影響を最小にする。その影響は図7、8、9で見ることができる。入力が、予め定義されたスレッショルドより上へ変化する場合、デバイスは能動的に立上りエッジをプルアップし、外付け寄生部品に起因するあらゆるスキューを最小にする。その動作によって、プッシュプルドライバで駆動された信号は最高20Mbpsのデータレートにすることが可能となる。オープンドレインドライバからの信号速度は傾向として遅い。しかし他のオープンドレイントポロジに関しては、外付けプルアップ抵抗を追加することによってそれらのスピードを改善することができる。
図5. 20kHzにおけるFETオープンドレイン出力のオシロスコーププロット。RC時定数により実効データレートを制限していることがわかる。
図6. デュアルトランジスタトランシーバにより400kHz (a)と100kHz (b)で1.8Vから5Vの変換を行った際のオシロスコーププロット。実効データレートを制限していることがわかる。
図7. 400kHzで1.8Vから5Vの変換を行った際のMAX3370出力のオシロスコーププロット。容量性負荷の影響が最小限になっていることがわかる。
図8. 4.7kΩのプルアップ抵抗を取りつけ、400kHzで動作させたときのMAX3370出力のオシロスコーププロット。容量性負荷の影響が最小限になっていることがわかる。
図9. MAX3370高速テスト回路の出力(レイルトゥレイル駆動の例)
一般的な電圧問題の解決
理想的には、あるアプリケーションがロジックレベルの変換に必要とする部品は1つで、あらゆるロジックレベルおよびあらゆるスピードにおいて変換可能であることが求められる。MAX337xファミリのICは、最小1.2Vの低ロジックレベルと最大5.5Vの高ロジックレベルに対して設計されている。その能力によって、1つの部品でほとんどのケースで必要なレベル変換を可能とし、各レベル変換器の条件に合わせてロジックデバイスを選択する必要がなくなる。
以前は、同じ回路の中のロー・トゥ・ハイとハイ・トゥ・ローの両変換は、それぞれ別のチップを用意することによってのみ可能であったが、MAX337xファミリのシングルチップが持つ双方向およびトポロジに関わらず動作する機能(プッシュプルまたはオープンドレイン)によって、両方の問題が解決される。MAX3370は、シングルライン、ユニバーサルロジックレベル変換器である。多数のI/Oラインの変換については、表1に記載されたデバイスを参照されたい。
Part | No. of I/O Channels |
Unidirectional/ Bidirectional Rx/Tx |
VL Range (V) | VCC Range (V) | Separate Enable |
Speeds Up to: (bps) |
MAX3000/1 | 8 | Bi, 8 | 1.2 to 5.5 | 1.65 to 5.5 | Yes | 230k/4M |
MAX3002/3 | 8 | Bi, 8 | 1.2 to 5.5 | 1.65 to 5.5 | Yes | 20M |
MAX3013/23 | 8/4 | Bi, 8/4 | 1.2 to (VCC - 0.4) | 1.65 to 3.6 | Yes | 100M |
MAX3014-28 | 8 | Uni, full mix | 1.2 to (VCC - 0.4) | 1.65 to 3.6 | Yes | 100M |
MAX3370/1 | 1 | Bi, 1 | 1.65 to 5.5 | 2.5 to 5.5 | No/Yes | 2M |
MAX3372/3 | 2 | Bi, 2 | 1.2 to 5.5 | 1.65 to 5.5 | Yes | 230k |
MAX3374 MAX3375 MAX3376 |
2 | Uni, 2/0 Uni, 1/1 Uni, 0/2 |
1.2 to 5.5 | 1.65 to 5.5 | Yes | 16M |
MAX3377/8 | 4 | Bi, 4 | 1.2 to 5.5 | 1.65 to 5.5 | Yes | 230k |
MAX3379 | 4 | Uni, 4/0 | 1.2 to 5.5 | 1.65 to 5.5 | Yes | 16M |
MAX3390 | 4 | Uni, 3/1 | 1.2 to 5.5 | 1.65 to 5.5 | Yes | 16M |
MAX3391 | 4 | Uni, 2/2 | 1.2 to 5.5 | 1.65 to 5.5 | Yes | 16M |
MAX3392 | 4 | Uni, 1/3 | 1.2 to 5.5 | 1.65 to 5.5 | Yes | 16M |
MAX3393 | 4 | Uni, 0/4 | 1.2 to 5.5 | 1.65 to 5.5 | Yes | 16M |
MAX13013/14 | 1/2 | Bi, 1/2 | 1.2 to (VCC - 0.4) | 1.65 to 3.6 | Yes | 100M |
システム当りのI/O電圧の数が増加すると、レベル変換技法を応用する必要性はそれだけ大きくなる。問題を複雑にするのは、負荷容量、VCC電圧差の絶対値、およびスピードである。ハイ・トゥ・ロー変換については、変換電圧の差が小さい場合、またいつでもすぐ入手できるデバイス(例えば入力過電圧に耐えるロジックIC)の場合は、問題はそれほど大きくない。
しかし、VCC差の大きいICを処理することができて、ロー・トゥ・ハイのロジックレベルの変換ができるICおよびディスクリート部品回路を見つけるとなると困難になる。双方向でオープンドレイントポロジは、高速データレートには役立たない。マキシムのレベル変換器は、広範囲な双方向または片方向、プッシュプル、およびオープンドレイントポロジのレベル変換の問題を容易にする。これらのICは、超小型パッケージで提供され、標準的な動作では外付け部品が不要である。
{{modalTitle}}
{{modalDescription}}
{{dropdownTitle}}
- {{defaultSelectedText}} {{#each projectNames}}
- {{name}} {{/each}} {{#if newProjectText}}
-
{{newProjectText}}
{{/if}}
{{newProjectTitle}}
{{projectNameErrorText}}