制御コンポーネント用のプログラムは、MikroCを使用してC言語で記述しています。今回のプログラム程度のボリュームであればフリーのトライアル版で十分です。詳細は「PICを使った簡易測定器の実験」に書かれていますのでここでは割愛します。PICにプログラムを書き込むためのライターは、秋月電子のPIC Writer v4.0を使用しています。最近はPICを使用した工作記事が非常に多いですので一つあると工作の幅が非常に広がると思います。
次にRIT/XITですが、これはPICの10Bit A/D変換ポートにボリューム(可変抵抗)を接続してその値を読み取っています。PIC16F886のA/Dコンバーターは0から最大値の1023(10Bit)まで変化します。1024の半分の512を中心として1Bitあたり10Hzの変化にすると約±5kHz変化させることができます。 残りのCWシフトや送受信VFO選択、スプリット運用は割り当てたポートのHigh/Loの状態を読み取って周波数の変化分をセットして行くことで実現できます。プログラムのフロー概要を図7に示します。
DDSキットとの通信
DDSへの周波数指定の命令は、DDSチップで指定されている手順でクロックとデータをDDSに送ることになります。データを送る順序は図8のような構造になっていて、3bitのDDSデバイス選択コード、4ビットの操作コマンド、26bitの周波数データの合計33bitをDDSへのクロック(CLK)信号と合わせて送ります。チップアドレス選択ビットはキットのデフォルトになっている7(2進数で111)を使います。コマンド設定ビットは16進数のc(2進数で1100)だけを今回は使っています。データ設定ビットには、出力したい周波数を26bit分送信します。DDSチップは4CHのメモリーを持っていますが、電源を切ると消えてしまう揮発性のため今回は使用していません。各種コマンドやタイミングなどは、データシートをご参照ください。
図 8 DDSへの指示データ A0から順番にD25までのビットを送信する
周波数カウンターの改造
使用した周波数カウンターの仕様は、最高で32MHzまで使用でき、0〜4MHzまでが1Hzの精度で、それ以上は1/8プリスケーラーを通して8Hz刻みで32MHzまで表示可能となっています。ゲートタイムの切り替えも1秒と0.1秒があります。読み取る時間と表示できる最小桁の希望によって選択すればよいと思います。オリジナルからの変更点は表示する周波数を入力された信号から5MHzもしくは5.5MHz引いた値を表示させることですが、もともとAMラジオ用に455kHzシフトさせるスイッチと機能がありますのでこの仕組みを流用しプログラムを変更します。それと5MHz台を測定するときには1/8のプリスケーラーを通るので8Hz刻みの表示になってしまいますが、今回は最高周波数が6MHzなので1/2プリスケーラーに変更して測定できる周波数の上限を抑えることで、2Hz刻みの表示としています。ゲートタイム1秒の時には2Hz刻みで、0.1秒の時は20Hz刻みで表示されます。これらの変更を行ったmain関数を公開していますので、ご参照ください。
ソースファイル、HEXファイルのダウンロード
※無断転載禁止
※このサイトに記載されている内容の一部または全部を他のサイトで掲載・引用・リンクされる際は事前に作者へe-Mailでご連絡をお願いいたします。アドレスはアルファベット小文字で、ジェイ・エフ・ワン・ヴィ・アール・ユー@jarl.comです。