AVRでTNC(7)
昨日に引き続き、本日もAVRでTNCに挑戦しました。昨日のブログに書いた不具合の原因が、以前気になっていたタイマ割込み機能にあることが判明し、プログラムを組みなおしたところ、東工大のブログに掲載されていたサンプルサウンドから、やっとSRLLのヘッダ4バイトを正しく取得することが出来ました。
1200分の1秒タイマ割込みを発生させるために、昨日までのプログラムでは特殊なレジスタに設定した値になると割込みが生ずるというCTC割込みという機能を使っていました。以前使用したAVRにはこの機能は無く、タイマオーバーフローによる割込みで対応していました。CTC割込みは本来PWMを発生させるためのものであるので、CTCをやめてオーバーフローによる割込みを使用するようにプログラムを変更したところ、SRLLのヘッダを確認することができたしだいです。使い慣れた機能を利用したことが、解決の糸口となりました。
本日は、これに続いてスクランブルを解除する機能まで進むことが出来ました。後残っているのが、インターリーブへの対処と、誤り訂正です。Ver.1のTNCでもそうでしたが、この2つが最大の難関です。Ver.1と異なり、SRLLのVer.2ではパケット長が32、64、96の3種類に対応しないといけないので、時間がかかりそうです。
Ax.25のデコードであれば、それほど手間がかからずにできそうですが、SRLLの受信を成功させてから、モデムIC無しへの挑戦と同時に、Ax.25についても考えてみようと思います。
| 固定リンク
「ワンチップマイコン」カテゴリの記事
- 受信用TNCの製作(6)(2013.02.13)
- 受信用TNCの製作(5)(2012.12.03)
- 受信用TNCの製作(4)(2012.11.26)
- 受信用TNCの製作(3)(2012.11.25)
- 受信用TNCの製作(2)、XI-IV再び(85)(2012.11.25)
コメント