2014年6月17日火曜日

PICで作るキーヤー

ここのところ週末の予定が空かず、移動運用もしばらくお休み中です。
そんな中各PICのプログラムをちまちまと進めています。

いま主に進めているのが、キーヤーのプログラムです。いまさら?って感じかもしれませんが、コンテストや移動運用のときにリグ内蔵のキーヤーでは機能的に十分でも即時に速度調整などが難しく、別によく使っているKD1JV TriBand CW transceiverやTX-136の内蔵キーヤーもフィーリングがどうも自分にはあわないため、ある程度機能も充実させたものを自分で作ろうというのが製作意図です。

ハード的には、PICは16F1827の1本でI2CキャラクタLCD表示器(AE-AQM0802)、設定用ロータリーエンコーダ、サイドトーン出力とPTT出力、メッセージメモリ選択ボタンつきで、単三乾電池2本の3V動作としました。


ソフトウエアによるキーヤーの仕様は、

・キーヤー動作モード:Iambic A, B, バグキーエミュレーション, メッセージメモリー
・長短点メモリあり(50%),長短点比3:1
・符号送出速度:10~60WPMで1WPMステップ可変
・PTT出力:セミ(200msec delay)/フルブレークイン
・パドル極性:ノーマル/リバース
・サイドトーン:PWMモジュールによる出力(周波数400,600,800Hz),ミュート
・メニュー呼び出し,ロータリーエンコーダによる各設定とEEPROMへ保存による設定値の保持
・60キャラクター(スペース除く)x 4chのメッセージメモリ記録,再生
・スリープ機能

とまぁ結構盛り沢山になりました。

ソフトウエアはCで記述し、Microchip社純正のXC8コンパイラで実行ファイルを作ってPickit3でPICに転送しています。

今のところメッセージ記録部分とスリープ機能の実装が残るだけとなっていますが、完成したら一部DDS-VFOシステムに取り込むほか、プログラムの流れや実行ファイルを後日公開してみようかなと思います。途中経過のソースファイルは、すでにGoogle+のコミュニティにぼちぼち公開していますので興味のある方は登録してみてください。

もっとプログラミングに慣れたら、オープン開発のサイトにも登録を考えてみたいのですが、果たしてどうなることやら...

ソースの一部 各スイッチ状態をタイマー0割り込みで1msec毎に監視して状態フラグを立てる

BBで仮組み状態 消費電流は無負荷動作時1.6mA

LCD付きでこの消費電流なら乾電池動作いけそうかな。スクイーズ動作も自分の感覚の基準では合格点といったところです。

2 件のコメント:

  1. FBです。自分が欲しいものを自由に作れるって良いですね。

    一つ提案というか、お願いというか、勝手な望みがあります。Elecraftのrigのように、CW入力でRTTY出力機能を付けても良いですが、CW入力のWSQ出力機能を付けるのは如何でしょう。先刻お考えでしょうか。それをTHAMWAYさんに提供して頂いて、もしTHAMWAYさんがオプション対応してくれたら、135k帯がもう少し活性化しないかと夢想しています。hi.

    私の方は、JT9が良いという話なので、この際もう一頑張りと思ってやってみているのですが、どうやら運が尽きたのかも知れません。それっぽい波は出るものの、さっぱりデコードされません。やはりJTは難しいです。小野さんかJTさんがコマンド出力対応をしてくれるのを気永に待つのが正解かも知れません... f^^

    返信削除
    返信
    1. 広瀬さん、おはようございます!

      >自分が欲しいものを自由に作れる
      しかし、一筋縄ではなかなかいきませんね。思い描いたことを記述しても、たいてい最初は動作することが少ないです。書きなおし書き直しでやっと思ったとおりに動いて...の繰り返しです(汗

      CW入力WSQ出力は考えておりませんでしたが、おもしろそうです。TX-2200AはAD9834の原発信を128分周しているので制御しているPIC18F2320のプログラムを変更できればハードウエア改造無しで様々なFSKモードに対応可能だと思います。ただ採用されているPICのプログラムメモリが少なくてCW⇒WSQ符号変換プログラムは入りきらなさそうなので、別途外付けアダプタになるかどうかですね。

      広瀬さんのチャレンジ精神には頭が下がります。JT9は自分も目をつけていますがWindowsアプリケーションの開発環境がないので、やるとしたらLinuxでしょうか...^^;

      削除