2008年9月17日水曜日

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

PLLコントロール回路
 コントロールは、Atmel AVR(ATtiny2313-20PU)を使用

  • PLL TC9256のコントロール
  • 液晶表示
  • エンコーダ
  • MAIN切替スイッチ
を処理している。

  Z80アセンブラは20年前に卒業してしまっており、すっかり忘れている。PICアセンブラも挫折気味。そんなことから
言語はBASCOMーAVRを使用。JA9TTTさんのホームページで基本を勉強しどうにか完成。
 このデモ版は2Kワード(4KByte)までであり2313はフルにプログラミングできる。こんな言語が無料で使用できるのはありがたい。しかし生成されるコードはアセンブラに比べ大きいのは致し方ない。最近はmegaシリーズも秋月で販売されているので、この問題はそんなに大きな問題ではなくなってきた。やはり簡便にソフトが作れる方が良い。

最初にPLLコントロール
 TC9256はシリアル制御である。CLOCK、PERIOD、DATAの3線をAVRと繋ぐ。
   TC9256     ATiny2313
   DATA(5)--------RB0(12)
   CLOCK(4)-------RB1(13)
   PERIOD(3)------RB2(14)

コマンドは、以下のようにしている。

1)TC9256のレジスタ設定準備

  TC9256のモードは4種類ある
   LFモード  直接分周方式     0.5~20MHz
   HFモード  パルススワロー方式 1~40MHz
   FMLモード パルススワロー方式 30から150MHz
   FMHモード 1/2+パルススワロー方式 30~130MHz

   使用周波数 29.000MHz~29.7MHz
   受信第一IF 10.7MHz
   PLL出力   29.000+10.7=39.7MHz
            29.700+10.7=40.4MHz
            39.7~40.4Mhzとなる。 HFモードは40MHzまでであるが、これで設定することとした。
            レジスタは「FM=0 MODE=1」
   ステップ    10KHz
   分周数    39.7MHz÷10KHz=3970
           40.4MHz÷10KHz=4040となり 分周数=「3970~4040」分周

  リファレンスカウンタの設定
   使用水晶は入手しやすい4.5Mhz レジスタは「OSC1=1 OSC2=0」となる
   基準周波数 10KHz レジスタは「R0=0 R1=1 R2=0 R3=1」となる

2)レジスタの書き込み
   BASCOM-AVRでのシリアルOUT命令は「Shiftout」を使用
   関係部分を抜粋すると以下のようになる
   
   Config Portb.0 = Output    'clock出力
   Config Portb.1 = Output
   'data出力
   Config Portb.2 = Output
   'period出力

   Declare Sub Pllw            'PLL書き込みサブルーチン

   Dim Cm01 As Byte           'PLL書き込みコマンド(d0H)のアッパー格納 
   Dim Cm02 As Byte           'PLL書き込みコマンド(d0H)のロワー格納
   Dim Pll1 As Long            'PLLレジスタ1
 分周数格納3970~4040
   Dim Pll2 As Byte            'PLLレジスタ2 PLL設定レジスタ格納

   Cm01 = &B00001101 'd0H upper部分「d」の2進数
   Cm02 = &B00000000 'd0H lower部分「0」の2進数
   Pll2   = &B01101010   '
「OSC2=0 OSC1=1MODE=1 FM=0」「R3=1 R2=0 R1=1 R0=0」の順番に並べたもの
   Pll1   = 40000             '分周数 29.3MHz+10.7MHz=40MHz÷10KHz=40000

   Set Portb.2                          'PERIOD→H
   Set Portb.1                          'CLOCK→H
   Set Portb.0                          'DATA→H
   Reset Portb.2                        'PIREOD→L 転送開始
   Shiftout Portb.1 , Portb.0 , Cm02 , 2 , 4 , 1  'レジスタ書き込みモードL送出
   Set Portb.2                          'PERIOD→H
   Shiftout Portb.1 , Portb.0 , Cm01 , 2 , 4 , 1  'レジスタ書き込みモード送出
   Shiftout Portb.1 , Portb.0 , Pll1 , 2 , 16 , 1   'PLLデータ(分周数)送出
   Shiftout Portb.1 , Portb.0 , Pll2 , 2 , 8 , 1    'PLL各種設定レジスタ送出
   Set Portb.0                          'DATA→H
   Reset Portb.2                        'PERIOD→L 転送終了

PLL書き込みのワンポイント

   ・アイドル状態でPERIOD,CLOCK,DATAは(H)レベルとする
   ・データ転送開始後PERIOD信号がLの期間にクロック立下りが8回を超えてはいけない。
    ということでd0Hを2分割して送出している。
   ・ データはLSB(ゼロビットから)から送出でPLLデータは立ち上がりで検出(下の赤字部分)

    Shiftoout Portb.1 , Portb,0 , Cm01 , 2 , 4 , 1

これで一応PLLの設定完了。PLLがロックされた瞬間は感激!!

次回はその他のプログラムを説明する。

注意:プログラムは参考であり、責任は取れませんのでご了解願いたい。質問が有ればコメントに記載してください。



2008年9月15日月曜日

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

PLL回路


 PLLは、東芝TC9256を使用する。(1)でも書いたようにこのICは非常に多機能である。その特徴を簡単に紹介しよう。




  • 2モジュラスプリスケラーを内蔵しており、150MHzまで対応。プリスケラを使用しないモードで20MHzまで対応
  • 2つの並列出力位相比較器、水晶発振器、を内臓
  • 基準発信用水晶は3.6MHz、4.5MHz、7.2MHz、10.8MHzから選択
  • 基準周波数は0.5KHz、1K、2.5K、3K、3.125K、3.9062K、5K、6.25K、7.8125K、9K、10K、12.5K、25K,50K,100Kの15種類が選択できる。
これを見ると2mまではこのICでほとんど用が足りてしまう。SSBのように基準周波数分解能がさらに低い場合は少々細工がいるが。 さて今回は29MHzのFMトランシーバーであるから
  • 29.000MHz~29.700MHz IF=10.7MHz STEP=10KHz
  • PLLは39.7MHz~40.4MHz
となる
 TC9256の設定はパルススワロー方式のSWHを選択する。このモードは周波数範囲1~40MHzと少しオーバースペックとなるが、十分対応できている。基準発振器は手持ちの4.5MHzを使用。 VCOは最初手持ちのミニサーキットのPOS50を使用したのだが、FM変調で音声がかなり歪んでしまい、うまく駆けられなかったためディスクリートに変更した。多分コントロール回路の内部インピーダンスがかなり低くミスマッチしていたものと思われる。 回路的には一般的なトランジスタによる発振回路とFETによるバッファ回路の2段。トランジスタには2SC3778というft=2GHzを使っているが、手持ちの関係であり、一般的なVHF用トランジスタであれば何でもいいと思う。 PLL出力に入るLPFは、ディスクリートのアクティブLPF。回路の基本は、データシートにあるものであるが、定数はJK1XKPさんにご指導いただいた。 その他、KXPさんから、電源回路に気をつけるようにとのご指導で、PLLIC電源、VCO電源、AVRと全てを別々の定電圧電源ICとして供給するようにしている。特にVCOにはリプルフィルタを設けている。
ワンポイント ・ VCO、PLLIC等は電源を別回路としノイズが混入しないようにする
    ・ VCOは特にリプルフィルタを入れる
    ・ ロードロップタイプ3端子定電圧電源等のOUT側は0.1uF程度では発振する場合があるので10uF程度の電解コンデンサーを設ける。



     コントロール回路は、Atmel AVR(ATINY2313-20PU)を使い液晶表示、エンコーダ、MAIN-CHスイッチ処理を行っている。
    これに関しては次回とする。

     製作に当たっては、一品物であること、実験しながらの製作ということで、基板を興さずユニバーサル基板を活用している。
     使用している基板は、  高周波部分用として、サンハヤトの高周波用メッシュアース基板 ICB-88SEGを使用した。これは片面が全面メッシュアースとなっているのでアース回路を引き回さずに済み高周波回路製作には便利。
    その他一般回路は、同サイズのICB-87を使用。これは、最終的に組上げるとき積み木細工が出来るためである。
    写真は、POS50を使って実験したときのもので、VCOをディスクリートに変更してからの写真は撮り忘れてしまった。悪しからず。

    続く


    2008年9月13日土曜日

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

     ローカルでは最近29MHzのFMで交信している。過去にはAZDENなど29MHzFM機もあったが、アマチュア無線人口の減少とともに専用機が販売されなくなっている。29MHzくらいならばなんとか自作が可能と思い、久々に製作してみた。
     

     NETを検索して情報を収集し簡単に安く出来る構成を検討。低価格ICを活用したPLLトランシーバーとした。MIXERにはTA7358 IFにはMC3357 AFはLM386 PLLはTC9256 こんな構成となった。


     まず最初に
    PLL部分を作る。
    TC9256はJK1XKPさんのホームページで紹介されているのを見て、気に入ってしまったICである。
     非常に多機能であり、VHFまで使える。もともとAM,SW,FMラジオ用に開発されたものの様であるが、非常に欲張った機能を持っている。是非皆さんも一度このICのデータシートを見てみてください。きっと気に入るはず。
     ただ一つだけ私にとって高いハードルがあった。それはこのICがシリアル制御であること。つまりマイコン等による制御が必要だということ。一世を風靡したMC145163などは、パラレル制御であり、サムホイールスイッチやロジックICで制御できるが、どうしても配線や、回路が多くなることが欠点である。ここは一番このハードルを越える覚悟でTC9256を使ってみる。

    TC9256の入手先:啓誠
    株式会社 データシート:TC9256

     そのハードルを越えるにはマイコンの習得が不可欠。JK1XKPさんはPICを使用している。これを参考にするのが一番早道。でもそこはへそ曲がりの私。さらにNETを眺めているとJA9TTTさんがAVRを紹介されていた。一丁これに挑戦してみるかとAVRを使う事とした。

    続く