50MHzFM受信機用PLLユニット

FM受信機などの局部発信器として
使えるPLL方式のVFO発信ユニットです。
2桁のチャンネル番号表示も可能となっています。



1.概要

 PLLを使って50MHz程度の高周波信号の発信器を作る際の
制御部です。
周波数設定をロータリエンコーダや押しボタンスイッチで行ったり、
2桁のLED表示でチャンネル番号を表示することができます。
またVFO回路も一緒に実装できます。


2.機能

・本制御ユニットはワンチップマイコンであるPIC16C84を使用して
 回路の簡単化と機能の高度化を実現している。
 (PIC16C84については「PIC Know How」 のページを参照)
・簡易ロータリエンコーダの入力に従い4桁BCD値を加算/減算
 する。
 設定可能範囲は 40.30MHzから41.30MHzを10KHzステップとして
 いる。これを100チャンネルで設定する。
 FM受信機のIFが10.7MHzなので、これで51.0MHzから52.0MHz
 まで受信可能となります。
・前項で設定された4桁BCD値をPLL用のICへの設定周波数
 としてシリアルで出力。シリアル入力のラッチ用ICでそれを保持し、
 その出力をPLL−ICに接続して希望の周波数を発振させる。
・2桁のチャンネル番号に相当する数値を外部7セグメントLEDに
 表示可能。ダイナミック点灯方式で直接PICから表示制御する。


3.構成

 構成は大まかに下図のようになっており、ロータリーエンコーダを
常時スキャンし、その動作によりPLL設定値を上下させてシリアル
出力する。それをラッチICで保持して、PLL用ICであるMC145163
に出力している。VFO回路は同一基板に実装出来るようになって
います。その間で7セグメントLEDの表示を制御します。

  ---------  ----------    
 |ROTARY  | |     |
 | ENCODER |->| PIC16C84 |   ------------------------------
  ---------  | SW,PLL  |   | 74HC595 x2          |
        | Control |---->| SERIAL INPUT 16BIT LATCH  |
        |     |   ------------------------------
        ----------     ↓BCDx4 ↓  ↓  ↓
          |||      ------------------------------
          |||     | PLL CONTOROL (MC145163)   |
         ----------   |               |
        | LED UNIT |   ------------------------------
        | 2digits |     ↑  ↓
         ----------     ----------------
                  | VFO      |--→OUTPUT
                  | 40.30-41.30MHz |--→Counter
                  ----------------

4.回路図とパターン図

 一寸小さくて見にくいですが下図が全体回路です。
左側にある大きなICがPLL用の有名なICです。その設定用の入力の
部分にラッチ用ICが2個接続されており、このICのシリアル入力の所
にPICがつながっています。
 PICからは、DATA、CLOCAK、ENABLEの3本の信号が出ており
これでシリアルでデータを送ることを制御しています。
 PICからはこれ意外に各スイッチへの接続コネクタとLEDへの出力
コネクタが接続されているだけです。       
回路図とプリント板用アートワーク図は、CADである「HiWIREU」
描いているのでダウンロードして使って下さい。

   FM受信機用PLLユニット回路図  (ダウンロードしてお使い下さい)
   FM受信機用PLLユニットパターン図(ダウンロードしてお使い下さい)


5.プログラムソースリスト

 プログラムの全体は1本の流れで出来ています。概略のフローは
下記のようになっています。

   →  キー入力有無チェック(何も無ければ繰り返し)
  |     ↓
  |  各キーの処理をする  ロータリーエンコーダ処理
  |     ↓
  |  周波数データの更新  周波数データはBCDで扱っている
  |     ↓
  |  PLLへの出力    シリアル出力の制御
  |     ↓
  |  LEDへの出力    7セグLEDの表示制御
  |_____↓

(1)ロータリーエンコーダの処理
  RE1とRE2の2本の信号のどちらが先かにより右回り(周波数アップ)
  か左回り(周波数ダウン)かを判定する必要があります。
  その実現方法は、

  RE2の信号入力なし → 何も入力無しとして処理
     ↓(あり)
 RE1の入力High → カウントダウン処理へ
     ↓(Low)
  カウントアップ処理へ
  として判断します。

(2)チャッタリング(バウンス)の回避
 スイッチの入力には必ずチャッタリングがあります。これは何かと言うと、
接点が閉じる時、1回で完全には安定に接触せず何回かはずんでから
完全に接触するという現象です。
 従って、1回だけ接点入力がLowになったからと言ってすぐ次の処理を
始めると、続けて接点の状態を見に行くような処理の時には次に見に
行った時にはHighに戻っているという現象となります。
このチャッタリングは数msec続きます。 特に今回のような接点式ロータ
リーエンコーダーはこのチャッタリングが比較的長く続いており、RE2が
Highになったと思ってすぐRE1を見に行くと、まだ安定しておらず逆方向と
判断してしまったり、何回かカウントしたりして不安定な状態となってしま
います。
 これを回避するためには、1度接点に変化を検出したら、数msec後に
もう一度見に行って再度同じ状態であったらその処理をするという風に
します。
(3)データの更新処理
 PLL用のICの設定値入力がBCDであるため、PICからの設定値も
BCDで出力する必要がありますので、内部のデータ処理は全てBCDの
ままで実行しています。
 また設定周波数が40.30MHzからなので、この”4030”を加えた値を設定
値出力としています。
プログラムリストは、ワンチップマイコンPIC用統合アセンブラである
MPLAB用としてあります。

     プログラムリスト(ダウンロードしてご覧下さい)

コントローラ部基板詳細写真
この基板にはPLLコントローラとVFO回路が実装されています。
写真の下側のコイルやトランジスタのある部分がVFOです。
ICソケットの部分にPICが実装されます。




目次ページへ