CPU のソフトウェアー仕様

CPU には、PIC16F873/20 を使用し、秋月のDDS ユニットをコントロールします。
このCPU は、1CH のA/D コンバータを内蔵( #2 pin RA0 )しており、このA/D コンバータを使用して、RIT機能を実現しています。

周波数表示は、秋月で売っているLCD 16文字2行表示のSC1602BSLB を使用しています。
写真は、RIT スイッチ ON のときの周波数表示です。


RIT 機能のためにCPU には、送信受信の判別信号を#6pin RA4に入力する必要があります。(受信時H ,送信時L)
#7pin RA5 が L でRIT ON 、H で RIT OFF となります。
RIT ON のとき、#2pin RA0 のDC電圧によって、RIT周波数が可変します。(±約1.3kHz)
RIT 機能のためにプログラム上では、ロータリーエンコーダからのパルスをカウントするカウンターを2つ(メイン、サブ)持っています。
RIT OFF では、メインカウンターとサブカウンターは、同じ値です。
RIT ON では、RA0 に接続されているRIT ボリュームのDC値をA/Dした値がサブカウンターに加算されます。
RIT ON で送信状態のときは、メインカウンターの値が読み出されます。受信状態の時は、サブカウンターの値が読み出されます。

周波数ダイアルには、秋月で売っている1回転24パルスの機械式ロータリーエンコーダ( @\200 )を使用しています。
ロータリーエンコーダの入力は、#25 RB4 、 #26 RB5 のポート変化割込みで取り込み、ロータリーエンコーダのA相、B相のそれぞれの立下り、立ち上がりを捉え、4倍カウント処理をしています。
従って、一回転24パルスを4倍の96パルスとして読み込んでいます。
ポート変化割込みを使用することにより、機械式ロータリーエンコーダのチャタリングを回避でき、スムースな周波数可変が実現できています。

1パルスあたりの周波数可変ステップは、#23pin RB2 , #24pin RB3 の2bitで制御します。
RB2 Low、 RB3 Lowのとき100kHzステップ、 RB2 Low、 RB3 オープンのとき1kHzステップ 、RB2 オープン、RB3 L owのとき、500Hzステップ、RB3,RB4ともにオープンで10Hz ステップとなります。

#21pin RB0 は、パワーON / OFF 制御で、L でON、オープンでOFF( CPU スリープ状態)となります。
パワーOFF(スリープ)処理の直前にその時点の周波数データをメモリーにセーブし、次回パワーON時に周波数データをメモリーから読み出し、OFF前の周波数で動作を開始します。

#14pin RC3 は、このパワーON/OFF 制御に同期して、H/L を出力します。この信号を利用して他の回路の電源をON/OFFすることが出来ます。(パワーON で H 、パワーOFF で L を出力)
周波数データは、#3 RA1 、#4 RA2 、#5 RA3 からそれぞれ シリアルクロックSCLK、シリアルデータSDT 、ストローブSTRBとして出力され、秋月のDDS ユニット に入力されます。
データの送出タイミングを下記に示します。
DDS IC の#17,#18,#19 pin がそれぞれCS0,CS1,CS2に対応しています。DDS IC側で、いずれのピンもプルアップしているのでアドレスは、7hex (= 111) です。
コマンドは、イニシャライズ時に 1 (= 0001、 DDS出力ON ) を送信し、後はChex (= 1100)とします。
#11 RC0 には、オフセットアジャスト機能を設けています。
#21 RB0 オープン(POWER OFF)にして、 #11 RC0 を High にし、#11 RC0 を High にしたまま、#21 RB0 を Low (POWER ON)にするとオフセットアジャストモードに入ります。
オフセットアジャストモードで設定した周波数と実際のDDSの発振周波数を加算した値がLCDに表示されます。
本機の場合、DDSの発振周波数が8MHzのとき、LCDには144MHzと表示されるようにオフセットアジャストモードでオフセット周波数を136MHzとなるように設定します。
オフセット周波数は、ロータリーエンコーダを回して設定します。設定終了後、#11 RC0 を Low にするとオフセットアジャストモードが終了し、通常モードとなります。


尚、プログラムについては、非公開とさせていただきます。