Wien-Bridged

もっと発振器を作ってみる

とりあえず、音はでた。なんか、ちょっと精度の高いものとか、周波数が変えられるものとか、気になる。
とりあえず、最終的な狙いはアンプの調整用、歪率のチェックのためのテスト発振器としてみようかと。 可能な限り歪率の低い物が欲しい。可能であれば、発振する周波数はいくつか選べるようにしたい。


ウインブリッジ式(豆電球式)

picture of sine wave generator
豆電球版。3端子レギュレーターはLM371と奢った。

基本的にはフィルタに正帰還を掛けて発振させる、発振し過ぎないように入力を制限するという方式。普通のオーディオの パワーアンプのIC、LM386のドキュメントの中の代表的なアプ リケーションに紹介されている、Low Distortion Power wienbridge oscllator は歴史的な回路。3V/15mAの豆電球が、 キーの部品。音量がでかくなって、この豆電球に電流が流れ始めると、抵抗値が下がって、増幅率が下がり、発振が押さえ られ、押さえ込まれる寸前に前にまた発振が始まる。生かさず殺さずの絶妙なバランスを調整するのが390Ω。電球の種類 によっては、この390Ωや、豆電球に直列にトリマーを入れて調整できるようにする。それなりにシビアな調整が必要だけど、 歪率はかなり1/100%以下。かなり低い。冒頭のページのスペクトル図はこの発信器。
現在廃版になってるけど、秋月のキットにLM386を使った発振器があって、回路は、上記ドキュメントのそのまま。僕はこれを組み立てた。

ウインブリッジ式(ツエナダイオード式)

picture of sine wave generator
ツエナダイオード版。3端子レギュレーター付き

電球は、消耗品で切れるかもしれないので、電流が増えると抵抗値が増えるメカとしてツエナダイオードを使った版はこちら。

トランジスタ技術の回路図集の特集号で拝見した回路なはずなのだけど、どこで見つけたのか(始末が悪くて)みつけられない。 オリジナルはタフ系(5532や、4580など)なオペアンプを使った版だったのだけど、手元にあったLM386でアレンジしたもの。
発振器単体で使うなんてナことはほとんどなくて、ほとんどの場合が、なんか、良く分からない入力に接続されることになる。 可能な限り、インピーダンスは低いほうが、使いやすい。LM386はもともとパワーアンプで8Ωとかの負荷もOKに作られてるのだから、まさにこの手の用途にはうってつけだと思う。
一応組み立てやすいかも、と紹介したけど、豆電球ってば、豆電球の癖に歴史ある回路だけあって、歪率は、このツエナダイオード版より優秀

すでに、各種実験に大活躍の豆電球版になんか、差をつけなくちゃと、 ステップアッテネーターもつけた。このスイッチを固定すると、基板も固定できるって寸法だったんだけど、あまり歪率が低くないのでちょっとがっかり、ケースには入れずに放置状態。

本の記事を組み立ててみる

picture of sine wave generator
130x70x90mmとコンパクトに収まった発振器。

CQ出版社の「作りながら学ぶエレクトロニクス測定器」の中で「CR正弦波発振器の設計と製作」で紹介されていた回路。
原本は10Hz、100Hz、1kHz、10kHz、100kHzの5レンジ。それぞれの基本周波数を1倍から12倍、ホボ周波数直読で、周波数をスイッチで切り替える。
100kHzオーバーは、素人の手作りで、きちんとやれる範囲ではないと判断して、オミットした。6接点(4回カチカチ言うロータリースイッチ)のスイッチも、5接点にすることで、1段の小さなロータリースイッチでも3回路分確保できるのでラク。
さらに、オリジナルには出力インピーダンスを低歪率のまま50Ωを実現するために、ディスクリートの強力なパワーアンプも付いていたのだけど、600Ωオンリーで十分として出力アンプもオミット。 さらに、サイズの問題で出力のステップアッテネーターは、内蔵しない。外付けとして、手元でレベルを変えられるれるような形式にアレンジした。
原作者には最大限の敬意を払いながらも、自分なりにアレンジして自分で製作可能な範囲に落とし込んでいくのも大事かな、なんちゃって。
実際組み立ててみて、ぎりぎりだった。難易度は高くて、初心者向けとはいえない。白状するとこいつの組み立てには半年掛かった。もう1回組み立てられる気がしない。

picture of sine wave generator
レベル変更のトリマーは後から、パネルに出した
LM386の発振器では、豆電球や、ツエナダイオードを使っていたが、この発振器では、本格的な、AGC(AutoGainControle)を実現している。
発振器の出力のオーディオ信号を全波整流し、平滑してコントロール電圧を生成してFETとオペアンプを使った電圧制御の抵抗で音量をコントロールする。
図面内のA、B間(R18の両端)は、周波数の変化によるCVの変動のコントロール。抵抗値がでかい方がこれ以降の平滑回路の動作を鈍くするので、歪率は下がるが、周波数を変えたときに副作用的に発生する音量の変化についてこなくなり、落ち着くまでは歪率がわるくなる。
普段は47k程度にしておき、いざ歪率を下げるぞ、というときに470kに変える。
R14は平滑回路の時定数。周波数が低いときはそれなりにのんびりにしないとリップルがACG回路に揺さぶりをかますので歪率が下がる。高い周波数なら、リップルは押さえやすいので時定数を短くすることができて歪率ダウンに貢献できる。
発振させるだけなら、豆電球だけでOKなのだけど、発振させる周波数を変えられる様にしようとすると、あちらが立ったりこちらが立たなかったりで、最適な値の周辺で妥協しなきゃいけなくなってくる。
実際はこの記事どおりに組み立てれば、レンジの切り替えで各種パラメーターも最適な値の周辺に再設定される。まるで業務用メカのような精度。
詳細は、ぜひ、本を手に入れて下さいと書きたいところだけど、絶版とのこと。本当に残念。

とりあえず、組み立てる

inner picture of wien-bridge osc
ブロックにまとめて先に配線/チェックを済ませる

とにかく周波数の設定、レンジの切り替えスイッチ周りの配線は煩雑。ミスったが最後、狭いし暗いし(?)どうやっても直せなくなる。これにビビって手がでなかった。
とりあえず、ケースのパネルに直接、ロータリースイッチは取り付けず、小さな別パネルに、抵抗を載せた基板と一緒にマウントしてしまう。これなら、ミスってもやり直しが一番楽。結果論だけど、配線も最短ですんだかもしれない。
パネルは、 歪み歪め歪んでくれ(Fuzz研川崎出張所)銀のスーパーエッジ2で紹介されていた「高橋メソッド」を採用。
極薄の色付のシールフィルム(たとえば、 A-oneのこちらの商品など) に印刷してしまい、それをパネルの全面に貼り付けちゃう。これ以上のサイズになるとVRの穴の位置合わせをやりなりがら気泡が入り込まないように張るにはテクニックが必要。練習すればうまくなるんだろうか?

inner picture of wien-bridge osc
スポッという音が聞こえる!

さらに、このスイッチと抵抗の基板の上に、オシレーターの基板を乗せてしまったので、このブロックに電源を供給すれば、あとは、レベル設定のVRを外付けして、出力端子をつければOK状態。
実はこれとは別に進めていたプロジェクト用に新規開発していた電源トランス込みのコンパクトな電源ができてたのでこれと合わせてがっちゃんこ。
サブパネルは、ケースの外側からねじ止めできるように20mmのL字アングルにねじを切ってつけてある。とりあえず、歪率の調整などは、パネルから取り出して外で、ということになりそうだ。高い周波数はオミットしたので、まあ、ケースに組み込まれた状態でなくてもベストの状態をだせるんじゃないかとか、ちょっと、不安もあるけど。

発振周波数を変える

上記osc2に限らず、ウインブリッジ式で発振周波数を変えようとすると、R30、29または、C1、2に相当する部品の値を変える。R30,29、C1,2をそれぞれ同じ値で、R、Cとすると

inner picture of wien-bridge osc
64本の金属皮膜抵抗。ほとんど全部値が違う。高コスト

で計算することができる。フェイズシフタのオールパスフィルタと一緒の計算式。。コンデンサをダイナミックに変えるのは難しいので、コンデンサは固定として抵抗値をスイッチなどでで変えるほうがDレンジを広く取れるしラク。

たとえば、連続的な変化を出すにはどうすればいいんだろう。
とりあえず、ボリュームをつけりゃいいんじゃないか。ただ、そのカーブはどうすればいいんだろう。この記事は、測定器狙いだから、切のいい数字で周波数が変われば使い勝手としてはOKだけど、ボリュームをグイっとまわして、周波数の変化じゃなくて音程の変化として感じられるようにするにはどうすればいいんだろう。

カーブにこだわる

freqR1R2
1007.238 --
2003.6195.672
3002.4133.18
4001.8092.209
5001.4481.693
6001.2061.372
7001.0341.153
8000.9050.995
9000.8040.875
10000.7240.78

上の写真は、12接点のロータリースイッチに誤差1%の金属皮膜抵抗を1接点当たり2本づつ使って狙いの抵抗値を合成している。(しかも2回路分)。
真ん中ぐらいにセットした10kΩのBカーブのボリューム(5k)に、2.2kの抵抗を直列に繋いで、基本の抵抗値を7.2kとする。
これと組み合わせるコンデンサの値は、0.00022uF、0.0022uF、0.022uF、0.22uF。レンジを切り替えるごとに10倍する。抵抗が7.2kなら、10Hz,100Hz、1kHz、10kHzをという周波数になる。
大まかな周波数はコンデンサで切り替えて、微妙な変化は抵抗を切り替える。1kから、整数倍になるようにする。 右の表は、C=0.22のとき、その周波数になる抵抗値が、R1。f=100Hzの時の7.2kになる。
R2は、7.2kと並列にすると、R1になる抵抗値になるリスト。スイッチでR1の値の抵抗を切り替えるようにすると、切り替え時に回路がぶち切れてしまうので、デフォルトで7.2kが入っていて、スイッチは並列になる抵抗を切り替えるようにする。

こんなカーブのボリュームはないので、ロータリースイッチで作るんだけど たとえば、回転角が300度の普通のボリュームを30度回転させるごとにメモリをふり、1から、10までの数字を割り振るとして、10段階。
フェイズシフタのオールパスフィルタのページの「手作りフォトカプラー赤1号〜4号」の項で考察した通り、抵抗値の変化と、周波数の変化は、周波数は、1/Rに対してリニアな変化になる。 市販のボリュームのカーブでは、Cカーブが一番リニアに近くなりそうだけど、どれも、変なカーブになりそうだ。
何より面倒なのは、2本の抵抗の値を同時に変えなきゃいけないことだ。プンスカ。

同時に抵抗値を変える