お気に入り受信機DDS VFO組み込みソフトの作成

 

FT-101Zを改造して「お気に入り受信機の製作」、DDS VFOの制御ソフトも一通り動作するようになりました。写真はDDS、マイコン部、 信号切り替え回路部を組み合わせ動作確認の様子。左写真は切り替え部、右写真はマイコン基板とDDS基板の組み合わせの様子。

2016.1.22

はじめに
 DDS VFOは過去にも自作して使用していますが、どうも周波数可変のフィーリングがしっくりしません。高分解能のロータリーエンコーダーを使用してもアナログ VFOの操作感には及びません。
 QRHについては受信で使用するには実用上問題ありませんが、送信時にはより安定度を向上する必要があります。そこで本受信機には、アナログVFOとDDSを組み込んで 必要に応じて、アナログVFO周波数を読み込み、その周波数をDDSで発振させればアナログVFOの操作性とDDSの安定度の両立が出来るはず。  

目標仕様
 目標仕様は先に検討した仕様検討の内容で検討し、CHスキャンはあまり使う機会がなさそうなので今のところ盛り込みはしていません。 プログラム容量に余裕があるので、周波数スィープやメモリーCHの増加など追加機能があれば再検討していきます。

ハード部(信号切り替え)の製作
 DDS、VFO、EXT VFOの信号切り替え回路は下図のようにしました。各信号のアイソレーションをとるためリレーは高周波用を使用したかったのですが、手持ちは使い 切ってしまったので代替え処置としてリレーの遊んでいる接点をGNDに接続するようにしました(例K2、K3)。通常の使用方法ではアイソレーションは-60db(@6MHz)程度ですが -70db程度に改善できました。VFO信号はビデオSW ICが手持ちにありましたのでBuffとアイソレーション改善のため追加しています。
 DDS出力とVFO出力のレベル合わせはDDS側に4db程度のATTを追加しています。
 ちなみにオリジナルのFT-101Zでは内部VFOとEXT VFOの切り替えは使用しない側の電源供給を停止しているのでアイソレーションは問題になりませんが、通電によるQRHが懸念 されるので、本機では電源は通電したまま信号の切り替えアイソレーションを確保する様にしました。

ソフト
 マイコンはPIC16F88を使用、ソフト開発はCCS CとMPLABを使いました。従来はアセンブラで書いていましたが、今回は"C"にしたので開発期間が大幅に短縮、かつプログラムの ライン数も大幅に少なくなりました。プログラム容量は約1Kでアセンブラで書くとA4用紙で10ページ以上になりますが、"C"では3ページ程度に収まるのでデバッグも非常に楽になりました。
 ソースリストを参考まで、各関数についての簡単な説明をします。

timer2 0.1秒ゲートタイム作成、Timer2カウンターを250にプリセットし10回一致するごとにloopカウンターをアップして必要なゲート時間を作成。

timer1 VFO周波数をカウント、Timer1はせいぜい4MHz程度しかカウント出来ないのでプリスケールで分周が必要です。カウント値はcounter_H,MLレジスターに格納。

EEPROM write CH1、CH2のメモリーに周波数データーを保存。EEPROMには周波数データを上位8bit、中位8bit、下位8bitに分解して保存。

EEPROM read 上位8bit、中位8bit、下位8bitのデータをつなげてDDSの周波数データにします。

DDS CCS Cにはデーターのn bit目がH/Lかを判定するBit testという関数があり、この関数を使いポートをH/L制御しています。当初シリアルデータ送出の関数を使うことも考えま したが、アセンブラでのやり方で書いても大して負担にもならず、このようにしました。

メイン関数 各SWの動作検出を単純に繰り返しています、6個のSW状態をポートB0〜B3を使って検出しています。各SWにはチャタリング防止の為のwaiteとSWが戻ったことを検出する do while〜を挿入して、次の動作に移るようにしています。
 

回路図

回路図
操作感
 一通りの操作の様子を動画にアップしてみました。カウンター周波数の微調整が終わっていないので若干の周波数ずれが出ていますが、、、。比較的違和感の無い感じで切り替わります。
FT-101Z VFO & DDS demo(動画 YOUTUBEへ)

EXT SWを押すとEXT VFOが無いので周波数表示が91MHzと異常表示します。
TX EXT SWを押すと押した時点のVFO周波数がDDS発振で外部TXへ出力されます。受信周波数はアナログVFOのまま。
RX EXT SWを押すと押した時点のVFO周波数がDDS発振で固定され、ダイアルを回しても周波数表示は変化しません。
VFO SWを押すと通常の動作。
CH1 SWを長押しするとその時点のVFO周波数がCH1にメモリーされ、かつその周波数で固定。短押しでCH1にメモリーされている周波数を呼び出す。電源を切ってもデーターは保持。
CH2 SWはCH1に同じ。

今後の計画
 後はアクセサリーコネクタやTXとのインターフェイス周りの配線を残すほか、ハム音対策、時々異常発振などのトラブル対策を実施。メーカ製トランシーバーとの鳴き合わせを やってみたいですね。  

  完成へ

Top Menu