MaxHold Peak Level Meter  (07.05.13〜08.9.28更新)

(08.09.15、追記:LM3916使用)


 ADCをいろいろ作っていると、簡易的なレベルメーターではなく、MaxHold(最大レベル保持)機能付きレベルメーターがほしくなります。ADCユニットの入力までちゃんとどの程度の信号が来ているか、というのは録音の際、絶えず気になることです。また、アナログデッキ用にも使用できるでしょう。そこで、LM3915Nを用いて、ピークホールド部分も再設計して、基板をおこしてみました。実は金田氏が発表しているピークホールド回路には、若干の問題点があります。(通常使用では問題ないのですが、今回は厳密なピークホールド回路動作を目指してみました)

 最近流行のPICなどを使って、A/Dしたデータを処理して表示するようなことでもよかったのですが、ここは回路屋の意地というか、全部ハードで組んでみました。いまどき、こんなアホはいないかもしれませんが。


1.MaxHold機能をどうつけるか?

 まず、レベルメーターの基本はLM3915N、これを2連つなげて3dBステップ20連のピークレベルメーターを作る。シングルドットモード(お好みで変えてください)。この全てにMaxHoldを付けるには大変なので、L,R,各上位6DOTの付加とする。基板を小さくしたいので、L,R6DOTが限界である。これでも、6DOT×3dB=18dBの範囲でMaxHoldする。

 ロジックICにて、LM3915Nが点灯させたLEDを検出し、RS-FFにてそのLEDを点灯させ続ける。そのLEDより大きなレベルのLEDの点灯、またはリセットSWによって、そのLEDは消灯するようなロジックを組む。図1に基本回路を示す。これがカスケードに接続されているとかんがえればよい。

図1

 この回路は、MaxHoldされた最大値のLEDが光る場合、通常LM3915Nが光らせる電流と、ロジックで光らせる電流とが合成されるので、LEDの許容電流範囲を超えないように注意する。

 リセットとパワーオンリセットを付けてある。最上位ドットのリセットに加えればよい。

 


2.ピークホールド回路

 まず、なぜピークホールドが必要か、という初心者向け説明をしておくと、レベルメーターが一瞬振れても、視覚的にはすごく早い信号であり、目で見ることができない。一瞬のレベルを保持し、見やすくする必要がある。そこで、一瞬の信号の最大値をコンデンサに高速で充電して、あとはゆっくり放電させるピークホールド回路が必要である。
 よってこの回路、ものすごく瞬間最大出力電流を要求される。ホールドコンデンサをいかに早く充電するかがポイントのひとつになる。往々にして(金田氏の回路も例外でなく)、この高速性によってホールドコンデンサ充電時にオーバーシュートを発生させることがあり、入力より大きな信号をホールドすることがよくある。

 金田氏のピークホールド回路、実はこのように高域が大きく出すぎる可能性を持っているものである。古くはTL072,最近ではLM318を使って、高速化しているが、扱う周波数が50kHzともなれば、正確にホールドし切れない。「オーディオDCアンプ製作の全て」下巻P255にあるピークホールド回路では、入力にfc=15.6kHz(LM318の入力容量を考えなければ)の1次RCフィルタが入っている。高周波のピークホールドは避けているのだが、これはアナログデッキであるから許される話であって、ADCでは入力可能な周波数全てにおいてそれなりの精度でピークをホールドしなければならない。
 金田氏は、以前はTL072をホールドコンデンサを充電するオペアンプに使っていたが、上記の本ではよりスルーレートの高いLM318を使用している、となっているが、実は金田氏のピークホールド回路のスルーレートは充電コンデンサCとオペアンプの最大出力電流で決まり(こちらの方が大きな値)、オペアンプ自体の特性としては、スルーレートよりスループット(遅延時間)の少ないことを重点とすべきである。その意味でLM318はTL072よりよいが・・。

2.1 シミュレーションによる検討

 設計の基礎検討を行った。PDFにまとめた。→pkhdsimu.pdf 約1.6MB

2.2 ピークホールド回路設計

 2.1の検討をふまえ、実験を行った。基本回路は図2。

図2

 2.1の検討で、A1のマイナスの出力に対するダイオードクリップの効果が確かめられていたが、今回は、ダイオードが働いた場合の瞬時の大電流が電源ライン等を通じて音質に影響を与える危惧があったため、この方法は取り入れなかった。

 2.1.1 TL071

 まず、ホールドコンデンサ充電のA1に金田式旧来のTL071,A2にTL062を用いた場合、全てC2,R2はなし、R3:1k、C1:0.1μF、R1:1MΩ、CH1:ホールド出力、CH2:入力波形、それぞれ、500,5k,50kの正弦波単発波形を約10Hz(10.67Hz)で繰り返し(→WAVETEK MODEL145 のトリガ入力に、NF回路設計ブロックMODEL SY-118から約10Hzの正弦波を発生して入れることで実現している)

オシロ:テクトロニクス TDS2002B

図3

500Hzの単発波形

階段に追従しているのは、系の遅延やA1のオーバーシュートのため、入力より過充電してしまうからである。ようは高速に行きすぎてしまう、ストップするとしばらく入力は出力以下なので充電しない、入力が出力以上になるとまた瞬時に過充電する、の繰り返し。pkhdsimu.pdf でバタバタと表記したもので、ステップの瞬間にA1は最大出力電流近くの電流でCを充電している。電源ラインを乱す。

図4

5kHzの単発波形

階段状の追従のために精度がでないことが推測される。

入力より大きな値を示してしまうのは、充電を止めるべきタイミングなのに、止めるための信号が遅延されて遅れてくるため充電を続けてしまう、というのが一因である。

うんちくのページの●ピークホールド回路テクニック 参照

図5

50kHzの単発波形

入力があってからの遅延時間がありすぎてピークをホールドできない、かつ、オーバーシュートのためにピークより大きな値を示すこととなる。

C2,R2に位相補正を入れても、オーバーシュートはなくなるが遅延が増えるので期待できない。

 2.1.2 LM318N

 金田氏がオープンデッキ等で採用しているが、これでどれだけの性能が出るだろうか?

 位相補正はC2:120pF、R2:200Ωを入れておく(金田氏の回路にはないもの)。

図6

500Hzの単発正弦波。

正確にピークをホールドしている。期待が持てるが・・・↓。

図7

上の図6で、オシロのTimeレンジを小さくすると、結構階段波形になっていることがわかる。これだと、ホールドレベルが階段の高さ毎に飛び飛びの値を取ることとなって、精度は悪くなる。

図8<<参考>>

参考までに、図6のTimeレンジを拡大すると、このようになる。ピークで瞬時に電圧が上がった後、だらだらと電圧が落ちているのがわかる。この時定数はC1とR1で決まる。これを見て、ピークホールドのイメージがつかめただろうか?

図9

5kHz正弦波単発波形。階段波形が目立つ。精度は500Hzに比べ悪くなる。

図10

50kHz正弦波単発波形。

TL071よりはよいが、これもまた、追従できていない。これもまた、位相補正を大きくすると、大きな出力レベルは抑えられるかもしれないが、遅延がさらに増えて根本的に50kHzの波形に追従できなくなる。

 シミュレーションやこれらの波形をみて解ると思うが、ピークホールド回路が速度に追従できていない場合には、入力より大きなを出力してしまう傾向があるということであり、注意しなければならない。

 

 2.1.3 で最終回路は

 途中を全て報告すると大変なので、最終的にこれでいいのではないか、という回路をご紹介する。

 A1:LM6361N、A2:LF412N、C1:0.01μF、R1:10MΩ、C2:220Ω、R2:220pF

 この回路の波形を以下に記す。

 LM6361Nは比較的安価に手に入る、スタンダードなビデオオペアンプであり、LM318よりかなり高速である(データシート参照)。入手可能なオペアンプではこれがよかった。当然、AD760などの高速コンパレータを使用すれば、さらに高速・高精度のピークホールドを作ることが出来る可能性がある。

 ホールドコンデンサはやはり小さくした方がやりやすかった。消費電流も減るので、高級なTRITECなどのコンデンサが使用できないが(0.01μFが無いため)、こちらにした方がよいと思う。

図11

5kHz正弦波単発波形。

かなり正確にピークホールドしている。

階段波形も確認できない。

図12

50kHz正弦波単発波形。

かろうじて、ピークをホールドできている。

位相補正による、遅延時間増大と階段波形解消のトレードオフの結果である(下図13、14参照)。

図13

5kHz正弦波単発波形、C2,R2無しの波形、拡大図。

遅延時間が少ないが、階段状波形があり、精度を落とす、瞬時大電流が流れる原因にもなる。

図14

5kHz正弦波単発波形、C2:220pF、R2:220Ωに戻すと、階段状波形はかなり消えるが、遅延時間が増える。Δt≒13.6μs、明らかに図13に比べ反応が鈍くなっている。

 ということで、高速オペアンプLM6361Nを用いることで、50kHzの単発波形を捉えられるピークホールド回路ができあがった。

 じつは、検討項目はまだほかにもいっぱいあるのだが、全ては書ききれないので、ここらへんで結論とする。


3.設計した全回路とできあがりの基板

 全ての回路と部品表はpdfとした。パーツリストはこちら→maxhold.pdf 約236kB

 主な仕様:

 ・3dBステップ 20ドット ピークホールドレベルメーター機能
 ・LR 2ch
 ・各ch、上位6ドットについて、最大値保持(MaxHold)機能を有する
 ・ピークホールド回路の最大応答周波数:50kHz
 ・電源電圧:±12V(アナログ用、LM3915用)、+5V(ディジタル用)
 ・平均消費電流:60mA以下(±12V)、10mA以下(+5V)

 基板を起こした。当面配布予定はありませんが、ご希望とあらば、

k e p i s 

n i f t y . c o m

まで「基板配布希望」とか何とか書いて、メールをください。

基板表 写真1

基板表

120mm×50mm×2枚

基板裏 写真2

基板裏

基板表(実装済み) 写真3

実装基板表

修正二カ所あり

金田氏オリジナルの回路へも変更可能(ただしRは全て表面実装)

基板裏(実装済み) 写真4

実装基板裏

動作確認 写真5

動作確認中

Maxレベルをホールドしている。中央のSWはリセットスイッチ。

回路CADはOrCad、基板CADは.CADLUS X。回路から基板CADにネットリストを転送した。
従って、二カ所ある修正箇所は、回路が間違えていた(^^;。

あと、失敗だったな、と思うのはLM3916にも対応したかった・・・・・

↑Top


.上位ドットLM3916改造   (08.09.15~ 08.09.16更新)

 ADC24192を製作する際、LM3916でレベルが振り切れる際を正確にモニターしたいと、改造することにした。

 LM3915,16をカスケードにつなぐ。となると、まずレベルのつなぎが問題。最大の問題点は、LM3916の最下位ドット、これが最上位ドットを+3dBとして-20dB、最上位ドットを0dBとすると-23dB、そのすぐ上の-13dBとの間、10dBの開きがあり、このLM3916の最下位ドットの扱いが難しい。現実、捨てる(使用しない)しかない。

 1ドット捨てるとなると、19ドットのレベルメーターになって、せっかくのLEDがもったいないのでコンパレータを一つ追加することにする。コンパレータを追加して表示する場合の一つの問題点は、「ドットモード表示は難しい」ということ。全体の消費電流を減らすため、この基板はドットモードといって、レベルの最大点1点のみの表示モードに限定してある。コンパレータで別なレベルを追加すると、その追加したドットより上位が点灯したときに消す機能を追加する必要があり、改造が大がかりとなってしまう。

 そのコンパレータによる追加したレベル表示を全体の最下位ドットに持ってくると、利点としては、最下位なので、点灯しっぱなしでも違和感がないかもしれない。しかし、捨てることで抜けるドットは上位から10番目、LM3915の全出力を1ドットずつ繰り上げるためにパターンカット&JP配線が10本必要となり、結構大変な作業となる。最上位ドットをコンパレータで動作させるにしても、9本のパターンカット&JPが必要で、似たようなものである。

 そこで、思い切ってドットモードをやめ、バーモードにする。今回はAC電源用ADCのレベルメーターなので、LEDの電源だけディジタルから取れば余裕がある。また、AVAGOのAlGaAsのバーLED、HLCP-J100は、赤色限定ながら、2~3mAで十分に光ってくれるので、これを利用する。これにより、実測で全てのLEDが点灯した状態で消費電流約100mA、無点灯で20mAである。

■定数変更

 まず、ADCの最大入力振幅Vpは2.4Vp(Typ)であるので、Vrefをこの電圧にする。

 LM3915,16のVrefはカスケード接続してある。こうすると、ふたつのVrefがほぼ一致して誤差が少なくなる。反面、VrefとLED点灯電流:Iledの計算が若干面倒になる。

 シングルの場合のVrefとIledの計算は、各データシートより、帰還抵抗R1,、共通抵抗R2として

Vref= 1.25*(1+R2/R1) + R2*80μA ・・・(1)

Iled= 12.5/R1 + Vref/2.2kΩ ・・・(2)

となっている。

 カスケード接続の場合、下位(LM3915)帰還抵抗R1,上位(LM3916)帰還抵抗R1'とすると、共通抵抗はそれこそ共通なので、R2に発生する電圧は共通、それに1.25V(R1,R1'の両端の電圧は1.25Vになるように帰還がかかっている)が加わり、Vrefが算出される。つまり、LM3915のVrefをVref1、LM3916のVrefをVref2とすると、

Vref1=Vref2

=1.25*(1+R2/R1+R2/R1')+2*R2*80μA ・・・(3)

 80μAはADJ端子の電流で、カスケードでこれも二倍になる。

 LM3915のIledをIled1、LM3916のそれをIled2とすると、

Iled1=12.5/R1+Vref1/2.2kΩ ・・・(4)

Iled2=12.5/R1'+Vref2/2.2kΩ ・・・(5)

となる。

 Iled1,2=1.9mA、Vref1,2≒2.5Vとして計算すると、R1=R1'=16kΩ、R4=3.9kΩとなる。当然、追加したコンパレータで点灯するLEDの電流も1.9mA前後にあわせる。

 実際に実験してみると・・・なんと、なぜか、LM3916でドライブしているLEDの方がやけに明るい!

 LEDの点灯によるΔIにて、1ドットで増加する電流を測定してみたところ、LM3915でドライブしているぶんは2.5mAほど増加する。0.6mA多い。増加分はLEDだけではないことを考えるとこんなものか?

 一方、LM3916ドライブ分の1ドットの電流増加分は、なんと≒4.5mAであった。計算と実験が、LM3916の方はかなりあわないし、明らかにLEDが明るいので変である。

 そこでデータシートを再度見返してみると、同じデータシートなのにLED電流設定を解説しているページ(英文のp14)には、(5)式は、変形してあるが

Iled2=12.5/R1'+Vref2/1.0kΩ ・・・(6)

 と、定数が違って載っているではないか。これに従って計算し直すと、Iled2≒3.3mA、まだ計算と実際が合わないが、こちらが正解なのであろう。

 (6)式から、Vref2が2.4Vくらいだと、Iled2を2.5mA以下には出来ないことが明白である。う〜〜ん、考えどころである。

 そこで、音声信号の入力を若干減衰させ、Vrefを2.0Vとすることにする。そうすることで、Iledを小さくできる。
R1=12k
R1'=200k
R2=3k
 また、入力の差動アンプのゲインをVrefの比:2.0/2.5=0.8倍にする必要がある。
 これでIled1=1.97mA、
Iled2=2.05mA、
 入力が+2.5Vのとき、LM3916には+2.0Vの入力が入ってフル点灯になる。

 LM3916のための設計変更した回路図をPDFにまとめた。→MaxHold_LM3916.pdf (182kB)
 また、この回路図で、パワーオンリセットの配線を修正している。

■入力のゲイン
 これはうんちくのページの「DSC回路の入力インピーダンス」の「追記(08.08.30):一般化」の式で決定できる。
 回路図の値にすると、±入力とも、同じ入力インピーダンスで、かつ、ゲインを0.8倍にすることができる。

 追加したコンパレータはNJM2403M。出力シンク電流は-15mAmaxと大きい。NJM2903Mは低消費電力ではあるが出力が-3mAmaxなのでぎりぎりである。

 下位用のアンプのゲインを19dBとして、そこから-9dB、つまり総合10dBのレベルでぴったりと-16dBで点灯してくれ、それ以下はLM3915が3dBステップで刻む。-46dB未満の小さいレベルの表示はできないのがちょっと欠点か?

(08.09.28訂正)----------------------------------------------------------------------------------------------

 LM3916、詳しく測定すると、カタログ通りのdB値になっていなかった・・・(笑)この石はかなり誤差があるようだ。ひょっとすると、LEDを微少電流で光らせているせいかもしれない。そもそも、上記-9dBもよく考えると計算が合わない。

 現物あわせで、ココのレベルを-10dBに修正したら、ほぼ等間隔でLEDが点灯することが判った。ただ、あくまで帳尻合わせ。もっともスムーズにLEDの点灯が繋がる値であると言うことである。

 ただし、0dBだけはきちんと合っているので、レベルオーバーはしっかり正確な値で見ることができることは確認した。このレベルメーターは、レベルオーバーするかしないかへの単なる目安表示にしか過ぎない(笑)。回路定数は今日で変更済み。

--------------------------------------------------------------------------------------------------(08.09.28訂正)

 図にはないが、消費電流の変化が大きいので、12Vのパスコン(C29,C30)は強化した方がよいと思われる。RA、RCシリーズ番号の抵抗は1.5kにする。RAは電流検出のため、RCはMaxHold時のLEDのIfである。ほぼ同じくらいの抵抗値となる。

 なお、LM6361Nは生産中止のようなので、LM7171でも代替可能であると思われるが、定数変更が必要である。

 また、上下をつなげるコネクタは、山一のもの、メス側はシングルラインICソケットIC26-2010-GG4、オス側は同じ山一のPS-2010-B4M(受注生産品/たまたま手元にあったもの)を使用した。二つをつなげると、ちょうど長さが7.5mm、支柱は廣杉計器でこの長さのものが購入できる。PS-2010-B4Mが入手できない場合には、同様の”両ピン”タイプが秋葉原などでよく見かけるので利用する(その場合の基板間隔は注意する)。

↑Top