« LCD-TS174をPICによりドライブ | メイン | E級アンプ 出力アップ検討 »

2016年1月 3日 (日)

低周波信号発生器

PICマイコンによる正弦波発生器を使いやすくする為、このコントローラーを作成しました。

DAコンバーターを利用した正弦波発生器はこちらを参照下さい。

PICで作成した正弦波発生器はDAコンバーターの駆動周期を初期設定した後、この設定値に基づき、ただひたすらに正弦波を発生し続けるもので、周波数を変更したい場合、PICをリセットする必要がありました。 また、発生する正弦波の周波数はPICのクロックや命令サイクルに依存し、きりの良い1000Hzとか3000Hzとかは不可能で、PIC内部の分周値による決まった周波数しか発生できません。 よって、発生した正弦波の周波数を計測して、なんらかの形で表示が必要でした。 その為、コントローラーには、正弦波発生器の初期値を決めて、RESETする機能、発生した低周波の周波数を計測する機能、計測した周波数を表示する機能が必要となります。

まずは、ソフト開発のデバッグにも使える、周波数(整数)をLCDに表示する機能をつくりました。 詳細はこちらを参照下さい。

正弦波発生器の初期設定とRESETは、本来、メカニカルSWで行っていたi/o操作をオープンコレクタのデジトラで行えるようにするだけですので、これは簡単に実現できます。

Sin_osc_cntler

発生した低周波の周波数を計測する周波数カウンターが必要になりますが、Hz単位での表示となりますので、カウンターのゲートタイムは1秒必要です。 最初,100msec単位で計測し、10回分を合計したカウント値を表示していましたが、周波数が低くなるほどカウント誤差が大きくなりました。 原因は100msecの間に発生するカウントの実際は小数点付になるのですが、PICの中では整数としかカウントしませんので、10回分合計しても、最大で-10の誤差が出ることでした。 やはり、表示はとろいですが1秒間待って表示しています。 周波数を可変すると、正しい周波数を表示するまで1秒以上かかりますが、周波数切り替えやLCD表示に違和感はありません。 

この回路の低周波の出力電圧は約0.78V(0dBm)ありますので、20dBと40dBのATTを設け、-20,-40,-60dBmの信号を得る事ができ、また、可変抵抗器で連続可変できるように、可変抵抗器のつまみの周りに実測値による目盛を入れ、-16dBまで1dB刻みで絞れるようにしました。

1khz_spectol

上のスペクトル画像は1KHzの出力をフリーソフトWaveSpectraで表示させたものです。第2高調波レベルが-40d以下になっていますので、なんとか1%以下の歪率は確保できました。

Sinosc_box

完成した基板やコントロール類、LCDを透明のタッパーの中に収め、単3電池8本の電池パックで動くようにしてあります。 これで、AM送信機の検討が便利になりそうです。

ソースファイル OSC_controller.cをダウンロード

配線図 OSC_schema.pdfをダウンロード

AM送信機のテストの為に使ってみました。一応基本動作はOKで、歪の確認や周波数特性のチェックは出来るのですが、送信ONにすると、周波数があさっての方に飛んでいきます。OFFにしても同じ。 マイコンの高周波妨害耐力は甚だ弱いようです。 少しでも効果があるようにと、タッパーの内側に銅箔テープを貼り、アースしたのですが、イマイチでした。

そして、AM送信機の出力を40Wまでアップしましたら、送信中に周波数変更もできない事が発生しました。 暇なら対策しますが、今はAM送信機を完成させる事の方が優先で、インターネット上で「WaveGene」というフリーソフトを入手し、PCから正弦波を供給しています。 こちらの方は、PCが誤動作しない限り大丈夫ですが、そのままでは誤動作しますので、USBマウスの根本に40mmの長さのフェライトコアを挿入し、このコアにUSBケーブルを4回も巻きつけております。

暇になりましたので、RF回り込みによる対策を行いました。 配線図とソースファイルは修正済みです。(2016年7月31日)

INDEXに戻る