安定なVFO (DLL デジタル ロック ループ 勝手に名前付けました。)
ダイナミック リンク ライブラリでは有りません。

VFOを作ると、どうしても周波数の安定度に問題が出ます。
OMの方は上手に作られますが、私には無理です。

そこで、誰が作っても安定度の良いVFOと思い考えました。

原理は、周波数カウンターと補正回路です。

今は、PICと云う便利なものが有るのでそれを使いました。
理屈は簡単で、目的の周波数よりズレたら、補正するだけです。

原理的には、PLLに似ています。
ダイアルを回すと指定された周波数にフォトカプラーとコンデンサーで
バリキャップ電圧を変えて調整します。
要するに、周波数カウンターで目的の周波数から、ズレたら、
フォトカプラーでホンの一瞬オンさせ、まだ目的の周波数に、
達しない時又、一瞬オンさせて目的周波数にします。
オンは、コンデンサの充電と放電が必要なので、フォトカプラは、
2個必要です。コンデンサ電圧は、0V〜5V変化します。

一秒に5回位その動作をしています。
周波数がズレた時、人間が手でダイアルを回すのを、自動でやってるダケです。
コンデンサは、電気を貯めて、ある程度タイムラグをさせ安定させます。
フライホイールコンデンサと、云うかも知れません。
そうしないと、車で云う蛇行運転に成ってしまいますので。

この調整は、リニアICでも出来る見たいで、紹介しているサイトが有ります。

只、不安定なVFOを安定にさせるのですから、1秒に数回補正を掛けないと、
安定しません。なので最小分解能は 40hzです。訂正20→40
多分1秒に1回では、無理かな、と思っていますし、いくらSSBでも40hz 程なら、
同調に問題は無いと思っています。

80hzもやりましたが、一寸無理かなって感じでした、40hzでなんとか、と云う感じです。
ステップが40hz だと、100khz動かすのが大変なので、いずれは、ステップの切り替えを、
考えています。PIC16F84Aだと、IOが足りないので我慢しています。
同じ18ピンの上位のPICだと出来そうですが、AKIーPAが使えなかった
気がします。なので、一寸億劫です。

プログラムは、いずれUPしたいと思っています。

2012/06/23
DLLのソフトを掲載しました。決して良く出来ているとは、思いませんが!。
aki-paでアッセンブルして下さい。マイクロチップの、ソフトでは、そのままでは、無理と思います。
CPUは、PIC16F84A 20Mhzです。改良点は、有るのですが、自分の知識では、無理です。
周波数カウンターに誤差が有りますが(10khz位)、いずれ直すつもりです。

動作は、目的の周波数にします。初期値は、7.05mhzです。最初は、周波数をカウントします。
そして、現在の周波数(初期値で有れば、7.05mhz)と、測定周波数の差を計算します。
測定周波数が高かったら低く、又はその逆動作をします。
周波数の差が10khzとか有ったら、5khz位一気に近づける為、コンデンサへの充電又は放電の時間を、
長くして、1khz?? 位からは、徐々に時間を短くします。又、1khz位からは、二乗に比例で時間を決めています。
つまり、最初は大まかに、目標に近づけ、目標に近くなったら、細かく周波数の設定をします。
これで、出来るだけ早く目標周波数にする為です。

周波数カウンターは、一秒では、長すぎるので、1/10秒で測定します。
これは、周波数補正は、一秒で一回では、補正出来ないので、。0.1秒周波数測定して、周波数の差を計算して、
コンデンサへ充電/放電して、LCDに表示させ、周波数が可変されれば、エンコーダの位置を読み取りに行きます。
これを、1秒間に5回位繰り返します。

pic単体で、プリスケーラを使わない時は、2mhz位との事ですので??、プリスケーラを2倍に設定します。
これで、4mhz台迄周波数の測定が出来ます。この事から、最小分解能は、20hzx2 で40hzと成ると思います。
プリスケーラをx4にすれば、8mhz迄測定出来ると思いますが、分解能は、80 hzに成り、SSBだと、一寸苦しいかも知れません。
これは、プリスケーラの記憶数が読めないので仕方有りません。

picでプリスケーラの周波数を読む方法が有り、実験しましたが、確かに周波数は読めるのですが、
IOを余分に使うのと、自分は、受信機の場合、切り替えノイズが出るので、断念しました。

以上がdllの概要です。興味が有ったら、イタズラして見て下さい。LC発振器はFCZ、手巻き、AZMコイルでも実験しましたが、
皆、正常に動き周波数変動は有りません、コンデンサも普通のセラミックコンデンサで温度補償なんて無い物です。
(40hz間は、フラフラしています。理論上)、なので、いい加減に作っても動くVFOです。

2012/09/08
ソフト変更しました。
周波数カウンターのループ時間の詰めが甘いため、10khz程、周波数に誤差が有りました。
本日直しましたが、自分の持ってる周波数カウンターとの誤差が1.5khz有りました。
プログラムの問題なのか、周波数カウンターの問題なのか、分かりませんが、1.5khz
の誤差なので良しとしました。


120908一部変更 DLL-VFOのソフト

TOPに戻る


大きな回路図は、ここをクリック