nobcha23の日記

PICマイコンやArduinoを使う電子回路遊びを紹介します

DDSで周波数源を作ろうと思います  DDSその1

さて、エアバンドレシーバーのパーツセットを組み立て、局発の周波数表示を試しました。
しかし、もともとの局発はSA602を使用したもので、安定度は今一つ。
待ち受け受信に向かないように思います。

では局発をデジタル制御にするかということになります。
この電子回路日記ではPICマイコンの使いまわしを主題にしているので、PICでDDSやさらにはPLL−VFOを作る方向を目指します。

そういえば中国通販でAD9850基板を買ってました。
それを思い出し、DDS周波数源を作り、たとえば逓倍して局発にしてみるとかの実験をしてみようかと思い立ちました。

次のような仕様です。

1.PIC16F1829を使用。以前作成した基板を使います。

2.もともと基板についているLCDとSW1−3を使います。

3.INTOSCにしてXTALの端子にロータリーエンコーダーを接続します。

4.I2Cとかセンサー用にリザーブしてある端子をAD9850シリアル接続信号に割り当てます。

5.設定周波数データはEEPROMに格納して、電源OFF/ON時にも対応。周波数とロータリーエンコーダーでの周波数ステップ偏差値をSW2で記憶します。

6.ロータリーエンコーダーで周波数変更、SW3で周波数ステップ値を変更。

信号線配置は次になります。


ところがこの試作実験でいくつかの障害に突き当たりました。

1.MPLAB Xのインストール。

2.以前のMPLABのV8から持ってきたソースコードが文字化け。

3.EEPROMの組み込み関数が動かない。
EEPROMの関数に関しては後でソフトの項で紹介します。


そんなこんなで試行錯誤が続きましたが、いつものようにあちらこちらのWEB書き込みを訪ね、情報を集め何とかロータリースイッチが動き、LCDが出るところまできました。

しかしながら、AD9850への書き込みはまだできません。

そこでDSO QUADで信号を調べようとしたら、
今度はDSOの新操作性ソフトがうまく動かず、
前のファームウェアに戻そうとしたら、
WIKIのアドレスが変わっていて、
もともとのファームウェアを探し出すのに手間取りました。

まずはハード接続とSW操作とLCD表示まできました。




結局この実験は中途半端失敗に終わりました。あきらめたほかの理由ですが、AD9850だともともと逓倍波でないと局発周波数に届かないのでうまくいっても逓倍しないといけません。それなら、基本波で対応できるDDSではなきクロック源Si5351aの方が良かろうと路線変更しました。

なので続いてSi5351aでの周波数源、エアバンドレシーバ局発について実験を進めます。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
更に落ちがありまして、PICのMPLAB-Xという開発環境ではトライアンドエラー方式
ではなかなか収束せず、Arduinoに移ってしまいました。
その後はArduino UNOを使った周波数源、そしてデジタル局発を作ることができまし
た。局発の安定化に伴い、中間周波住フィルターをXTAL(FM用なので少し広めです
が)に変更し、安定、静かなデスクトップレシーバーができております。
nobcha23.hatenadiary.com

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー



ホームページに詳しく記載。