Taga_castillo

アマ無線、電子工作、歴史(古代)、ゴルフ、スペイン語、他

DDS基板による発振器

2013-05-03 16:17:04 | 電子工作
1.製作に至るまで
2012年夏にCQ出版社から「ディジタル周波数シンセサイザ基板」が発売され、"夢の発振器誕生! 20MHzまで1Hzきざみでピターッ! ほしい波形が一発で!"と説明されていました。素晴らしいと思ってHPを見たのですが、「USBマイコンが実装されており、パソコンに接続するだけで、すぐに使い始めることができます」と書いてあり、単独で動作させるのは難しいなと考えていました。
3.5MHzの受信機の製作が一段落した時、友人から「基板上のマイコンのソフトを書き換えると、LCD表示器とエンコーダーを追加するだけで発振器として動作する」と聞き、さっそく「ディジタル周波数シンセサイザ基板」(以降、"DDS基板"と呼びます)を購入してきました。

2.製作
本をざっと見てみましたが、DDS基板としては完成しており、どの様に使うか(使えるか)と言うことが書いてあるような気がしました。
DDS基板の配線図を見てみると、マイコンの"PIC18F14K50"とDDS-ICの"AD9834CRUZ"は(私としては)ブラックボックスですが、OP-Amp(ここでは"AD8051A")は3.5MHzの受信機で使ったので動作が分かります。
そこで、このDDS基板にLCD、エンコーダー、SW、そして出力用BNCを付け加えた回路図を教えてもらいましたが、追加部品が少なく配線は難しくないようです。

その回路図は以下の通りです(DDS基板内は、JP1、JP2への結線以外は簡略に記入しています)。



付け加えたハードを簡単に説明します。
・LCD表示器:上下2行にそれぞれ16文字を表示でき、"I2Cインターフェイス"と呼ばれるSCL(Serial Clock Input)とSDA(Serial Data Input)を使って文字を受取ります(蛇足ですが、I2は本来Iの2乗と書くそうですが、表示の都合でI2としています)。バックライト付なので、VRでコントラスト調整が行なえます。
・ロータリーエンコーダー:回転させることにより、A端子とB端子に90度位相差がある矩形波を出力し、マイコンがこの矩形波をカウントすることで周波数の変化分を決定します。
・SW:UPとDWNがあります。ロータリーエンコーダーで矩形波を出力して周波数を変化させますが、周波数のどの桁を変化させるかSWにより1桁ずつ上下させるものです(変化する桁が分かるようにLCD表示器にカーソルを表示します)。

なお、LCD表示器用の電源は入力DC5.0VからSiダイオード3個を経由し、約3.2Vを得ています(Siダイオードの種類により順方向降下電圧が微妙に違うので調整が必要です)。

ケースはタカチのYM-150を使い以下のように組んでみました。



アナログ回路は1つの信号が流れて行くイメージで配線して行くのですが、デジタル回路は複数の信号の行き来があるので配線にまとまりがなくなってしまいました。フラットケーブルやコネクタを上手に使った方が良さそうです。

さてソフトですが、私は30年程前にCOBOLに似た言語を使ったことはあるものの、その後Fujitsu等の8ビットパソコンでBASICを触った程度なので、今回は全く手が出ず全面的に友人にお願いしました。
当初からSWやエンコーダーによる発振周波数の変化は可能だったのですが、どうしてもLCD表示がうまく行きませんでした。何日もかけて試行錯誤を繰り返してもらった結果、SCLとSDAを経由してLCDへデータを送る時タイミング(ウエイト)等を調整してやっと周波数の表示が可能となりました。

次の写真は、発振周波数が9MHzちょうどを示しており、カーソルは1Hzの桁にあります。



3.応用
この位までの精度で周波数が分かれば様々な用途が考えられそうです。
まず3.5MHzの受信機のL-OSCに使えれば、無理をしてVXOの発振周波数を下げてドリフトがある状況から逃げられそうです。もっとも想定していなかったので、どの程度の手直しが必要かまだ分かりません。また、X-talフィルタの特性も、周波数をある程度細かく設定して出力を読んで行けば可能となりそうです。

特に受信機のL-OSCとして使う場合は、受信周波数をいちいち計算して出さなくても済むように、差分(IF周波数分)を差し引いた(ヘテロダイン方式によっては"加えた")周波数を表示させた方が良さそうです。
ソフト作りでいつまでも友人に迷惑を掛けるわけには行かないので、差分をSW等で設定すればLCDに表示される周波数が受信周波数になるようにソフトを追加・修正しようと思っていますが、ハードルはかなり高そうなのであせらずにやってみようと思っています。