メッセージ

2007年09月08日の記事

2007/09/08(土)ピークホールドにみるダイオードのリカバリー特性

※この記事で解説していることは半分誤っています。ダイオードの特性よりもオペアンプのスルーレートが問題であり、FETでバッファすることはスルーレート改善に効果的です。


ピーク検出回路などではダイオードが整流のために使われます。実際のダイオードは理想的ではないため簡単には行きません。100kHz の sin波 を検出することを考えてみます。

1 単純なピーク検出回路

peak_hold.gif

まずは誰もが思いつく簡単なピークホールド回路です。回路図中のRは放電用抵抗です。CRで時定数となりますが100kΩ~1MΩ、Cは0.01uF~1uFなどを使用します。例えば、100kΩ、0.01uFならば時定数は100k*0.01u=1msとなります。

「入力電圧>出力電圧」(コンデンサに充電されている電圧)のとき、ダイオードの電流が流れコンデンサが充電され「入力電圧=出力電圧」となるとダイオードがオフになって最大電圧を計ることができるという回路です。

この回路がうまく行かないことは多くの人が気づくと思います。ダイオードには順方向電圧というものがあり、約0.7Vの電圧降下が起こります。逆に言えば「入力電圧>出力電圧+0.7V」でないとダイオードに電流が流れませんので、0.7Vより小さな信号のピークを計測することができません。

またダイオードには電流によって順方向電圧が非線形に変化する特性がありますので、これもまた正確な測定には向きません(下図は1N4188の電流電圧特性)。

1N4188.gif

2 典型的なピーク検出回路

ダイオードの順方向電圧や非線形特性の問題をクリアするための典型的なピーク検出回路です。FET入力のオペアンプ(コンパレータでも可)を使用します。*1

peak_hold2.gif

出力電圧より入力電圧が高い場合、電圧差に関わらずオペアンプは+V(電源)に近い電圧を出し続けますので勢いよくコンデンサが充電されます。そして入力電圧より出力電圧が高くなれば、オペアンプは-Vを出力しダイオードに電流が遮断さることによって、ピーク時の電圧がコンデンサにより保持されます。

実際この回路は機能的に動きます。オペアンプ LF356N、C=0.33uF、R=220kΩ、D=1S1588(小信号高速スイッチング用)、電源±15Vで実際に出力電圧を計測してみましょう。DCは直流、sinは0-p電圧です。

入力電圧DCsin 100kHz
50mV35.0mV-0.2mV
100mV71.1mV-0.4mV
200mV170.0mV-0.3mV
300mV268.6mV45.7mV
400mV367.7mV117.3mV
500mV466.2mV192.6mV
700mV664.1mV349.2mV
1V955.6mV594.1mV
2V1.944V1.439V
3V2.932V2.290V
5V4.906V3.969V

DCならばきちんと計れていますが、100kHzのsin波はまともに計測できているとは言い難い状況です。200mV以下のsin波に至っては全く計測できないことになります。

*1 : バイポーラ構造では入力インピーダンスが低くコンデンサが放電されてしまうために使用できません

3 理想的ではないダイオードのリカバリ特性とは?

DCだと計測できるのに、高々100kHzのsin波だとまともに計測できない。しかもDCの方は線形な変化をするのに対し、sin波の方は非線形な入出力特性を持っています。一体何が起こっているのでしょうか?

ダイオードにはリカバリー特性というものがあります。PN接合面がONになった状態から、逆電圧が掛かりダイオードがOFFになるまでの時間のことをリカバリタイムと言います。詳細はリンク先を参照して頂きたいのですが、PN半導体に存在する電子やホールが移動することによってダイオードはオフになります。実はこの移動時間というのは速くありません。それは電子などの信号の伝達時間と違い、物理的な移動時間だからです。

peak_hold2x.gif

よって、入力電圧が現在の保持電圧を下回ってもすぐにはオフにならず、せっかく溜まっていた電荷が-Vにめがけて流れ出してしまいます。よって電圧が下がってしまうのです。微小信号では、コンデンサにたまる電荷 Q=CV の V が少ないので素早く放電されてしまうどころか、マイナスの電荷をため込んでしまうというわけです(電源電圧 -V=-15V は、充電されている電圧 100mV などに比べ非常に大きいため簡単に流れ出します)。

一般に、周波数が高ければ高いほど、検出電圧が低ければ低いほど、その測定は困難になります。

4 解決策は?

まず思いつくのがダイオードをFRD(ファーストリカバリダイオード)やSBD(ショットキーバリアダイオード)などのリカバリ時間短いものに変更することでしょう。

試しにSBDで実験すると、まともに計測できなくなりました。SBDの特性として忘れてはいけなのは漏れ電流が大きいことです。漏れ電流によりそのまま放電されるため整流(波形整形)すらできなくなり、sin波がほぼそのまま出力されます。そもそも小信号高速スイッチング用である1S1588の逆回復時間は4ns程度でして、FRDよりよっぽど速いくらいです*2

そもそもの問題はダイオードの前に -V が出力されてしまうことで、この部分をクリアすれば(完全には解決しないにしろ)かなり良くなるだろうと考えました。

*2 : SBD/FRDは大きな電流を流せる整流用ダイオードでのお話です。

5 FETバッファ付ピーク検出回路

peak_hold3_0000.gif

負電圧-Vを出力せず、FETでスイッチしてしまうという回路です。+Vとハイインピーダンス出力になります。実際にはわずかに電圧がゲートからドレイン側に漏れるため、すこしだけ電位が下がってしまいます。

FETの代わりにバイポーラトランジスタを使うことはできません。2SC1815で試しましたがほとんど改善しませんでした。考えてみれば単純な話で、バイポーラトランジスタのベースエミッタ間は単なるダイオードですから、結局同じ問題に当たるわけです。

計測結果をここに示します。その他条件は上と一緒です。

入力電圧出力電圧ダイオードなし回路
50mV28mV40mV
100mV61mV87mV
200mV128mV183mV
300mV194mV280mV
400mV260mV378mV
500mV325mV475mV
700mV458mV671mV
1V658mV966mV
2V1.505V1.97V
3V2.362V2.96V
5V4.060V4.95V

小さい電圧も検出できるようになりましたが、結局ダイオード等の非線形性からは逃れられず、入出力電圧が非線形になっています*3。とりあえず、この値をADCで取り込んで非線形補正をかけることにしました。

ネットを調べていると、こちらのダイオードを使わないピーク検出回路が良さそうな感じです。コンパレータがないためLF356N+2SC1815で同じ動作の回路*4をつくって検証したところ上の表「ダイオードなし回路」のようになりました。ほとんど線形で、かなり特性が良いです*5

*3 : LTSpiceでシミュレーションしたところ、オペアンプとして高速(広帯域)タイプを利用すると線形性がよくなるようです。発振注意ですが。

*4 : C=0.01uF/R=220k/Rf=33k

*5 : やはり規模が大きくなるのが難点です。そして非線形性も少ないですが無視できない程度に残っています。また放電時定数を短くすると、発振してしまいます。