特殊電子回路から、Spartan-6 FPGA評価ボードの無償改修・修理のお知らせメールが届きました。どうやら、FPGAのコア部の電源を生成しているLDOが、電源投入時にオーバーシュートを起こすという話らしいです。まぁ、遊びで使っているだけなので、どっちでもいいかなぁ、と思っています。
Spartan-6のコア部は、45nm CMOSプロセスで、その電源電圧は1.2Vのようです。絶対最大定格は1.37Vですので、本当はそれを超えてはなりません。ただ、民生品のようなシステムでは、普通の安価なLDOを使う関係で、オーバーシュートが短い時間生じている場合があります。
ボクは、マイコン内蔵LDOでも同様の現象を見たことがあります。最近のマイコンには、LDOが内蔵されているものがよくあります。ユーザから見た電源電圧は3Vとか5Vなのですが、コア部の電源電圧はそれより低い電圧(例えば2.5Vとか1.8V)で、コア部に供給する電源用にLDOが内蔵されている場合があります。たぶんフラッシュやプロセッサなどの集積度をできるだけ上げたい事情があるのでしょう。そのようなものの中には、外付け容量を接続するための端子が出ているものがありますので、その端子をオシロスコープで見てみてください。見事にオーバーシュートしている場合があります。推奨の容量を使用した場合でもです。
今日は、LDOの安定性とオーバーシュートについてナショセミのドキュメントを読んで考えてみたので、書いておこうと思います。LDOはスッゴク便利で簡単に使えますが、安定性について理解しておくと工作がもっと楽しくなる気がします。ICメーカは、LDOにどんな負荷が接続されるか分からないので、絶対安定なLDOっていうものを供給するのが難しいはずです。発振するかしないかはユーザの担当です。
LDOって?
LDO(Low Drop Out)はレギュレータです。CMOSの場合、ソース接地を出力段(PMOSをドライバ)にしたレギュレータで、NMOSやNPNをドライバにした場合に比べて、入出力電位差が小さいことが特徴です。この特徴から、Low Drop Outと呼ばれるのだと思います。
LDOの安定性ってどうやって考えるの?
LDOを2段の増幅器と考えると、LDOの安定性とかオーバーシュートの原因を簡単に理解できます。まず1段目で基準電圧と出力電圧の差を利得倍した電圧を発生します。2段目はPMOSのソース接地出力段です。2段増幅器ですので、1段目と2段目にそれぞれ1つずつ、合計2つのポールが存在すると考えます。
LDOは本当は2段かどうかよく分かりません。もっと複雑なのかもしれませんが、ある程度以上はICメーカのデザイナ以外分からないので、このように仮定します。
ループの安定を保つためには、2つのポールを十分離しておかなくてはなりません。1段目のポールは1個なので、その場合は一次系ですから、利得は20dB/decで減衰します。1段目の直流利得が40dBならば、2つのポールは周波数を2桁以上離して置かなくては安定しません。
2段目のポールはPMOSソース接地と負荷容量で決定され、負荷電流によって大きく変化します。ソース接地の電流が増せば(負荷電流が増加すれば)、ポールは広域に移動します。逆に電流が減少すると、低域に移動します。1段目のポールと2段目のポールを周波数2桁分離す為には、1段目ポールを2段目ポールより低域におく必要があります。
逆は現実的ではありません。なぜなら、1段目を2段目より何桁も早くするためには、1段目のアンプにLDOの出力電流よりもずっと大量の電流を与える必要があるためです。
レギュレータの消費電流をある程度以下にするためには、2段目ソース接地の無負荷時消費電流をそれほど大きくすることができませんが、この電流によって2段目ポールが取りうる最低周波数が決まります。1段目ポールを2段目ポールの2桁分下の周波数に置くとすれば、1段目は2桁遅くする必要があり、相当に遅いアンプとなります。
LDOの中には、最小負荷電流が規定されているものがあります。これはおそらく、第2ポールが低域に来すぎると発振することが理由だと思います。
ここまで、単純化して説明しましたが、以上のようにICメーカが設計すると、ホントに遅いループになってしまい、実用に耐えない場合があります。負荷電流変動に対してもある程度は追随できなければ、負荷容量に必要な容量が増加してユーザに負担をかけますし、容量増加によって2段目ポールがさらに低域に移動し、安定性も犠牲になります。
そこで、通常のLDOでは、負荷容量とESRで生じるゼロを使って位相を戻し、安定を確保するように設計されています。DC~第2ポールの間くらいゼロが1個入れば、ループは安定になるという寸法です。ICのデータシートには、推奨されるESRと容量値が記載されています。
オーバーシュートってなんで発生するの?
出力段であるPMOSソース接地のゲートは、1段目の差動アンプでドライブされていました。1段目差動アンプは、スゴク遅くする必要があることは先に述べました。ナショセミのドキュメントでは、第一ポールが100Hzという例が出ていました。実際もおそらくその程度のオーダなのだと思います。オーバーシュートは1段目増幅器が追随できないで生じる、という可能性がまずあります。
次の原因として、電源投入時にPMOSのゲートは0V電位になっている場合がほとんどですから、負帰還が働き始めるまでの間、電源とほぼ同じ電位を出力し続ける、という可能性があります。
あるいは、LDO内部の基準電圧が定まるのが遅い、という原因も考えられます。基準電圧はBGR(Bandgap Reference)なので、これはこれで負帰還を形成しており、立ち上がりには相応の時間が必要です。
オーバーシュートについては、ソフトスタートといわれる機能が内蔵されたものを選ぶと、問題を回避できる可能性があります。ただ、ソフトスタートは、パワーオンリセットの一種なので、電源の立ち上げ波形などに依存すると思われます。
参考:
AN-1148 リニア・レギュレータ: 動作原理と補償@ナショナルセミコンダクター
関連記事:
コメント