要約
このアプリケーションノートでは、高信頼性システムにおいて電圧を正しくモニタリングしてシーケンシング(順序付け)する必要性を重点的に取り上げています。監視回路を選択する際の重要な基準を提示し、パワーオンリセット(POR)回路、マルチ電圧モニタリング、およびマージニングの必要性について説明します。また、システム管理回路を紹介します。
はじめに
たいていの電子システムでは、パワーオンリセット(POR)回路を用いてシステム電圧をモニタリングすることによって、パワーアップ時の正しい初期化が保証されます。さらに、PORでブラウンアウト状態を検出することで、メモリの破損やシステムの不正処理の原因となりうるコード実行時の問題を最小限に抑えることができます。ハイエンドなシステムの信頼性を向上させるためには、多くの場合、システムのマイクロコントローラ、マイクロプロセッサ、DSP、またはASICがラッチアップ(破壊または長期的な信頼性不良の原因となる不具合)しないように、システムの電源のシーケンシングを正しく実行することが必要です。ほとんどの場合、1つまたは複数のマイクロプロセッサ監視用ICを使用することで、このようなシーケンシングとモニタリングの機能を容易に実現することができます。
検出器とパワーオンリセットを用いた電圧のモニタリング
システムの電源電圧をモニタリングする簡単な方法は、電圧検出器を使用することです。この電圧検出器はコンパレータと内部リファレンスを統合したICです。電源電圧が電圧検出器のスレッショルドを下回ると、この出力がアサートされ、電源障害のおそれがあることをシステムのマイクロコントローラに通知します。この警告によって、マイクロコントローラは、メモリのバックアップ、電源の投入または切断、システムのシャットダウンを制御しながら実行することができるようになります。
パワーアップまたはダウン時に電圧検出器の状態が変わると、短い伝播遅延の後、出力がアサートされます。これは電源障害の警告には問題ありませんが、たいていの場合、マイクロコントローラのリセット入力にはリセットタイムアウトと呼ばれる、これより長い遅延が必要となります。パワーアップ時にシステムクロックと電源を安定させることが必要であり、さらにプロセッサのレジスタを初期化してからマイクロコントローラをリセット状態から解放する必要があるためです。パワーオンリセット(POR)は、マイクロプロセッサ監視用ICの1つですが、このリセットタイムアウトを提供することができるため、マイクロコントローラが動作可能となる前に、システムを完全に初期化することができます。また、パワーアップ後に電源電圧が一時的にPORのスレッショルドを下回った場合、その後、電源電圧が元に戻ってPORのスレッショルドを上回ったときに、同様の遅延が適用されます。パワーオンリセットは、数種類の固定タイムアウト期間とスレッショルド電圧で利用することができます。PORのなかには、タイムアウト期間をコンデンサで調整可能なものもあります。
マルチ電圧システムのモニタリング
ほとんどのシステムは3.3VのI/Oロジック電源をモニタリングしています。高信頼性が要求されるシステムでは、コアとメモリに電力を供給する電源など、追加電源のモニタリングが必要となる場合もあります。電源モニタリングを実行するマルチ電圧マイクロプロセッサ監視回路は多数存在しますが、特定システムの特定要件を満たすとなると設計者の選択肢は急に狭くなります。
一般的な監視回路は5V、3.3V、2.5V、1.8Vなどの標準的な電圧をモニタリングします。ただし、種々の部品(メモリ、PLD、ASICなど)に固有の電源要件があるため、多くの場合、追加の電圧をモニタリングすることが必要になります。このため、「外付け抵抗が不要な固定スレッショルドデバイスを使用する」か、「外付け抵抗を要するものの、必要に応じて変更可能な、柔軟性の高い可変スレッショルドデバイスを使用する」かを決定しなければなりません。固定スレッショルドと可変スレッショルドを組み合わせたデバイスを使えば、最適なソリューションを提供することができます。デバイスを選択するときには、システムの最低電圧をモニタリングするだけの十分に低いリファレンス電圧を備えたデバイスを選ぶことが重要です。たとえば、0.8V、0.9V、および1V電源で動作するような場合、標準的な1.2Vリファレンスを備えたデバイスは機能しません。
高信頼性システムが用いる電源電圧の数は近年増大しており、現在では10以上の電圧数が一般的です。多数の電圧をモニタリングするときは、複数の監視デバイスを使用することになります。このような場合には、出力がオープンドレインのマルチ電圧監視回路が便利です。このオープンドレイン出力をともにOR接続することによって単一の出力を得ることができるからです。図1は、2個のMAX6710を接続して、8つの電圧値をモニタリングしながら、1つのリセット信号を提供する例を示しています。
図1. オープンドレイン出力を備えた2つのマルチ電圧監視回路。8つの電圧値をモニタリングし、1つのリセット出力を提供します。
過電圧保護回路
電源の中には、過電圧および低電圧の状態をモニタリングしなければならないものがあります。過電圧のモニタリングは、高価なプロセッサやASICに損傷を与えないようにするため、多くのシステムになくてはならないものになってきています。2種類の過電圧保護回路が広く使用されています。過電圧と低電圧の両方の状態をモニタリングするウィンドウディテクタは、2つの電圧検出器とリファレンスを用いて構成することができます。別の方法としては、MAX6754のような専用のウィンドウディテクタICを使用することもできます。2つ目のタイプの電圧保護回路には、電源電圧が指定レベルを超えた場合に電源を遮断する外付けpチャネルMOSFETが含まれています。図2を参照してください。
図2. この監視回路が過電圧状態を検出すると、pチャネルMOSFETが電源を切断します。
電源のシーケンシング
DC-DC電源レギュレータのイネーブルピンまたはシャットダウンピンを使用することによって、都合よく電力供給をシーケンシングすることができます。この「デイジーチェーン」方式では、最初に電源が投入されたときに、パワーOK (POK)信号(対応している場合)がアサートされて電圧が許容範囲内であることを他の回路に通知します。POK出力は2つ目のレギュレータのシャットダウンまたはイネーブルピンに接続され、POKがアクティブになるとこのレギュレータの電源が投入されます。図3はこの様子を示しています。より長い遅延が必要となる状況では、レギュレータにPORが実装されることもあります。この場合の構成では、より長い時間遅延の後、シーケンス内の次の電源を投入することができます。
図3. POK出力を備えた電源で他の電源をシーケンシングする便利な方法
POK信号を利用することができないときには、電圧検出器またはPORを用いて電源の出力をモニタリングすることができます。単純に検出器またはPOR出力を、2つ目の電源のシャットダウンまたはイネーブル入力に接続するだけです。これで、モニタリング対象の電圧が指定のスレッショルドを超えたとき、2つ目の電源が投入されます。ノイズの多い電源とともに使用すると、電圧検出器は不必要に複数回レギュレータを作動および停止することがあります。特にモニタリング対象の電圧レベルがそのトリップのスレッショルドに近い場合にこのような動作が発生します。この場合、POR回路によってその影響を最小限に抑えることができます。これはPORのタイムアウト期間によるものです。モニタリング対象の電圧が監視回路のスレッショルドを下回ると、PORの出力がアサートされ、モニタリング対象の電圧がスレッショルドを上回った後も、少なくとも最小リセットタイムアウト期間はアサート状態を保ちます。監視回路がデアサートされるためには、タイムアウト期間中に電圧がリセットスレッショルドを継続的に上回っていることが必要です。このようにして、電源がオン/オフサイクルを繰り返すことを防ぎます。また、PORを使用してシャットダウンまたはイネーブルピンの信号を生成することによって、ターンオン時間を制御することができます。PORは数マイクロ秒から1秒を超える範囲に及ぶリセットタイムアウトに対応しています。さらに、コンデンサで調整可能なPORでは、特定のデバイスのタイムアウト期間を変更することが可能です。
POR回路によって、その他のパワーアップシーケンシング状態も制御することができます。たとえば、3つの電源を備えたシステムで、3つ目の電源が作動する前に先の2つの電源を有効にしたい状況を考えます。POK出力のない1つのレギュレータが最初の2つの電源電力を生成する場合、デュアル電圧PORを使用して2つの電圧値をモニタリングすることができます。このPORの出力を3つ目の電源のイネーブルまたはシャットダウンピンに給電することによって、3つ目の電源のシーケンシングを制御します。より多くの電源のシーケンシングを行うには、マルチ電圧デバイスを使用することができます。たとえば、4つの電圧をシーケンシングするには4電圧検出器が適しています。また、複数のリセット出力を備えたデバイスを使用すれば(各出力で異なる遅延)、複数の電源をシーケンシングすることができます。
パスエレメントの起動
「シルバーボックス」または「ブリック」電源を使用する場合は、別に回路を設けなければ、必ずしも各電圧を制御順にオン/オフすることができるとは限りません。この電源は5V、3.3V、2.5V、1.8Vなどの標準電圧を供給し、多くの場合、これらがシステム全体に分配されます。たとえば、「ブリック」は3.3Vのロジック電源と1.8Vのコア電源を2つの異なるICに供給することができます。アプリケーションによっては、これらのICが異なるシーケンシングを必要とする場合があります。たとえば、一方のデバイスはコア電源が最初に立上がることを必要とし、他方のデバイスはI/O電源が最初に立上がることを必要とする場合などです。
このような状況で電源をシーケンシングする方法の1つに、外部のパスエレメントを介して電力供給を切り替える方法があります。図4では、VCC1をオン/オフするMOSFETのゲートに電圧検出器が接続されています。MOSFETを完全起動するのに十分なレベルのゲート-ソース間電圧が得られるような高い電圧を利用可能なときは、nチャネルMOSFETがこのアプリケーションには適切です。ただし、VCC1が電圧検出器の出力をオンにするのに十分なレベルに達する前にVCC2が存在すると、この回路のパワーアップ時に問題が生じる可能性があります。このような状況では、VCC1が十分に上昇して電圧検出器の出力がローにアサートされるまで、VCC2がMOSFETを起動(すなわちオン)することになります。
図4. 高電圧が利用可能な場合、電圧検出器はnチャネルMOSFETをオンにすることによって低電圧をシーケンシングすることができます。
2つ目の高電圧を用いずに、同じタイプの回路を電圧検出器とpチャネルMOSFETを用いて実現することができます。ただし、この回路は低電圧電源にはふさわしくなく、またpチャネルMOSFETのオン抵抗は高いため、高電力アプリケーションには実用的ではありません。
複数の電源をパワーシーケンシングする、より簡単で信頼性の高い方法は、MAX6819などのデバイスを使用してモニタリングとシーケンシングの両機能を実行することです(図5を参照してください)。このタイプのICはリセット回路を用いて1つ目の電圧をモニタリングし、そのレベルが指定範囲内にあるかどうかを判別します。電圧が指定範囲内のとき、ICはMOSFETドライバを使用してMOSFETをオンにします。内部チャージポンプが一定の電圧を2つ目の電源に追加し、この結果として得られた電圧がMOSFETのゲートに印加されます。これによって、ゲート-ソース間電圧は、MOSFETを完全起動させるのに十分な高さの電圧レベルに達します。
図5. 1つ目の電源がパワーアップされた後に、MAX6819が2つ目の電源をオンにします。MAX6819のオンボードチャージポンプがMOSFETを起動し、オン抵抗を最小限に抑えます。
マージング機能
さまざまなタイプの通信、ネットワーキング、ストレージ、およびサーバ機器の製造時に、これらのシステムの堅牢性と将来的な信頼性を評価するために「マージニング」と呼ばれるプロセスがよく使用されます。マージニングには、システム(またはプロセッサ)の評価が含まれています。この評価は電源をその公称レベルから外すことによって行われます。電源のレベルを変更するには、通常はディジタルポテンションメータまたは電流DACを用いてフィードバックループを変更することによって、DC-DCコンバータ電源を調整します。図6は、電源をマージニングする多数の方法のうち2つを図示しています。この他の一般的な方法としては、ディジタルインタフェースを介して電源の出力をプログラミングする方法、または電源をトリミングする方法があります。異なるレベルでマージニングを調整するには、「合否評価」方式があります。この方式ではすべての電源を特定のレベル(たとえば±5%や±10%など)に増加または減少させます。マージニング調整では、電源をより狭い差幅(たとえば10mVや100mVなど)で増分または減分する微調整方式を用いることも可能です。後の方式では、システム性能をより詳細に評価することができます。
図6. 電圧マージニングを行う簡単な2つの技法。ディジタルポテンションメータまたは電流DACをDC-DCコンバータのフィードバックループに追加します。
ADCを使用してこれらの値をより正確に測定することができます。これを実現するためにマイクロコントローラ内に搭載されているADCを使用することも考えられますが、マイクロコントローラに電力を供給する電源電圧が基準値より下回ると、その内部リファレンスが許容範囲外となる可能性があり、これがADCの精度に影響を与えます。また、マージニング時にはリセット出力を切断またはディセーブルにして、システムが動作を継続することができるようにする必要があります。出力を切断またはディセーブルにしなければ、システムはリセットされ、システムが停止する電源電圧レベルを検出することができなくなります。大規模なシステムでこのようなマージニング機能を実装することは、非常に単調で時間を要する作業になると考えられます。
モニタリング、シーケンシング、およびマージニングを単一デバイスに統合
たいていのプロセッサは2つの電圧しか必要としません。1つはコアに電力を供給するため、もう1つはI/Oに電力を供給するためです。DSP、ASIC、ネットワークプロセッサ、およびビデオプロセッサなどのデバイスでは、最大5つの電源が必要です。単一システム内で、監視回路が10を超える電圧をモニタリングおよびシーケンシングするのは一般的ではありません。こうしたシステムの電源電圧の数が増加し続けるのに伴って、電源をモニタリング、シーケンシング、およびマージニングするICの数も増加します。コストは増大し、より広い基板スペースを占有します。電圧スレッショルドやリセットタイムアウト期間などのパラメータの変更が必要なときは、新しいデバイスが必要になります。さらに、シーケンシングの順序の変更は非常に困難な作業となります。
回路が複雑になるのを抑える方法の1つに、プログラマブルシステム管理ICを使用してモニタリングとシーケンシングの機能を統合する方法があります。プログラム可能であることから、これらのデバイスによって変更作業が容易になります。このような回路を用いることによって、試作段階や製造段階で部品を設計に取り入れたり、取り外したりする必要がなくなります。部品の多くが、シリアルインタフェースを介して、内部レジスタをプログラミングすることで、「デバイスの構成」および「スレッショルドレベルと遅延の設定」の両方を行うことができます。これらのレジスタの内容はオンボードのEEPROMに格納されます。
図7は、複数のシステム電源をモニタリングおよびシーケンシングするよう設定されたMAX6870システム管理デバイスを示しています。+12Vのバス電圧がパワーアップされ、そのスレッショルド(MAX6870内に記憶されている)を上回ったとき、MAX6870出力の1つが、直ちに、あるいは一定の遅延期間後に(これもMAX6870メモリ内に記憶されている) +5V電圧レギュレータをイネーブルにします。+5Vレギュレータが稼動し、その出力が対応するスレッショルドを超えると、+3.3V電源がシャットダウン状態から抜け出ます。その後、+5Vのスイッチ式電源を除く残りの電源が同じ方式で次々にパワーアップします。+5Vのスイッチ式電源は、MAX6870がnチャネルのパスエレメントを起動したときに、利用可能状態になります。
図7. 電圧モニタリングおよびシーケンシングするための柔軟な方法を実現するプログラマブルシステム管理デバイス
通常このタイプのシステム管理デバイスでは、プログラミングによってリセット回路やウォッチドッグタイマなどの監視機能を追加することができます。また、これらのデバイスでは、アナログとディジタルの入力を通じて電源電圧以外のパラメータもモニタリングすることができます。図7の回路では、AUXIN_ (アナログ入力)とGPI_ (ディジタル入力)が温度の読取り値と電源電流検出の読取り値をモニタリングしています。MAX6870は10ビットADCを搭載し、これらの読取り値をディジタル化します。さらに、このディジタル化された読取り値のステータスをマイクロコントローラがモニタリングします。温度センサと電流検出モニタはそれぞれ障害が発生していること(すなわち温度や電流が指定の限界値を超えていること)を示すコンパレータ出力を備えています。各コンパレータ出力はMAX6870の汎用入力(GPI)に接続されています。MAX6870は、障害状態が発生したときに1つまたは複数の電源を切断するよう設定することができるため、+12V電源の負荷を軽減します。
内部ADCによって電源の正確なマージニングが容易になります。各電源の出力端での電圧は、マージニング処理の間にADCレジスタから読み取ることができます。また、電源をマージニングするときに、マージンの入力によって出力をディセーブルにする、またはプログラミングによって既知の状態に設定することができるため、マージニングの処理中にシステムがリセットされるのを防止することができます。
最後に
ハイエンドシステムの電圧をモニタリング、シーケンシング、およびマージニングするには数多くの方法が存在します。新しい世代のシステム管理デバイスは、システムの設計者が現在直面している複雑さの問題に対処しています。従来のソリューションに代わる、この新しい全機能内蔵デバイスは、より柔軟で多くの機能を単一デバイス内に備え、基板スペースやコストの削減、および設計時間の短縮を実現します。
{{modalTitle}}
{{modalDescription}}
{{dropdownTitle}}
- {{defaultSelectedText}} {{#each projectNames}}
- {{name}} {{/each}} {{#if newProjectText}}
-
{{newProjectText}}
{{/if}}
{{newProjectTitle}}
{{projectNameErrorText}}