DDSVFOの製作
HOME BACK

秋月DDSキット

以前から気になっていたモノに秋月のDDSキットがある。昨年、購入しようとしたが、PICを使ったDDSコントロールキットの方が品切れになっていた。最近、秋月のWebサイトで確認したらDDSコントロールキットが復活していたので、代引き通販でDDSキットとDDSコントロールキットを購入した。
秋月のキットは説明書が不親切なことが多々ある。このDDSキット説明書も基準周波数が16MHzとして解説されているが、実際には67MHz台の水晶発振モジュールがバンドルされている。キットの中身はアップ・グレードされたが、説明書は昔のモノをそのまま使用しているようである。このキットを製作する場合はこのサイトに詳しく説明されているので製作前にチェックしておくとよい。
DDSコントロールキットは全く別のキットをDDSコントローラーに転用しているので、オリジナルの説明書とDDSコントロール用の説明書が入っている。しかも、基板はオリジナルの方のままで、それも同じモノが2枚あり、DDSコントロール用にするためには回路図を見ながら製作者が適当にアレンジしなければならない。これでは蛇の目基板を使い回路図を見ながら初めから自作するのとあまり変わらない。DDSとコントローラーをケースに入れるために表示用の7セグメントのLED部分を基板から分離して製作した。

写真左から電源スイッチ、周波数UP用ボタン、同DOWN用ボタン、ロータリーエンコーダー。

無線機への応用その1

DDSの出力に周波数カウンターを接続して動作確認する。DDSを立ち上げると1MHzを出力するようにプログラミングされている。表示用のLEDは4桁しかないので上位4桁で10MHz台から10KHz台まで、下位4桁で10KHz台から1Hz台までを切り替えて表示するとともに選択された桁でアップダウンできるようになっている。無線機のVFOとしては10Hz台での操作が必要だが、そうすると周波数はkHz台までしか表示できず、甚だ不都合である。出力を測定してみるとQRP用パワー計がほとんど振れなかったので、2SC1906で簡単なポストアンプを作り、数十mWまで増幅した。

DDS本体左側の基板は2SC1906のポストアンプ、ロータリーエンコーダーはアメリカから取り寄せたキットにバンドルされていた光学式、出力コイルはトロイダルコアに巻いてある。

これで一応VFOとしての機能が整ったので自作トランシーバーのアナログVFOの替わりに使ってみた。このトランシーバーでは7MHz運用の時、局発は9.7265MHzとなるので、DDSをその周波数に合わせた。トランシーバーには局発を計測して運用周波数を表示させるカウンターが内蔵されている。さすがにDDS、カウンター表示はぴくりとも変動しない。DDSの周波数ステップを10Hzに切り替えてダイアルを廻すと快調に7MHzのCWが聞こえてきた。CW音調はアナログVFOに比べると硬いようであるが、QRHが全くないのがうれしい。この状態で何局かとQSOできた。バンド内にスプリアスが少し出ているが、QRHがなくなったことの方のメリットが大きいと思われる。DDSには8MHzLPFが装備されているが、使用周波数はその上の9.7MHz台なのでスプリアスには良い結果となっているかもしれない。

無線機への応用その2

20mトランシーバーの局発にも使ってみた。この無線機は最近、不調なので中の基板を整備し、別のケースに組み込む予定である。そのついでにVFOもアナログからDDSへ換えてみることにした。こちらは5MHz台のVFOに9MHzIFで14MHzを作り出している。基板を取り出し、整備した後、バラックセットで組み立てた。とりあえず、受信機能だけである。5MHzをDDSから受信DBMへ注入するが、ダイアルを廻すとスプリアスのオンパレードとなってしまった。急遽、FCZのコイルを組み合わせたBPFをポストアンプの後につないだ。これにより、スプリアスはかなり改善された。

FCZコイルを組み合わせたBPF。

DDSVFOコントローラー

秋月キットのDDSコントローラーはやはり使いづらい。VFOとしてはIF分を加味して運用周波数をダイレクトに表示できるものが欲しい。「DDS VFO」をキーワードにしてネット検索したらいくつかの情報がヒットした。その中から回路がシンプルでなおかつPICのソースファイルも公開しているJE1AHW内田OMの自作のオアシスから「CYTEC版DDS-VFOユニット(スプリット対応)」をダウンロードした。解凍すると製作に必要な資料一式が現れた。このVFOはフリ−ソフトのプリント基板エディタ−「PCBE」を使用してプリント基板を作るようになっている。しかし、最近は生プリント基板をグランドにして直接パーツを半田付けする方式でしか自作していないので、プリント基板を作るのは億劫である。シンプルな回路なので穴あき基板で試作することにした。
資料の中にはテスト用のPIC実行ファイルも入っていたので、秋月のPICプログラマーを使ってPIC16F84A-20/Pに焼きこんだ。 オリジナルはPIC16F84を使うようになっているが、後継品種のPIC16F84A-20/Pでも問題ないはずである。しかし、これでハマってしまった。PICプログラマーのデフォルトの設定ではいくらやってもConfigエラーが出てしまう。ソースファイルを良く読んだ結果、PICプログラマーのConfig設定を

FOSC HS
WDTE Disable
PWRTE Enable
CP Disable

としてようやく焼きこむことが出来た。
今回は試作なので、ファンションキーはDDSキットに入っていたDIPスイッチを使った。テスト用のプログラムで運用周波数表示、周波数ステップ変更、VFOA/VFOB切り替えの機能を確認することができた。ロータリーエンコーダーはアメリカから通販した光学式のモノを使ったが、プログラムとのマッチングも良好であった。

左がVFOコントローラー、右がファンクションスイッチ部

テスト用プログラムのデフォルト表示はこのようになる。

CYTEC版DDSVFOキット

内田OMも参加している自作関係MLに上記顛末を投稿したら、内田OMから「CYTEC版DDS-VFOユニット(スプリット対応)」基板キットの試作依頼があったので、ありがたくお引き受けした。到着したキットには基板類、印刷済みの説明書、データ一式が入ったCD-ROMが入っており、非常に完成度の高いモノである。ただし、このキットは基板キットなので、DDS本体やその他のパーツは製作者の方でそろえる必要があるが、秋月等の通販で入手可能なものばかりである。キットには秋月DDSのFAX注文書も用意されていてかゆいところに手が届くほどの親切さである。

左上からデータCD-ROM、基板類、下は12枚もある詳細な説明書。

基板はPIC部、DDS部、ファンクションスイッチ部の3枚に別れている。PIC部から製作するとよいだろう。基板が完成したら単体で試験する。PICにテスト用プログラムを焼きこんで装着する。このテストの際にはDDS部、ロータリーエンコーダー、ファンクションスイッチ部は接続する必要はない。
このように表示されれば単体はOKである。

穴あき基板と比べるとさすがにスマートである。5VレギュレーターICは手持ちのものを使用した。

次にDDS部を製作する。この基板は秋月DDSの母体となるモノであり、2SC1906のポストアンプ、LPFが組み込まれるようになっている。母体基板と秋月DDS基板の接続はユニークかつ合理的な方法を採用している。秋月DDS基板のインターフェース用の穴に対応した穴が母体基板にも用意されており、抵抗等の切り飛ばしたリード線を使って2枚の基板を串刺しにして半田付けする。これにより、2枚の基板を最短距離で接続することが可能となっている。

スペーサー代わりのナットの右が上下の基板を串刺しにしているリード線。

PIC部基板とDDS部基板との接続も合理的な方法となっている。2枚の基板を90度の角度で半田付けする。もちろん、半田付け出来るようにパターンが構成されている。これにより、PIC部とDDS部を接続するための配線が一切不要となる。

2枚の基板は写真上部のパターンで半田付けにより接合されている。


キットに入っているプリント基板の小片で補強すると実用的な強度が得られるようになっている。

全体の構成、両サイドにあるのが補強用小片。

試験

9MHzIFのジェネレーターと組み合わせて14MHzトランシーバーを構成する予定なので、VFO出力は5MHzとなる。そのため、ポストアンプのLPFも5MHzで製作した。VFO出力をQRPパワー計で測定すると約70mWとなった。VFOの周波数ステップを10Hzと1kHzを切り替えられるように仮配線した後、VFO出力を3dBアッテネーターを介してバラックセットの受信用DBMへ接続した。アンテナを接続せずにダイアルを廻すと数kHzごとにスプリアスが出てしまう。強いスプリアスはSメーターを振らしてしまっている。これでは使えないので、上述してあるFCZコイルを組み合わせたBPFをVFOに仮接続して出力を計測すると約5mWとなった。BPFの損失は10dB強となる。BPFを挿入したおかげでスプリアスはかなり減った。まともな測定器を持っていないので、BPFで減ったのか、単なる10dBのアッテネートの成果なのか判別できないのが辛いところである。Sメーターを振らすほどのスプリアスはないが、何ヶ所か顕著なビートがある。やはり弱い信号を受信する際には問題になりそうである。
ところで、BPFを挿入する箇所であるが、VFOの出力には5MHzLPFがすでにあるので、その後にBPFを挿入するのは不合理である。DDS出力は0.01uFを介してポストアンプの2SC1906に接続されているので、この0.01uFを外してBPFを仮接続してみた。使用したBPFは上述したFCZコイルを組み合わせたものである。ただし、BPFの出力はDCカットするため0.01uFを介してポストアンプへ接続する。VFO出力を計測すると約50mWとなったので、0.01uFではポストアンプに対して過剰入力だったようである。バラックセットではVFO出力をスプリッターで2分割して受信用と送信用の別々のDBMへ注入するようになっている。50mWあるので、スプリッターの入力側と出力側に3dBアッテネーターを挿入してもDBMへは5mW以上を注入できた。スプリアスに関しては、VFO出力にBPFを挿入したときよりも良くなっているようである。しかも、スプリッターで分配できるほどのVFO出力が得られたことはトランシーバーとしてまとめ上げるためには好都合である。
BPFの特性を調べるためにスプリッターの送信用ポートにQRPパワー計を接続して周波数を可変してみた。5.14MHz〜5.37MHzがほぼフラットで、-3dBが4.86MHz〜5.78MHz、パワー計が振れ始める範囲は4MHz〜6.65MHzとなり、そこそこのBPF特性となっていた。これであれば、9MHzIFと組み合わせて14.0MHz〜14.5MHzトランシーバーで使用するのには問題ないであろう。

バラックセットで試験中、シャーシー上左側が9MHzIFジェネレーター基板、その右がトランスバーター基板。

PICへの焼きこみ

キットにはテスト用の実行ファイルがバンドルされている。これは8.2MHz出力の時、21.0MHz表示になるようにセットされている。PIC部の試験はこの実行ファイルを使うと便利である。今回は9MHzIFのジェネレーターを使って14MHzトランシーバーとしてまとめる予定なので、5MHz出力時に14MHzを表示するようにしたい。そのため、ソースファイルをコンパイルしてPICに焼きこむ必要がある。
運用周波数表示を変更するためにはPIC_DDS_VFO_Frq.setというファイルをエディターで開いて編集する。ところが、この.setという拡張子はバックアップ関係の拡張子として予約されているようで、そのままクリックするとバックアップの画面が開いてしまう。メモ帳等のエディターを立ち上げてからこのファイルを指定して開く必要がある。変更する箇所はVFOA/Bのスタート周波数、運用周波数を表示させるためのIF周波数の指定である。エディターで開くと

;VFO(A)=AVFO_TMP(0-3) *
AVFO_TMP3=#0x00;[MSB] 例えば、8.2MHzの場合。     *
AVFO_TMP2=#0x7d; |   16進数で表すと          *
AVFO_TMP1=#0x1f; |      8200000->7D1F40h      *
AVFO_TMP0=#0x40;[LSB]          となります。  *

となっている。今回は5MHzからスタートさせたいので、この箇所を書き換える必要がある。Windowsのアクセサリーにある関数電卓を立ち上げて5000000を16進数に変換すると4C4B40が得られるので次のように書き換える。

;VFO(A)=AVFO_TMP(0-3) *
AVFO_TMP3=#0x00;[MSB] 例えば、8.2MHzの場合。     *
AVFO_TMP2=#0x4c; |   16進数で表すと          *
AVFO_TMP1=#0x4b; |      8200000->7D1F40h      *
AVFO_TMP0=#0x40;[LSB]          となります。  *

同様にVFOBの箇所も書き換える。IFについても

IF_SET3=#0x00;[MSB] 例えば、12.8MHzの場合。      *
IF_SET2=#0xc3; |   16進数で表すと            *
IF_SET1=#0x50; |      12800000->C35000h       *
IF_SET0=#0x00;[LSB]          となります。      *

となっているので、9MHzに変更するため9000000を16進数に変換して895440となるので次のように書き換える。

IF_SET3=#0x00;[MSB] 例えば、12.8MHzの場合。      *
IF_SET2=#0x89; |   16進数で表すと            *
IF_SET1=#0x54; |      12800000->C35000h       *
IF_SET0=#0x40;[LSB]          となります。      *

書き換えが終わったら上書き保存する。
コンパイルはCPICASMというソフトを使用している。コンパイルするためには以下のファイルを同一のディレクトリーに収納しておく必要がある。

CPICASM.exe
lcd.def
PIC16f84.DEF
VFO_SPL.ASM
PIC_DDS_VFO_Frq.set

その後は説明書どおりにすれば、コンパイルできるが、CPICASM.exeはDOS環境で走るのでDOSを立ち上げ

> CPICASM VFO_SPL.ASM

としてもOKである。実行ファイルとしてvfo_spl.objが作成される。
実行ファイルを秋月のPICプログラマーを使用して、現行品種のPIC16F84A-20/Pへ焼きこむ場合、PICの種類をPIC16F84A-20/Pとし、Config設定を

FOSC HS
WDTE Disable
PWRTE Enable
CP Disable

とする必要がある。

まとめ

このVFOは20mトランシーバーへ使う予定である。別の自作機のケースを再利用するため、サブパネルにDDSVFO、ファンクションスイッチ、ロータリーエンコーダーをまとめて、サブパネルごとビルトインすることにした。キットではファンクションスイッチにタクトスイッチを使うようになっており専用基板も用意されているが、中点跳ね返りスイッチがあったのでそれを使った。
その後、内田OMからVFOA=VFOBの機能が追加されたソース・ファイルが送られてきた。ファンクションキーの割付は10kHzのかわりがVFOA=VFOBとなっており、現在はこちらを使用している。

基板をパネルへ装着するのには適当なスペーサーを使用した。ロータリーエンコーダーのシャフト径は1/4インチなので米軍ジャンクのつまみを付けてある。
(クリックすると拡大写真となります。)

HOME BACK

Last Update 22/July/2003 by mac