2008年10月30日木曜日

29MHz FMトランシーバー(7)

AVRのコントロール

 今回PLLのコントロール、エンコーダー、液晶表示及びスイッチの取り込みをPLLでおこなった。
PLLについてはすでに(2)で解説しているので、ここではそれ以外を中心に解説する。

(1)AVRの種類
  コンパイラにBASCOM-AVRを使用しているため4KBまでのプログラムが可能であるが、あまり複雑なプログラムにはまだ慣れていないので、安く入手できる「ATTiny2313-20」を採用した。これは2KBまでである。






(2)プログラムの流れ
  1)イニシャルセット
    初期設定で変数の宣言、IN、OUTのポート等の設定などを行う。
    初めて電源を立ち上げた場合、前回OFF時のデータが保存されていないため、でたらめとなっ    てしまう。そのため、初めて電源立ち上げる時はメインスイッチONで立ち上げることによりすべてメインチャンネル周波数が書き込まれる。まあリセットスイッチのような役目である。
    PC9256のデータシートを読むと電源ON時の書き込みは不安定のようで2回同じ操作をするように書いてあったのでCall Pllwを2回行っている。

  2)メインルーチン
    メインCHスイッチの割り込みを許可し、割り込みがあればメイン設定サブルーチンにいく。
    ロータリーエンコーダの入力判定を行う。
    以後この繰り返し

(3)サブルーチン
    繰り返し命令は、サブルーチンとしている。
  1)Mainch
    メインCHスイッチをONにしたときの処理でPLL周波数を29.3MHzに設定し液晶に表示する

  2)Mainch1
    メインスイッチをウォッチしOFFとなったら、以前の周波数に設定してメインに戻る

  3)encod
   エンコーダ処理サブルーチンでエンコーダをまわした時に周波数をUP,DOWN
   10KHzステップ
   液晶表示処理が遅いためか、早回しで取りこぼしがある。実用上は問題ないが。

  4)Pllw
   PLL周波数書込みサブルーチン
   この部分は以前に説明したので省略

  5)Lcdw
   液晶書込み
   もう少し凝った表示にしたいが、メモリ不足


以上AVRのプログラムを解説したが、作りっぱなしなのでおかしなところがあるかもしれない。
まあはじめてのPLLとしてはどうにか実用となった。

課題として、OFFバンド判定が必要である。これが無いと認定が通らない。
BASICでは、このAVRではメモリが不足。mega48にする必要がある。



以上29MHzFMトランシーバーの製作記録でした。
次は29MHzと50MHzの2バンドトランシーバーを目指し、要望のあるローカルが作成できるレベルに標準化したいと思っている。

いつごろになるか・・・・・・・・・


ご質問等は、コメントまたは、ホームページの掲示板等でお願いします。

1 件のコメント:

Unknown さんのコメント...

Can you share for firmware?
Thanks