概要
本稿では、2回に分けてデジタル・パワー・システム・マネージャ(DPSM:Digital Power System Manager)について詳しく解説しています。Part 1では、電流を検出するための様々な方法や回路のトポロジについて説明しました。今回(Part 2)は、高電圧の電源や負の電源を対象とした電流の測定方法について説明します。また、IMONピンを備えるDPSM ICを使って電流検出を行う際に使用する各種レジスタやその設定方法についても解説します。続いて、電流の測定精度の観点から考慮すべき事柄を取り上げます。更に、LTpowerPlay®という開発ツールを使用してDPSM ICをプログラミングする方法を紹介します。
高電圧、負電圧への対応
Part 1で説明したように、アナログ・デバイセズはDPSM ICの製品ファミリとして「LTC297x」を提供しています。これらの製品は、電圧と電流を検出するためのピンとしてVSENSEとISENSEを備えています。いずれのピンについても、印加できる電圧には制限があります。その上限値は6Vです。ただ、「LTC2971」だけは±60Vの電圧を許容します。以下のほとんどの部分では、LTC2971を除くLTC297xの製品を対象として説明を行います。それらの製品を使用する場合、6Vを超える電源レールや負の電源レールを測定の対象にするには、インダクタのDCR(直流抵抗)やシャント抵抗(電流検出抵抗)といった検出素子の両端の電圧を間接的に測定する方法を検討しなければなりません(以下、検出素子については基本的にシャント抵抗と表記することにします)。
抵抗分圧器
まず、ISENSEピンの最大定格電圧よりも電源電圧が高いケースについて考えます。その場合、2つの抵抗分圧器を使用する方法を思いつく方も多いのではないでしょうか(図1)。これは妥当な方法のようにも思えますが、分圧によって得られた電圧(信号)の誤差を計算してみると、問題があることに気づくはずです。抵抗分圧器は、シャント抵抗の両側に配置することになります。各分圧器によって得た電圧は、LTC297xのISENSEピン(ISENSEPピンとISENSEMピン)に入力されます。ここで、両方の分圧器の抵抗比が一致していれば、目的は達成されます。電源レールの電圧が分圧され、ISENSEピンの許容範囲内に十分に収まっています。分圧によって得られる電圧は電源電圧に比例した値になり、LTC297xによって問題なく測定が行えるはずです。しかし、抵抗の許容誤差について考えると、この手法は非現実的なものだということがわかります。また、分圧比が大きくなるほど誤差も大きくなるという問題もあります。例えば、抵抗の一方にわずか0.1%の誤差があるだけでも、それに応じた固定のオフセット誤差が生じます。ゲイン誤差の影響は非常に小さく、オフセット誤差が支配的な誤差要因になります。
例として、12Vを生成する電源回路の出力電流を測定するケースを考えます。この電源回路には2Aの出力電流能力があり、10mΩのシャント抵抗RSNSが出力パスに配置されているとしましょう。このシャント抵抗により、全負荷時には20mVの信号が発生します。適切な分圧比として1/3を選択し、分圧器の上側、下側の抵抗の値はそれぞれ2kΩと1kΩに設定しました。その結果、ISENSEピンのコモンモード電圧は4Vになります。比較的低い値を設定しているのは、LTC297xから見た信号源のインピーダンスを低く抑え、分圧器のテブナン等価抵抗からのリーク電流によって生じる誤差を低減したいからです。
ここで、回路は無負荷の状態にあり、すべての抵抗は理想的なものであるケースについて考えてみます。その場合、各分圧器の出力は4.00Vであり、電圧の差はゼロです。したがって、LTC297xのREAD_IOUTコマンドで得られる電流の検出値は0.000Aとなります。しかし、実際には、2kΩの抵抗のうちの一方に0.1%の誤差があるとしましょう。一方の抵抗の値が2.002kΩであるとしたら、分圧によって得られる電圧には2.665mVの差が生じます。ここで、ISENSEピンから見ると、フルスケールが20mV/3 = 6.667mVであることに注意してください。つまり、2.665mVの差によって0.4Aの出力電流が流れているという測定結果が得られてしまうということです。2.665mVという値は、フルスケールの40%にも達してしまうのです。先述したように、生じる誤差はオフセット誤差であり、ゲイン誤差ではありません。しかし、大きな誤差であることは間違いありません。この手法は、抵抗の許容誤差に対する感度が高すぎるということです。結論として、この電源回路の出力電流を測定するには、別の方法を考案しなければならないということになります。
ハイサイド向けの検出アンプ
「LTC2972」、「LTC2974」、「LTC2975」では、ISENSEピンに印加できる電圧は6Vまでです。これらのICを使いつつ、電圧の高い電源に対処するには、ハイサイドに対応可能な電流検出アンプ(CSA:Current Sense Amplifier)を使用してレベル変換を実施するとよいでしょう(図2)。CSAには、固定ゲインのものと可変ゲインのものがあります。アナログ・デバイセズの製品で言えば、「LT6100」、「LTC6101」などがよく使われています。これらのCSAを適用すれば、2つの分圧回路を使用する場合よりもはるかに高い測定精度が得られます。
この方法に関連する式と条件を以下に示します。
[CSA の出力電圧] = ILOAD × RSNS × (R2 / R1)
IOUT_CAL_GAIN には、RSNS(R2 /R1) を設定
VISENSEP は±170mV 以内に維持
LTC2971により、高電圧の電源の電流を検出する
60Vまでの高電圧を生成する電源回路については、LTC2971を使用することで電圧/電流を直接検出することができます。同ICは、2チャンネルを備えるDPSM ICです。いずれのチャンネルも、60Vの電源レールにおける電流検出に対応しています。また、同ICには、4種類の発注オプションが用意されています(表1)。「LTC2971-1」を使えば、一方のチャンネルで60V、他方のチャンネルで-60Vの電源における電流検出に対応できます。「LTC2971-2」は両チャンネルとも-60Vに対応しており、「LTC2971-3」はそれぞれ60Vと1.8Vに対応しています。出力電流の検出に使用するIOUT_SNSピンをシャント抵抗に直接接続することが可能であり、外付けのCSAを使用する必要はありません。そのため、コストと基板面積の増加、誤差の増大を回避できます。LTC2971における電流の測定精度は、READ_IOUTピンにおける出力電流の読み取り値において0.6%です。
オプション | チャンネル0 | チャンネル1 |
LTC2971 | 0V~60V | 0V~60V |
LTC2971-1 | 0V~60V | 0V~-60V |
LTC2971-2 | 0V~-60V | 0V~-60V |
LTC2971-3 | 0V~60V | 0V~1.8V |
ローサイドにおける電流検出
アプリケーションによっては、ローサイドで電流検出を行う手法も選択肢になり得ます。その場合、負荷のローサイドにシャント抵抗を配置し、その両端にISENSEピンを接続します。それにより、ISENSEピンのコモンモード電圧をグラウンドに近いレベルに設定できます。電源電圧が6Vより高いアプリケーションには、この方法が適しているかもしれません。実際、この方法であれば、高電圧の電源レールを含め、ほぼすべての電源レールの電流測定に対応できます。測定に使用するRSENSEの値については、高い精度を実現するために十分大きな電圧(信号)が得られるよう大きな値を選択するか、それとも大きなIRドロップが生じないよう十分に小さい値を選ぶのかという検討を行います。ここでのIRドロップが大きいと、負荷から見た出力電圧が低下し、負荷レギュレーションが悪化することになります。図3に示した回路では、シャント抵抗とVSENSE用のケルビン検出接続を使用しています。ケルビン検出というのは、検出素子との接続方法を表すために使われる用語です。これを使用することにより、IRドロップの影響を回避できます。
この手法を採用する場合に注意が必要なのは、シャント抵抗のために電流のリターン・パスを設けなければならないということです。多くの場合、実装密度の高いプリント基板は、多層のグラウンド・ポアを使用して設計されます。そのため、リターン電流は複数のパスを流れる可能性があります。シャント抵抗を使用すれば、同抵抗にリターン電流を強制的に流すことができます。そうすれば、同抵抗の両端にケルビン検出接続を適用してDPSM ICのISENSEピンへの接続を実現できます。
負の電源レールにおける電流検出
負の電圧を生成する電源回路の出力電流は、いくつかの方法で測定できます。最も簡単なのは、「LTC6105」のようなローサイドに対応できるCSAを使用することです。その場合、図4に示すようにCSAの入力にシャント抵抗の両端のノードを接続します。CSAには、DPSM ICのVDD33と負の電源レールのローサイドから電力を供給します。CSAの出力はシングルエンドの信号であり、DPSM ICのISENSEピンかVSENSEピンに接続することが可能です。
CSAをISENSEピンに接続する場合には、IOUT_CAL_GAINをRSNS×GAINCSAに設定します。例えば、シャント抵抗の値が10mΩで、CSAのゲインが10である場合、IOUT_CAL_GAINは100に設定するといった具合です。IOUT_CAL_GAINの単位はmΩです。
負の電源レールの出力電流を検出するための最も簡単な方法は、LTC2971-1またはLTC2971-2を使用することです(図5)。いずれも2チャンネルを備えていますが、LTC2971-2であれば、どちらのチャンネルでも-60Vまでの電源レールの電流を検出することができます。LTC2971-1の場合、チャンネル1でのみ負の電源レールに対応可能です。
なお、LTC2971のREAD_VOUTの値はL16形式で、符号はありません。負の電源レールを対象とする場合、GUI(Graphical User Interface)に表示される値が反転します(図6)。

IMONピンの使用例
IMONピンの電流出力を使えば、電流検出に使用するゲインと最大電圧を設定するための抵抗の値を選択することができます。DPSM ICは、ISENSEPピンとISENSEMピンの間の電圧を測定します。シャント抵抗を使用する検出方法と同様に、検出用のゲインはMFR_IOUT_CAL_GAINを使って設定します。
ここでは、IMONピンを備えるLDOレギュレータ「LT3081」を例にとります(図7)。LT3081のIMONピンから出力される電流の値は、負荷電流を5000で割ったものになります。2kΩの抵抗を使用する場合、1Aの負荷電流に対してIMONピンに現れる電圧は、以下の式で表せます。
VIMON = (ILOAD / 5000) × 2000Ω = 0.4 V/A
同様に、負荷電流が2Aであれば、IMONピンに現れる電圧は0.8Vになります。上の式から、IMONピンに接続する抵抗の値を大きくするだけで、負荷電流に対する同ピンの電圧感度を高められることがわかります。但し、そのような設定にした場合、最大電圧(全負荷時)が1Vを上回る可能性があります。DPSM ICのISENSEピンがそのような広い電圧範囲に対応していなければ測定は行えません。LTC2974/LTC2975の場合、差動電圧範囲は±170mVに制限されているので、そのような電圧には対応できません。一方、LTC2971/LTC2972の場合、imon_senseビットを設定することで、最大6Vのシングルエンド電圧に対応して電流検出を実現することができます(図8)。

構成(コンフィギュレーション)用のコマンドは、選択したハードウェアに応じて使用しなければなりません。この例では、IOUT_CAL_GAINを400(0.4V/A)に設定する必要があります(単位はmΩ)。電流に関連する他のコマンドでは、READ_IOUTの値に影響を与える可能性がある温度係数や熱時定数が存在しない場合でも、デフォルトの値が設定されていることがあります。例えば、MFR_IOUT_CAL_GAIN_TC、MFR_IOUT_CAL_GAIN_TAU_INV、MFR_IOUT_CAL_GAIN_THETAのデフォルトの値はゼロです。
降圧レギュレータ「LT7101」のIMONピンは、電圧駆動型の出力に対応しています。この出力にはオフセット電圧が設定されており、無負荷の状態では同ピンに0.4Vが現れます。LTC2974/LTC2975のISENSEピンの場合、差動電圧の上限値は±170mVなので、そのままでは対応できません。一方、LTC2971/LTC2972は、この種のIMONピンを検出する機能を備えています。両ICは、検出結果に応じ、ISENSEピンにおいて、はるかに大きい差動信号を許容するよう動作させることが可能です。
図9の例をご覧ください。この回路では、LTC2971/LTC2972のISENSEMピンをグラウンドに接続し、ISENSEPピンをLT7101のIMONに接続しています。この場合、使用するコマンドに対応する値は、以下に示すような手順で計算することができます。
まず、READ_IOUTに対応する式は以下のようになります。
この式を変形し、IOUT_CAL_GAINについて解くと次式が得られます。
ここでは、TCORRECTION = 1としています。
LT7101のデータシートを見ると、1Aと0.25Aの負荷電流に対するIMONの電圧レベルは、それぞれ1.21Vと0.603Vであることがわかります。したがって、IOUT_CAL_GAINに対応する値は、以下のように計算できます。
IOUT_CAL_OFFSETに対応する値は、次式によって求められます。
IOUT_CAL_OFFSETに対応する値は、READ_IOUTに対応する値を低くする必要があるので負の値とします。また、計算したレジスタの値は、負荷電流の測定値とREAD_IOUTの読み取り値の相関を改善するために変更しなければならないケースがあります。そのためには、キャリブレーションのステップを追加しなければなりません。具体的には、既知の負荷電流を強制的に流し、READ_IOUTの値を予想値と比較して、調整した値をIOUT_CAL_GAINやIOUT_CAL_OFFSETに書き込みます。一般に、多くのレギュレータのIMONピンの出力精度は、電流測定に使用するシャント抵抗の精度ほど高くありません。しかし、キャリブレーションを実施すれば、電流の測定精度を大幅に高めることができます。
電流の測定精度
電流の測定値の精度は、それに関わる各種要素の誤差の総計という形で決まります。ほとんどのシステムでは、負荷電流が変化する範囲の中央付近から上限近くにおける精度が重要になります。システムによっては、負荷が軽い状態での精度が重視されることがあります。つまり、検出すべき信号が非常に小さいケースが重要になるということです。測定精度に影響を及ぼす要素としては、検出素子(シャント抵抗やインダクタのDCR)、基板のレイアウト、アンプ回路、測定回路の4つが挙げられます。
精度について吟味する際には、総合未調整誤差(TUE:Total Unadjusted Error)という用語について明確にしておかなければなりません。LTC297xの全製品のデータシートには、TUEについての記載があります。TUEは、電圧測定、電流測定のそれぞれに対して規定されています。TUEという言葉の意味は、次のようなものになります。すなわち、VSENSEピンまたはISENSEピンから内蔵デジタル回路までのパス内に存在する内部リファレンス、バッファやアンプのゲイン誤差/オフセット誤差に起因する誤差の総計です。TUEは、プロセス変動や温度の面で最も厳しい条件下における誤差を、READ_IOUTまたはREAD_VOUTの読み取り値の百分率として表したものです。TUEが明確になっていれば、VREFの誤差やA/Dコンバータ(ADC)の誤差など、IC内の各要素からの寄与分を計算する手間を省けます。但し、外付けのコンポーネントに関連する要素(CSAとそれに関連する抵抗、シャント抵抗、インダクタのDCR、IMONの電流)はTUEには含まれません。したがって、それらの誤差の影響については別途考慮する必要があります。
先述したように、最高の精度を得るには、出力パスに配置する検出素子に注意を払う必要があります。一般に、RSENSEの許容誤差としては1%が採用されます。許容誤差が1%の抵抗は安価であり、入手が容易です。通常、抵抗値としては0.5mΩ~数十mΩが選択されます。抵抗値を決定するには、測定の対象とする電流値の範囲と、その範囲の両端における所望の精度について検討しなければなりません。RSENSEに電流が流れると、その両端に電圧(IRドロップ)が生じます。その値(信号)を測定し、オームの法則によって電流値を求めるというのが電流検出の基本的な原理です。負荷が軽い状態で良好な精度を得るためには、値の大きい抵抗を使用して十分に大きな信号を取得したいところです。しかし、そうすると負荷が重い状態ではIRドロップが大きくなりすぎ、電源の性能に悪影響が及ぶ可能性があります。レギュレータでは、帰還信号は負荷の部分から取得し、検出ポイントは負荷の両端に接続するということを想定しています。その理由は、ハイサイドとグラウンドのリターン・パスの両出力パスで生じる電圧降下を考慮しているからです。RSENSEは、レギュレータの帰還ループ内に配置します。なお、基板の銅パターンも、IRドロップによる損失の原因になります。
ここで、具体的な例を基に測定精度について考えてみます。電源回路は最大10Aの電流出力能力を備えており、負荷側は100mAまで良好な精度を必要とすると仮定します。また、全負荷時にはIRドロップを50mV未満に抑えたいとしましょう。シャント抵抗が帰還ループ内に配置されている場合、電流の検出に向けてより高い電圧を生成するだけの余裕はあるとします。検出用の信号が大きくなった場合の欠点は、シャント抵抗でより多くの電力損失が生じることです。このことは、抵抗値を選択する際の基本的なトレードオフ項目となります。RSENSEの値は、全負荷に対応する電流が流れた際の検出電圧を基に計算します。この例であれば、50mV/10A = 5mΩです。したがって、許容誤差が1%で値が5mΩの抵抗を選択することになります。
LTC2972/LTC2974/LTC2975を使用して、20mVを超える電圧(4Aを超える負荷電流に相当)を検出するケースを考えます。その場合、達成される精度は抵抗の許容誤差である1%とデータシートに記載されたTUEである0.3%を加えた1.3%となります(表2)。なお、検出する電圧が20mV未満の場合のTUEは、±60µVと規定されています。負荷電流が100mAであるとすると、発生する信号は0.1A×0.005Ω = 500µVとなります。負荷が軽い場合、誤差は±12%(60µV/500µV)とはるかに大きい値になります。このケースではTUEが支配的であり、抵抗の許容誤差は精度にほとんど影響を及ぼしません。具体的な値で言えば、誤差は±12mAです。TUEは、ICが内蔵するリファレンスやADCの誤差を含んだ値です。許容誤差の小さいシャント抵抗を選択すれば、より高い精度が得られます。
負荷電流 | 検出電圧 | LTC2972/LTC2974/LTC2975のTUE | 抵抗の許容誤差 | READ_IOUTの精度 | READ_IOUTの精度 |
100mA | 500µV | 60µV | 1.0% | ±13% | ±13mA |
100mA | 500µV | 60µV | 0.1% | ±12.1% | ±12mA |
10A | 50mV | 0.3% | 1.0% | ±1.3% | ±130mA |
10A | 50mV | 0.3% | 0.1% | ±0.4% | ±40mA |
上で説明した内容は、6V未満の電源レールに対応するほとんどのLTC297xファミリ製品に当てはまります。LTC2972/LTC2974/LTC2975では、ISENSEピンをシャント抵抗に直接接続できるので、外付けのCSAは必要ありません。6Vを超える電源レールの場合、ほとんどのLTC297xファミリ製品ではCSAが必要になります。例外はLTC2971であり、最大±60Vの電源レールにISENSEピンを直接接続することが可能です。LTC2971のTUEは0.6%で、LTC2972/LTC2974/LTC2975のTUEの2倍に達します。ただ、最大±60Vの電源電圧に対応してシャント抵抗をIOUT_SNSピンに直接接続することができます。
「LTC2977」、「LTC2979」、「LTC2980」、「LTM2987」を使用して6Vを超える電源の出力電流を測定する場合には、CSAのシングルエンド出力をVSENSEピンに入力します。どのチャンネルも使用可能ですが、adc_hiresビットはデフォルトの設定である0のままにしておかなければなりません。出力電流の測定値は、READ_VOUTレジスタから読み取った電圧値を電流値に変換することで取得します。VSENSEピンは、LTC2974/LTC2975のISENSEピンの上限値である170mVよりも広いダイナミック・レンジを備えていることに注目してください。VSENSEPピンは6Vまで対応可能なので、CSAのゲインを高く設定し、検出電圧としてより大きな値を用いることができます。考慮すべきパラメータは、CSAの入力オフセット電圧VOSです。CSAの出力誤差は、このVOSにゲインを乗じることで決まります。VOSが85µV(LTC6101の場合)でゲインを100に設定した場合、出力誤差は8.5mVにも上る可能性があります。VSENSEピンに対応するTUEは、1V未満の場合で2.5mV、1Vを超える場合で0.25%です。CSAのゲインは、出力誤差を最小限に抑えるために低く設定しなければなりません。ただ、VSENSEピンが対応する広い信号範囲を活かすためには、十分に大きい値に設定すべきです。CSAに起因する誤差は、与えられたゲインの設定に対してmVレベルの固定値になります。表3にRSENSEが5mΩの場合の各値の例を示しました。最後の列には、変換後の出力電流値の誤差を示しています。
負荷電流 | 検出電圧 | CSAのゲイン | VSENSE | LTC297xのTUE | CSAの誤差 | READ_VOUTの誤差 | 変換後の出力電流の値 |
100 mA | 500 µV | 20 | 10 mV | 25% | 17% | ±42% | ±42 mA |
100 mA | 500 µV | 100 | 50 mV | 5% | 17% | ±22% | ±22 mA |
10 A | 50 mV | 20 | 1 V | 0.25% | 0.17% | ±0.42% | ±42 mA |
10 A | 50 mV | 100 | 5 V | 0.25% | 0.17% | ±0.42% | ±42 mA |
表3を見ると、検出電圧が大きい場合、外付けのCSAを使うことでかなり良好な精度が得られています。その一方で、検出電圧が小さい場合には誤差が大きくなることもわかります。
高い精度で電流測定を行うためには、十分に大きい検出電圧(信号)を生成しなければなりません。シャント抵抗によって得られる電圧は、ICや基板レイアウトに起因して発生するノイズ/誤差よりも十分に大きくなければなりません。適切な大きさを求めるためには、まず負荷が軽い場合の精度の重要度を定めてからS/N比の見積もりを行います。許容可能な精度が得られる最小の検出電圧を、測定の対象となる最小の電流値で割った値を考慮することで、最適な抵抗値を算出することができます。
繰り返しになりますが、最高の精度を実現するためには、可能な範囲で信号が最大になるようにします。また、コンポーネントや基板レイアウトによる誤差も最小限に抑えなければなりません。つまり、値が大きく、許容誤差の小さい抵抗を使用することが非常に重要です。更に、キャリブレーションを適用するのも有効な手段です。キャリブレーションの手順としては、まず既知の負荷電流が得られる状態で、READ_IOUTの値を測定します。続いてIOUT_CAL_GAINの値を調整し、測定値の誤差が最小になるようにします。最後にSTORE_USER_ALLコマンドを使用し、調整後の値をICのEEPROMに格納します。
シャント抵抗に関連する注意点
シャント抵抗を使用する方法の長所は、1%未満の許容誤差の抵抗を選択することで、インダクタのDCR(直流抵抗)を使用する方法よりも高い精度が得られる点にあります。また、一般的な抵抗の温度係数は、インダクタのDCRと比べてかなり低く抑えられています。但し、許容誤差が非常に小さい抵抗を購入できたとしても、基板レイアウトやハンダに問題があると、その力を発揮できなくなる可能性があります。
シャント抵抗を使用する方法の欠点は、IRドロップによって損失が生じることです。それにより熱が発生すると共に、出力パスに電圧降下が生じます。先述したように、IRドロップはシャント抵抗を帰還ループ内に配置することによって大幅に低減されます。レギュレータのループによって、無視できるレベルまで電圧降下を抑えられるようになります。
抵抗Rcmについては、LTC297xの差動入力電流によって差動の誤差電圧が生じないよう値を等しくしなければなりません。Rcmの値が一致していない場合、フィルタの部品の許容誤差に起因する誤差が発生します。一般に、Rcmとしては値が1kΩより小さいものを選択します。
基板のレイアウト
シャント抵抗またはインダクタのDCRを使って電流を測定する場合、基板のレイアウトも重要な要素になります。負荷が高い状態では、ハンダの接続部でIRドロップが生じ、電流を検出するための接続によって測定精度に影響が生じる可能性があるからです。基板のレイアウトでは、電流を検出するポイント間において、パッドへ至る接続部でIRドロップが生じないようにすることが重要です。図11に3種のレイアウトの例を示しました。これらはパッドの内側に対する接続部を表していますが、いずれもIRドロップを避けられるように工夫が施されています。パッドにおいて、これらの領域には電流がほとんど流れないか、全く流れないようになっています。図11(左)のレイアウトは、検出ポイントの位置(パッドの側面)に一部、電流パスが形成されています。そのため、いくぶんIRドロップの影響を受けます。
図12に示すように、電流検出の用途向けには4端子の抵抗製品が販売されています。2つの端子はメインの電流パスで使用し、残る2つの端子はケルビン検出接続に使用します。出力電流が20A以上で高い精度を必要とするアプリケーション向けには、値が100µΩ以下、4端子、合金製のシャント抵抗製品が提供されています。また、値の大きい抵抗製品に対しては、値の小さい製品と比べてより厳しい許容誤差を設定しているメーカーもあります。許容誤差が0.1%で値が1mΩの抵抗と、許容誤差が0.5%で値が400µΩの抵抗のうちどちらを使うべきなのでしょうか。このような基本的なトレードオフについて検討を行うことが求められます。
シャント抵抗用の基板レイアウトについては、「低抵抗値シャント抵抗のレイアウトパッドの改善による高電流検出精度の最適化」を参照してください。
LTC2977/LTC2979/LTC2980/LTM2987による電流の測定
LTC2977/LTC2979/LTC2980/LTM2987の電流測定機能には、いくつかの制限があります。これらの製品は、奇数チャンネル(チャンネル1、3、5、7)で電流を測定するように構成することができます(図14)。そのためには、当該チャンネルを高分解能モード(MFR_CONFIG_LTC2977のビット9)に設定する必要があります。そうすれば、VSENSEMピンを最大6Vのコモンモード電圧に接続できるようになります。VSENSEPピンとVSENSEMピンは、インダクタ(のDCR)またはシャント抵抗RSNSに接続することができます。

ただ、これらの製品の偶数チャンネルはこの機能をサポートしていません。そのため、VSENSEMピン(チャンネル0、2、4、6)の電圧はグラウンドから±100mVの範囲内に抑える必要があります。
上記のモードにおいて各チャンネルが提供するのは、電流値をテレメトリ・データとして読み取る機能だけです。adc_hiresビットを設定すると、VOUT_ENがディスエーブルになり、すべてのフォルト応答がディスエーブルになります(図13)。これは、LTC2977の場合にはチャンネルを強制的にオフの状態にすることに相当します。そのため、検出素子の両端の電圧をmV単位で読み取ることしかできません。
LTC2977/LTC2979/LTC2980/LTM2987は、便利なREAD_IOUTレジスタを備えていません。つまり、DCRやRSNSの値を格納する手段が存在しないということです。代わりに、READ_VOUTコマンドを使用して未処理の差動電圧の値を読み取ります。システムのホストは、その読み取り値をシャント抵抗の値で割ることで電流値を算出することになります。差動電圧の値は、L16形式ではなく、L11形式で与えられることに注意してください(単位はmV)。システムのホストやFPGA/CPUを使って電流を読み取る場合、mV単位の値をmA単位/A単位の値に変換する必要があります。L11形式の16進数を浮動小数点数に変換するコードについては、アプリケーション・ノート「AN135」を参照してください。
LTpowerPlayは、上記のmV単位の読み取り値をmA単位の電流値に変換する機能を備えています。また、READ_VOUTレジスタの値を調整するために倍率を適用することもできます。この機能を使用したい場合には、「Config」ウィンドウの「Setup」タブをクリックしてください。
「VOUT Display Scaling」のボックスに入力する値は、1/RSNSと同じ値に設定する必要があります(図15)。外付けのCSAを使用する場合には、倍率を1/(GAINCSA/RSNS)に設定します。「Display Units」のフィールドで「V」を「A」に変更すれば、V単位の値からA単位の値に変更することができます。このような変更を行うことで、読み取り値を基に計算した電流値を表示することが可能になります。得られた値は、シャント抵抗を使って測定する実際の電流値と一致します。例えば、RSNSが10mΩ(0.01Ω)である場合、「VOUT Display Scaling」は100に設定します。これにより、READ_VOUTレジスタを使用した場合、mA単位の値がレポートされるようになります。この値には、ICで測定した電圧値に対応し、1mVにつき100mAの電流値が反映されます。この例では、10mΩのRSNSによって電源レールに592mAの負荷が生じます。ICによる測定値は5.92mVでした。なお、「Setup」の下の倍率/オフセットの値は、ICの不揮発性メモリではなく、.projファイルに保存されます。


LTC2977/LTC2979/LTC2980/LTM2987の場合、差動電圧(VSENSEPn ピンの電圧 - VSENSEMn ピンの電圧)は±170mVまでに制限されます。そのため、シャント抵抗の値は、それによるIRドロップがこの制限を超えないように選択しなければなりません。これらのピンは、最大6Vのコモンモード電圧を許容します。例えば、電流が3Aのレベルにあると想定される場合、50mΩのシャント抵抗を使用すると、ADCには150mVの電圧が供給されます。対応可能な範囲は3.4Aまでです。大きな信号が得られることから精度の面では適していますが、出力パスにおける150mVのIRドロップはかなり大きい値だと言えます。電流の測定精度と出力のIRドロップは、検討すべき基本的なトレードオフです。帰還ループは、常に負荷によって閉じなければなりません。そうすれば、レギュレータ/サーボによって適切な出力電圧が得られるよう調整できるようになります。詳細については、LTC2977のデータシートをご覧ください。
例として、ここでは奇数チャンネルの1つを出力電流の測定に割り当てるケースを紹介します。具体的には、チャンネル7によってチャンネル6(3.0Vの電源)のIOUTを測定する例を示します(図17)。

奇数チャンネルをADCの高分解能モードに設定すると、VOUT_ENピンを使用できなくなり、スーパーバイザ機能がディスエーブルになります。結果として、過電流の状態を迅速に検出することができなくなります。ただ、CSAを使用し、シングルエンドの信号をVSENSEPピンに入力するようにすれば、どのチャンネルの電流でも監視することが可能になります(ADCが低分解能モードの場合)。そうすることで、電圧に対応するチャンネルをCSAの出力の監視に割り当てられるようになります。伝搬遅延の値は、CSAによる遅延、DPSM ICで生じる遅延、受動部品(抵抗やコンデンサ)による遅延を合算することで得られます。DPSM ICで生じる遅延は、フォルト応答を即時オフとデグリッチ・オフのうちどちらに設定するのか、また遅延のカウントの設定をどのようにするのかによって異なる値になります。
OC/UCフォルトのスーパーバイザ
アプリケーションによっては、高価な負荷に電力を供給しなければならないケースもあるでしょう。そのような場合には、過電流(OC:Overcurrent)や低電流(UC:Undercurrent)から負荷を保護したいはずです。このようなニーズに応えるために、LTC2974/LTC2975は出力電流を対象とするスーパーバイザ機能を内蔵しています。両ICでは、スーパーバイザ専用のハードウェアによってOC/UCの状態を検出したらチャンネルをシャットダウンするように構成することができます(図18)。この機能は、電圧と電流の両方を対象としています。つまり、出力電圧または出力電流がユーザが定義した制限値を超えると、チャンネルがシャットダウンします。これらのスーパーバイザは、ICの内部でVOUT_ENのロジックと統合されています。LTC297xファミリの各製品がスーパーバイザ機能に対応しているか否かについては、前回(Part1)の記事で示した表1を参照してください。

フォルトに対応するスーパーバイザ機能は、ユーザが閾値を調整できるサンプリング・コンパレータを利用して実装されています。このコンパレータは、12.1マイクロ秒ごとにサンプリングを実施します。また、ユーザが定義した設定に基づいて出力ノイズのデグリッチを実施できるようになっています。スーパーバイザは、ある回数(delay_count)連続してフォルトの状態が発生した場合だけトリップを実行します。これは、時間ベースのフィルタだと言うことができます。delay_countの値としては、最大7まで設定することが可能です。これに対応し、OCの発生に対する応答が84マイクロ秒にわたってデグリッチされます。それにより、幅の狭いグリッチは検出せず、より幅の広いパルスに対応してフォルトが宣言されるようになります。負荷とマネージャの間にRCフィルタが配置されていれば遅延が付加されます。フィルタによってグリッチの振幅は低減しますが、スーパーバイザの応答には遅延が生じます。データシートでは、時定数としてはスイッチング周波数(周期)の1/10を確保することを推奨しています。この値は、フィルタによる遅延がスーパーバイザの応答時間より長くなりすぎないようにするための目安となります。OCに対する高速な応答が求められる低ノイズの電源では、2マイクロ秒の遅延(200Ω/10nF)を選択するとよいでしょう。ノイズの多い電源については、1kΩ/0.1µFのRCによって100マイクロ秒の遅延を設けます。遅延の値が大きすぎるように感じるかもしれませんが、ADCの読み取り時間(約100ミリ秒)と比べればはるかに短い時間です。
UC向けのスーパーバイザ機能は、出力におけるUCの状態や逆電流の状態を検出します。UCの状態は、負荷が軽い場合によく発生します。UCというフォルト状態は、望ましくないものである可能性があります。但し、測定される出力電流値はそもそも負の値であるケースもあります。そのため、UC向けのスーパーバイザ機能は通常は使用されません。ただ、IOUT_UC_FAULT_LIMITを負の値に設定することにより、逆電流の状態の検出に使われることがあります。UCに対応するフォルト検出をディスエーブルにするには、IOUT_UC_FAULT_RESPONSEをIgnoreに設定し、IOUT_UC_FAULT_LIMITに大きな負の値を設定します。デフォルトの設定は-1Aです。
LTC2971/LTC2972は、OCに対応するフォルト検出機能は備えていませんが、警告機能を内蔵しています。同機能はADCによる出力電流の測定値に基づくもので、警告を発すべき場合にはALERTBをローに引き下げてSTATUS_IOUTレジスタを更新します。ADCによる読み取りには応答時間がかかるので、この警告機能はハードウェア・ピンおよびPMBus®のレジスタを介した状態インジケータとしての利用を想定して用意されています。ALERTBをCONTROLピンにつなぐと、チャンネルをシャットダウンすることができます。あるいは、マイクロコントローラにより割り込みを宣言することでALERTBに応答してCONTROLピンを駆動したり、PMBusのコマンドを発行することによってチャンネルをシャットオフしたりすることも可能です。ALERTBをCONTROLピンにつなぐことには1つの欠点があります。それは、あらゆる警告やフォルトの発生に対応してチャンネルがシャットダウンしてしまうというものです。
LTC2971/LTC2972/LTC2974/LTC2975では、TSENSEピンを使用してインダクタのDCRを補償することができます。その場合、温度に対応してチャンネルをシャットダウンすることが可能です。これは、別の形態のスーパーバイザ機能だと言えます。過熱に対するフォルト、警告に対する制限値、フォルトに対する応答は、アプリケーションに応じてチャンネルごとに調整することが可能です。個々のチャンネルをシャットダウンすることができるわけですが、これは(IC全体にわたる)グローバルな設定ではありません。
L11形式の電流の読み取り値
DPSM ICから読み出されるのは、L11形式の16進数の値です。LTC2977(ADCの高分解能モード)のREAD_VOUTレジスタから値を読み出す場合も、LTC2975/LTC2974/LTC2972/LTC2971のREAD_IOUTレジスタから値を読み出す場合も、L11形式が使われます。つまり、指数部が5ビットで仮数部が11ビットの符号付きの値がやり取りされます。
L11形式は、電流の測定値の極性に対応しています。つまり、符号付きの値なので、READ_IIN/READ_IOUTレジスタによって、電流の流れる方向に関する情報をシステムのホストに提供することができます。LTC2974/LTC2975では、UCの判定に用いる閾値を設定することが可能です。過大な電流をシンクする(逆方向の電流)チャンネルをシャットダウンしたい場合、負の値を利用することでそれを実現できます。
L11形式には、粒度という固有の性質があります。LTC2971/LTC2972/LTC2974/LTC2975のデータシートには、READ_IOUTの値の粒度についてまとめた一覧表が掲載されています。ここで言う粒度は、L11という16進数の形式に固有のものです。LTC297xファミリや、それらが内蔵するADCなどのハードウェアの制約によるものではありません。上記の表には、MFR_READ_IOUTの粒度についてもまとめられています。MFR_READ_IOUTの値は、カスタムの形式で表現されます。分解能が高く、その粒度は2Aを超えても2.5mAに達します。この形式の対応範囲は±81.92Aです。基板に実装されたホスト(CPUやFPGA)でL11形式から浮動小数点数への変換を行う必要がある場合には、どちらかのレジスタに対して読み取りコマンドを発行することができます。READ_IOUTレジスタの値には±81.92Aという制限はなく、2A未満の電流に対しても高い分解能が得られます。一方、MFR_READ_IOUTの値は、2.5mA刻みの最も近い値に変換されます。
LTpowerPlayによるDPSM ICのプログラミング
DPSM ICであるLTC297xファミリをプログラミングし、初めて電源を投入することに成功すれば、大きな価値を得ることができます。そのプログラミングは、LTpowerPlayを使うことで容易に実施することが可能です。LTpowerPlayはWindows®上で動作するツールであり、無償でダウンロードすることができます。プログラミング用のユーティリティを備えており、保存しておいた構成用のデータを取得してDPSM IC上のEEPROMに書き込めるようになっています。電源を再投入すると、各ICはEEPROMからRAMに自動的にデータをロードし、動作に向けた準備を自律的に整えます。
LTpowerPlayを初めて使用する方は、ぜひ「LTpowerPlay Software-Based Power Supply Configuration and Debug Tool」というビデオをご覧ください。それにより、LTpowerPlayを使って構成、設計、評価、診断、デバッグを行う方法を学ぶことができます。プログラミングを行うためにLTpowerPlayを使用したり、テレメトリを利用したりする予定がない場合には、LinduinoのC言語のサンプル・コードをダウンロードしてみるとよいでしょう。それらのサンプルは、LTSketchbookのZIPファイルとして提供されています。

以下に、.projファイルを作成する際に役立つチェックリストを示しておきます。
- 各 DPSM IC が PMBus 上で一意的なアドレスを有していることを確認します(ハードウェア・ストラッピング)。
- 各出力チャンネルに対応するIOUT_CAL_GAINを設定します。
- ここで設定するのは、RSENSE の値、インダクタの DCR の値、IMON ピンを利用する場合の計算値です。
- 入力電流を測定する各 IC(LTC2971/LTC2972/LTC2975)に対し、IIN_CAL_GAIN を設定します。
- 温度に関連する設定を行います(例えば、MFR_IOUT_CAL_GAIN_TC、MFR_IOUT_CAL_GAIN_TAU_INV、MFR_IOUT_CAL_GAIN_THETA など)
- IOUT_OC_FAULT_LIMIT と IOUT_OC_FAULT_RESPONSE を設定します(LTC2974/LTC2975)。
- IOUT_UC_FAULT_LIMITとIOUT_UC_FAULT_RESPONSEを設定します(LTC2974/LTC2975)。
- LTpowerPlay の Configuration Wizard を使用すると、ファイルの生成が容易になります。
まとめ
アナログ・デバイセズは、DPSM製品としてLTC297xファミリを提供しています。LTC297xはPMBusに対応するミックスド・シグナルICであり、電源電流の測定/監視に利用できます。本稿では、同ファミリの製品とシャント抵抗/インダクタのDCR/IMONを組み合わせて電流を検出する方法を紹介しました。また、LTC297xファミリの中には、OC/UCに対応するフォルト・スーパーバイザという別次元の保護機能を備えているものがあります。同ファミリの製品を使用すれば、あらゆる電源回路に電圧/電流の監視機能、スーパーバイザ機能、測定機能を適用することができます。特に、高価な電源回路においては、そうした機能が非常に役に立ちます。加えて、LTC297xはPMBusに対応するレジスタの構成機能を備えています。そのため、設計のどの段階でも、あるいは基板が現場に配備された後であっても、基板の設計に変更を加えることを可能にする柔軟性を得ることができます。