AVRでTNC(1)
東工大CUTE-Iに搭載されているSRLLに対応したTNCを2004年4月に作成してから、4年近くが経ちました。CUTE-IからのSRLL送信は、このところほとんど(全く?)ないようで、少々さびしい感じがします。
このTNCは、TCM3105というモデムICを使用しているのですが、このIC含めモデムICの入手は困難となっているようです。
また、現在国産TNCは製造されていないため、海外に注文するか、オークション等で探し回って何とか入手できるかどうかというのが現状のようです。
そこで、モデムICなしのTNCはできないのかと考えていたところ、別冊CQhamradioNo.1に掲載されていたAPRS記事の中にTinyTrak3及びPICTNCというPICを使用したモデムなしのTNCが回路図とともに紹介されていました。
記事に紹介のあったウェブサイト等を読んでみると、オーディオ信号をダイオードでクリッピング(サイン波の上下を削って矩形波=デジタル処理が容易になるような形にすること)し、それをワンチップマイコンのアナログコンパレータへ入力し、オーディオのレベルが+から-に変化する、つまりゼロレベルを横切るタイミング(ゼロクロス)を内蔵タイマーで数え、その間隔(時間)から周波数を計るという方法をとっていることがわかりました。これは、周波数変調である場合に、利用可能のようです。
そこで、私がSRLL用TNC作成で使用したAVRマイコンで同様のことができないか、検討を始めました(年末年始の休みは、ほぼこれで費やしてしまいました)。
手元にあるCQ出版の「AVRリファレンスブック」に、矩形波のタイミングを計るサンプルプログラム(C言語)が掲載されていたので、これを参考にしてアセンブラでプログラムを作成し、まずはワンチップマイコンで周波数測定が可能かどうかを試してみました。
プログラム自体はきわめて単純で、アナログコンパレータで「ゼロクロス」を検出すると割り込みがかかり、前回の割込み時と16ビットタイマーの値の差を計算して、内6ビットをLED表示するというものです。動作確認には、最初はデジタルテスタの1、10、100、1k、2k、3k、4k、5kHzのロジック出力を利用しました。
当初算出した差の上位8ビットの内下から6ビットを出力したのですが、1kHzを超えると表示が全く変わりませんでした。次の写真は、左 から10、100、1kHzの動作状況です。
1kHz以上の表示が変わらなかった原因は、タイマーが125kHz動作設定、つまり1秒で125,000進むことから、1kHzを超えるとカウント数は125、16進数で007D以下となり、上位8ビットは常に0となるためであるということがわかりました。
周波数=カウント数(10進数)=カウント数(16進数)=カウント数(2進数)で表すと次のとおりです。2進数の赤表示部分の1が消灯、0が点灯していることが、上の写真と対比することで確認できると思います。
10Hz=12,500=0x30D4=0b00110000 11010100
100Hz=1,250=0x04E2=0b00000100 11100010
1kHz=125=0x007D=0b00000000 01111101
2kHz=62=0x003E=0b00000000 00111110
そこで、今度は下位8ビットの内下から6ビットを表示するようにしました。
今回は、MMTTYをパソコンで稼動し、そのサウンド出力をダイオード2本を使用したクリップ回路を通してから、AVRのコンパレータに入力してみました。
MMTTYでは出力周波数が多少選択できるので、基本波1000Hzと2000Hz(シフト幅は23Hz)で試してみました。次の写真の左が1000Hz=1kHz、右が2000hZ=2kHzです。
前記ビット表示の緑色部分の1が消灯、0が点灯になりますが、1kHzの方は一番下が点灯してしまっています。基準発信がAVR内蔵のRC発振器であることや、MMTTYのシフト幅23Hzの影響から、カウントの誤差(+-1)が生じているのではと思われます。
以上の実験から、この方法でアナログ信号の周波数が計れそうであるという結果が得られました。実用時には、基準発振を水晶発振にし、また、入力にAX.25信号(Bell202)に合致したバンドパスフィルターを挿入すれば、周波数変動やノイズの影響も少なくなるのではと考えられます。
これでTNCの第一段階を超えることが出来ました。次はビット列からバイトへ変換し、AX.25のパケット検出(デコード)が第二段階と考えます。
この部分は、TinyTrak3のPICアセンブラプログラムの解析から入ることとなりますが、AVRだけでなくPICも勉強しないといけないので、時間がかかりそうです。
このプロジェクトは、いつ完了するか、途中で挫折するかもしれませんが、進展がありましたら、また、ここで発表します。
| 固定リンク
| コメント (2)
| トラックバック (1)
最近のコメント