- 回路が複雑になりすぎて、ユニバーサル基板に手ハンダで組む自信がなかった
- オペアンプ用の両電源とESP32の電源の扱いに悩んでいた
- 電源ノイズがAD9833の出力に載っていて、完成させる意欲がそがれた
などです。
トランスを2つ使って正負の3端子レギュレータで電源を作ろうと調べているときに、TPS60403というマイナス5Vを作るスイッチング電源モジュールを見つけました。その小ささにコンパクトにまとまる気がして、またやる気が起きたのがきっかけです。60mAまで流せるので、2回路のオペアンプなら、2つ使えます。スイッチングノイズについては、フィルタを奢って対策を試みます。
タカチのケースに入れることにこだわると、ケース細工も大変だし基板の構成も制約を受けるので、基板むき出しで作ることにしました。それと、ミリバルを内蔵する計画もやめにしました。作成意欲を阻害していた煩雑な事柄を思い切って取り止めにしたので、前に進む気持ちになれました。
電源
回路図
オペアンプの両電源については、L7805でプラス5Vを作り、それを反転したマイナス5VをTPS60403で作ります。プラス5VはESP32の電源としても利用します。電源の供給元は手持ちのトランス式の9V ACアダプターを利用します。そしてノイズ対策に随所にLPFを入れることにしました。
手持ち部品で作りましたので、1μを直列で3つ繋げて3端子レギュレータ入力用の0.33μにしたり、1μと1Ωを直列に繋げてタンタルコンデンサの代わりにしてTPS60403のIN/OUTに入れたりしています。最初は発振していたので、対策に色々手を加えました。タンタルもどきのコンデンサもこの一環です。発振は収まりましたが、何が効いたかはわかりません。
電源まわり |
電源ノイズ
3端子レギュレータ
供給元のトランスは全部の回路を組んだ状態で、10.4Vで出力していました。このとき、Vp-p 654mV 120Hz(交流の倍圧整流回路)のリップルが出ています。3端子レギュレータのL7805でリップルを取り除くと、 Vp-p 73mvになりました。
3端子レギュレータ前後に載るノイズ |
正負5V電源
TPS60403の前後に設けた3素子LCフィルタの接点周波数はIN側 5kHzで、OUT側 3kHzです。(同じ容量のコンデンサを4つ揃えることができなかったので、こうなりました。)LCフィルタの特性は手持ち部品で適当に決めています。-60dB/decadeで減衰します。このフィルタを通した正負5V電圧は下図のようになりました。負側がややノイズが大きいです。FFT解析を行うと、正負両電圧ともノイズのピークはTPS60403のスイッチング周波数の250kHzに出ていました。
正負5V電源に載るノイズ |
ESP32が作る3.3VとAD9833出力
ESP32が作る3.3V電圧でAD9833とLCDモニタを動かしていますので、この電圧のノイズも見てみました。さらにAD9833の1Hzサイン波形に載っているノイズも見てみました。Generator出力は±1V程度で使いますので、振幅に対して $9.6[mV]/2[V] = 0.48$ %の比率のノイズになります。FFT解析するとその周波数成分はGenerator出力周波数の高次成分と、スイッチング周波数の250kHzの高次成分でした。
3.3VとGenerator出力に載るノイズ |
以前はAD9833の出力に間欠的にノイズが載ることがありました。周波数を変更するタイミングであったりとか、周波数スイープをさせているときにノイズが出ていたので、AD9833の出力パラメータの切り換えがうまくプログラミングできていないのだと考えていました。しかし、今回変更した電源に変えてからは、そういったノイズが出なくなりきれいな波形になったので、原因は電源ノイズであったのだと思います。
ヒートシンク無し
ROHMのTechnical Report 3端子レギュレータの放熱設計 に倣って検討します。
入力電圧 $V_{IN} = 10.4 ~ [V]$
出力電圧 $V_{O} = 5.0 ~ [V]$
最大周囲環境温度 $T_{Amax} = 40 ~[^\circ\mathrm{C}]$
この結果より、3端子レギュレータを流れる電流が 0.237A より少なければ、ヒートシンクがなくても大丈夫です。全ての構成部品をブレッドボード上で組んで、電流を実測したら0.19Aでしたので、ヒートシンクは付けなくでも大丈夫そうです。
PCB基板に本組みして3端子レギュレータの温度を測ると、雰囲気温28℃のときで 57~60℃でした。ファンクションジェネレータでは負荷の変動はないので、常にこの温度になります。仮に触れたとしてもやけどする今度ではないので、このままにします。
ハード構成
機能
機能についてあらためて整理すると、表のようになります。a) 波形選択 と e) Adjust Frequency、f ) Freqency Increment Set は参考にしたAD9833 Waveform GeneratorとAD9833 DDSモジュールを試す(1)のブログ記事のコピーです。波形をタクトスイッチで切り換え、2つのロータリーエンコーダで周波数を設定します。
b), c), d)については以前にブログに載せた内容です。
回路図
ESP32 ピンアサイン
ユニバーサル基板はタカチPCB100-160 (100×160×1.6)を使います。部品レイアウトと配線はKicadで行います。「反転ビュー」で裏から見ることもできますので、配線のはんだ付けや導通チェックも迷わずにできます。
実装
全ての部品をハンダ付けした状態です。出力端子はBNCにしました。同じものを2つの端子から出すようにしています。一方はオシロに入れて、モニターしながら使うことを想定しています。
裏面の配線はKicadの画面をPCで見ながら行いました。Kicadがなければ配線は困難だったと思います。ジャンパー線はポリウレタン線を使いました。重なっている箇所はショートの未然防止のため、ホットボンドで線同士を浮かせてました。
完成
ハード
ESP32の電源はPCのUSBポートを利用する場合と3端子レギュレータで作った+5Vを利用する場合のどちらも有効です。前者の回路には保護回路を入れていないので、PCに繋ぐ場合には電源のトグルスイッチをOFFにする使い方です。より安心のためには、それぞれを排他的に使うようにします。
ソフト
代表特性
1ch(上、黄色)がAD9833のoutputで、2ch(下、青色)がLPFとアンプを通した本ジェネレータの出力波形です。Butterworth LPFの効果で、細かなノイズまで除去できています。比較できるように、各々のケースで出力波形のy軸ゲインは500mV/divで一定にしています。
sin波 1MegHzではゲインは少し下がりますが、波形は目視ではほとんど歪んでしません。三角波と矩形波の1MegHzは使うのが厳しい波形です。また、矩形波はLPFを通していないので、立ち上がりと立ち下がりにオーバシュートが見られます。