masa さん

masaさん: JQ2RVNの無線ブログ
  masaさん 携帯プロフィール QRコード   

参加トラコミュ

トラコミュに参加してみませんか?

トラコミュに参加してみませんか?

あなたの書いた記事をテーマにそったトラコミュにトラックバックすることで、共通の趣味や話題をもったブロガーとつながります。

トラコミュ検索はこちらから

プロフィール

ハンドル名masa さん
ブログタイトルJQ2RVNの無線ブログ
サイト紹介文PICでTNCを製作しています。DSPの話題もあります。
参加カテゴリー
更新頻度(2年)情報提供29回 / 108日(平均1.9回/週) - 参加 2008/06/13 02:29

masa さんのブログ記事

記事削除機能過去の記事 … 1 2 次へ
  • 2008/08/06 17:21モービル システム変更中
  • 夏の旅行に向けて、モービルのアンテナ系を変更してます。ってか、いままで「無線全般」的なカテゴリー作ってなかったのね。よくもまあ、パケット系のネタで続けたもんだわ・・・hihiまず、大きな変更点として・・・な、なんとルーフキャリアをつけました!!これで大きなアンテナでも運用できるってもんよ(^^ってことで、HV5Sを取り付けてみました。IC7000をもってながら、いままでHFとか活用してなかったもんなぁ〜でも、ここで... [続きを読む]
  • 2008/08/02 17:42要求仕様
  • dsPICのTNCのコーディングがおおよそ進んで使用メモリーの量がおおよそ把握できてきましたから、この辺で要求仕様の決定をしておきたいと思います。まずはKISS TNCの方名称:dsKISS(仮)RF側・・・受信は クワドラチャ検波(中心周波数1700Hz)DDS発信(1200Hz/2200Hz)上位プロトコル AX25カッパーライン側(線でつながった方)・・・UART KISSプロトコル(コマンド番号上位4ビットでアドレス指定)またはI2C KISS改プロトコル(I2C... [続きを読む]
  • 2008/07/31 03:14KISSプロトコルとは・・・
  • KISSプロトコル。少し前に発売されたTinyTrak4でもファームの入れ替えでKISSプロトコルがサポートされるようになってます。dsPICでTNCを作るとして、その出力をどうするか?つまりデータリンク層のプロトコルを何にするかって考えたとき、やはり既存のものと共通化しておくべきだでしょう。ならば、もっともシンプルなものになると思うのでKISSプロトコルってことになるかな〜って実際にTNCをKISSモードにして確認したり、Web上の... [続きを読む]
  • 2008/07/17 02:02CRCの計算アルゴリズム
  • PICTNCのソースから、CRCアルゴリズムを解析しました。わかりやすくするために16ビットの数値を8ビットで計算しているところなどは省略します。以下、変数・定数data: 受信 or 送信するデータ(8ビット)CRC: CRCの値を格納(16ビット)Poly: 生成多項式(16ビット定数)PolyはAX.25では0x8408CRCは計算前に0xFFFFで初期化します。dataを右へ1ビットシフトします。このとき最下位のビットがCビットに出ます。↓C=1ならば、CRC xor 0x... [続きを読む]
  • 2008/07/12 20:48クワドラチャ検波?
  • FM無線機のカタログなどで、よくクワドラチャ検波という言葉を見る。パケット通信なんかで使っているFSKも、一種のFMなわけでならばこの方法が使えるのではないかと。。。調べてみると、90度位相をずらした信号を掛け合わせるらしい・・・なんともわかりずらい表現だなぁ〜大体、単に90度位相がずれたと書いてあるけれど、何に対して90度なのか?何をずらすのか?がわからん。ということで、FM検波用のICのデータシートを見てみた... [続きを読む]
  • 2008/07/12 07:12A/D変換でハマる
  • dsPICでADCのコーディングをしてて、ドつぼにはまった。dsPICは結果を保存するバッファが16ある。自動的に複数のチャンネルをスキャンしたり、一定時間ごとに何点かの値が取得できて便利なんだけど・・・データの入り方でハマった。今回は4つサンプルを採って、それをFIR & Decimationしようとしていた。ここで何も考えず、InputSignal[i]=ReadADC12(i);としてしまった。FIRDecimate()関数に渡す配列は、添え字が大きい方が古いデ... [続きを読む]
  • 2008/07/06 18:58うまくいかなかったOTL...
  • DSPフィルタで信号の分離。うまくいかなかった。。。。連続信号ならうまくいくけど、単発の信号だとフィルタをきれいに通ってくれない。ということで、別方法で。遅延検波というのがあるようです。入ってきた信号と、180°だけ位相のずれた信号と掛け合わせる。それを平均して、符号を調べると、その時のトーンがわかる。Excelでシミュレートした限りではうまくいったのでこれでやってみようかと思案中でございます... [続きを読む]
  •   関連キーワード
  • Excel
  • 2008/06/28 19:56dsPIC Filter Design Tool導入
  • フィルタの設計は面倒な計算とかもあるので、Microchip社製のdsPIC Filter Design Toolを購入しました。かなり簡単な操作でフィルタの設計ができます。しかも、そのままC30で利用できる形でエクスポート可能。ただし、購入したのはLite版なので、FIRでは64タップIIRでは4セクションまでと制限があります。上記のスクリーンショットは、60kHzサンプリングパスバンドが2400Hz、ストップバンドが6000Hz通過帯リップル1db阻止帯が-40db... [続きを読む]
  • 2008/06/27 02:34FIRDecimate()関数 - dsPIC
  • MPLAB C30 の DSPライブラリについて・・・あまり掲載記事のないFIRDecimate()関数の解析。まずはデータシートの要約。FIRDecimate()関数は、サンプルされた値をフィルタしたのちR:1の割合で間引く関数。オーバーサンプリングしたのち、LPFを通して間引きする時に有用。プロトタイプは、extern fractional* FIRDecimate (    int numSamps,    fractional* dstSamps,    fractional*... [続きを読む]
  • 2008/06/25 02:05FIRの使い方 - MPLAB C30
  • ただいま、MPLAB C30で、フィルタ作りに格闘中です。大まかな流れは以下のとおりFIR用構造体を作成↓FIR構造体の初期化↓FIRの実行上2つは、書籍やホームページを参照しておけばOKだと思う。最後のFIRの実行は、そのまんまの名前のFIR()関数を使用する。FIR( numSamp , &outSamp , &inSamp , &Filter )という形式。ここで、numSampはサンプリングされた値の個数。多くの場合は1でよいと思う。inSampがサンプリングされた値... [続きを読む]
  •   関連キーワード
  • 関数
  • 2008/06/22 21:13基本構成 - 新型TNC
  • 新型TNCの現時点での基本構成を説明していきます使用するマイコンは2つです。・PIC24FJ64GA002・dsPIC30F3012オプションでPIC16F88を使用します。PIC24FJ64GA002秋月で450円で販売されています。RAMが8kByteありますから、多くのデータを保存できます。デジピート用のバッファは4kByte程度確保できそうです。APRSでは1パケット100Byte程度ですから、40パケット程度のバッファができそうです。GPSからのデータを解析し、Mic-Eにした... [続きを読む]
  • 2008/06/22 15:3416bitPICのニーモニック(MOV演算)
  • 今回も16bit PICのアセンブラ命令をまとめていきたい
    と思います。今回はMOV命令です。順番的には逆のよ
    うな気もしますが・・・(^^;;一覧:MOV{.B} f {,WREG}MOV{.B
    } WREG, fMOV f, WndMOV Wns, fMOV.B #lit8, WndMOV #lit16, WndMOV{.B} [W
    s + Slit10], WndMOV{.B} Wns, [Wd + Slit10]MOV{.B} Ws, WdMOV.D Wns, Wnd
    MOV.D Wns, Wnd以上の11形式があります。多いですね〜MOV
    {.B} f {,WREG}fで指定されたアドレスの値をWreg(W0)また
    は... [続きを読む]
  • 2008/06/21 23:57Near と Far
  • 16bit の PICマイコンのデータメモリーにはNear と Farの2種類あることは、データシートや後閑さんの本に書かれています。しかし、何が違うのかよくわからん。また、どういうデータはNearか?Farか?もわかりません。ということで、前回紹介したアセンブラのリファレンスを読んでみました。まず、Near領域とは13ビットのアドレス指定で直接アクセスできる領域となってます。16進数でいえば0x0000〜0x1FFFに相当します。一方、16bit... [続きを読む]
  • 2008/06/21 14:56アセンブラ命令の詳細
  • 前回書いたけれど、アセンブラの詳細がみつからな
    い・・・と思って、Microchip社のドキュメントを見て
    いたら、何とか見つけることができました。ただし
    、めっちゃわかりにくい(>_<)http://ww1.microchip.com/
    downloads/en/DeviceDoc/sect3_x.pdfというURLで、最後のxが1~7
    まであります。(なんで1つにしてくれないのかね〜
    〜)一応、アルファベット順のようですhttp://ww1.microc
    hip.com/downloads/en/DeviceDoc/sect3_1.pdf... [続きを読む]
  • 2008/06/21 01:1316bitPICのニーモニック(基本算術演算)
  • 16bitPICには、1つの演算でも色々な形式があるのでまとめてみます。基本演算(ADDとかANDとか・・・)には引数の形が5つあります。ADDの場合を例にして、解説します。ADD f(e.g.) ADD xxxf = f + WREGの演算が行われます。PIC16などと同じような演算ができます。( ADDWF xxx , f と同様)f はレジスタのアドレス。WREGはW0に入っている実データです。ADD f , WREG(e.g.) ADD xxx , WREGWREG = f + WREGの演算が行われます。上記と同様... [続きを読む]
  •   関連キーワード
  • ADD
  • 2008/06/20 02:41UIデジピートについて
  • UIデジピートのコマンドをまとめてみます。(間違えがあるかも・・・(^^;;)UIDIGI(書式)UIDIGI (ON|OFF) CALL1[,CALL2,[CALL3…CALLは4つまで(?)設定できる。CALL1〜4のいずれかとデジパスが一致していた場合、デジピート済みフラグを付けて、MYCALLに置換する。MYALIASとの違い。CALLを複数設定できる。MYCALLに置換する。UITRACE(書式)UITRACE NameNameを1つ設定できる。デジパスがNameX-Y形式であればデジピートする。た... [続きを読む]
  • 2008/06/17 02:15dsPIC - ICD接続法
  • dsPICでインサーキットデバッグをしようとすると、I2CやSPIで使用する端子とぶつかってしまうことがわかります。上図で赤丸で囲まれた部分がPGC・PGDになっていて、さらにSDA・SCLにもなっています。これでは、ICD2を使ってデバッグできないの?と、思って調べてみたところ、EMUCx / EMUDx と割り振られているピンが代替のデバッグ用ピンとなっています。(xは1,2,3・・・の数。)このピン。ダイアグラム見た時には何に使うのかわ... [続きを読む]
  • 2008/06/14 00:00群遅延特性の話
  • DSPのお話。続きます。群遅延特性について・・・FIRの特徴として、ひずみが少ないと言われます。そのひずみってものを、定量的に表したのが、群遅延特性です。フィルターの特性って、本なんか見ると以前は振幅特性と位相特性がよく出ています。昔、制御工学の授業をとった時も、ボーデ線図だったし・・・じゃあ、群遅延特性ってなんですか?それをつかむために、下の図を見てください。これが代表的な群遅延特性の図です。ちなみに... [続きを読む]
  • 2008/06/13 03:00FIRとIIR
  • フィルタの種類現時点でのまとめ、推測などなどFIR・・・有限インパルス応答プログラムは簡単。定数かけて足していくだけ。タップ数が多くなる。マイコンにはきつい?ひずみが少ない。周波数によるズレが少ない?モデムを作るのなら、タイミングが重要だから、こっちなのかな??IIR・・・無限インパルス応答フィードバックがかかる。だから、インパルス応答が無限?タップ数は少なくてよい。マイコンにはいいのかも?ひずみが生じ... [続きを読む]
  • 2008/06/13 02:30条件文の最適化
  • CCS Cコンパイラを使っている時、条件文が、アセンブラに翻訳されるかを調べてみました。さらに、どのように書けば最適であるかも調べました。まず、以下のような処理を考えます。UARTで8ビットのデータを送信するとき、8ビット分は処理Aで、ストップビットを処理Bで行う。通常ならば、while文を使うところですが、タイマーの割り込みを使っているなどの理由でif文にしないといけないということにしておきましょう。順当に書けばこ [続きを読む]
  • 2008/06/13 02:30ポインタ関数の作り方
  • C言語の関数で2つ以上の返値を出したいときや、も
    ともとの変数を直接いじりたいときには、ポインタ
    を使うのが定石だと思います。通常のC言語での使い
    方は・・・・void func( int* a ){    *a=....
    ;       (この後の例では、*a++;
    を使います)}呼び出しはfunc( &x );となります。しか
    し、CCSCの場合は、これではうまく動かないようです
    。アセンブラリストを見ると次のようになっ [続きを読む]
  •   関連キーワード
  • 関数
  • 2008/06/13 02:30予備実験 - シリアル通信
  • PICでTNCを作るのが目標ですが・・・まずはその前段階として、パケットをモニターするデバイスを作成していきたいと思います。  本日はその予備実験として、シリアル(RS-232C)にて、データをPCに送る方法を行いました。というのも、PICはPIC12F683を使用する予定なのですが、これにはUART機能が付いていないので、ソフトウェア的に作らないといけないからです。なら、CCS Cの組み込み関数があるのでは?という声もあるか... [続きを読む]
  • 2008/06/13 02:30なんとなく壁にぶつかり中
  • PIC Packet Monitorつくってますが、きっちりデコードしてくれません。ゼロクロスの検出にコンパレータの割り込みを使っているのですが、割り込みが発生しまくってます。割り込んだ時にトーンが高いか低いかをシリアルで送るようにしてデバッグしているのですが、無信号のときでも低いのがずらーーーっと続くようです。ノイズが乗っかってるのでしょうか??信号を拾った時には、ちゃんとHighやらLowやら送ってくるので、動作はし... [続きを読む]
  • 2008/06/13 02:30壁を破壊中
  • どうしても、デコードがうまくいかないので、ちょいちょい回路を変更してみた。まず、0Vでゼロクロスを検出させると、ノイズにも反応してしまうようなので、信号線を少し上に釣ってみた。Vcc - R10MΩ - 信号線 - R10kΩ - GNDというように、10MΩの抵抗をつなげてみる。これで、少しだけ直流成分が入って音声信号がDCオフセットされることになる。(5mV)信号を入れてみたら、デコードし始めたみたい。ただし、出て... [続きを読む]
  •   関連キーワード
  • 音声
  • 2008/06/13 02:30recv_one_bitルーチン
  • PICTNCの受信ルーチン。次はrecv_one_bitです。このルーチンは状態変化割り込みで判定したトーンを用いてNRZI変換をしたり、タイミングを見たりします。ここで変数・定数の説明します。<変数>R_TONE:状態変化割り込みで得られた現在のトーンrotor:前回のトーン<定数>ONE_BIT:1200bpsでの1ビットの時間(833μsec)ONE_5_BIT:1ビットの時間の1.5倍の時間(↑ Timer2で使われるので、カウント数を計算する)R_TON [続きを読む]
過去の記事 … 1 2 次へ

にほんブログ村

>

JQ2RVNの無線ブログ