2014年2月25日火曜日

TX-136側のファームウエア改造について

2/18の投稿でTX-136のFSK改造について触れましたが、TX-136本体のファームウエア改造手順について少し詳しく。ただしソフトウエア自体は再配布できないので、要点だけですが参考の一つになればこれ幸い。


最初にまずファームウエアのソース入手します。JUMAメインページからJUMA TX136ページに入り、"Technical kit info"リンク先から"Software info for developers"より各ソースコードとMPLAB IDE用プロジェクト関連ファイルを纏めたアーカイブをDL。ファイル名がTX-500となっていますが、TX-136とTX-500、100WHFリニアアンプPA-100のコントローラは共通で、あるポートにかかる電圧によってファームウエアがそれぞれのモデルを認識して機能しているようなのでファームウエア自体はTX-136用としてそのまま使えます。

 ソースファイルの中でDDSの周波数調整に関わる関数が記述されているのがjuma-tx500.cとtimers_pwm.cファイルです。ここではDDSに送り込む周波数情報がtwordというunsigened long型のグローバル変数として定義されおりこの変数を修飾するための別のグローバル変数を定義(たとえばunsigned long mod_t;)して、DDS周波数セット関数内(tx_on(), spot_on(), set_dds()関数)のtwordに加算もしくは減算するコードを追加しておきます。

次にPCもしくはPICとのシリアル通信ですが、このプロトコールも公開されています。

TX-136側に送るコマンドは

 "=","(コマンドのアルファベット1文字)","(数字などのパラメータ)","(CR)"

です。serial_tx500.cファイルにシリアルコマンドのソースがあります。

そこで周波数シフトコマンド用のアルファベット一文字を決め(例:”D” ...すでに使われているアルファベットは避ける)パラメータに応じてtword修飾変数(例:mod_t)にシフト量に相当する値を代入する周波数シフト用関数を新たに追加、serial_tx500.cファイルのシリアルコマンド処理関数から呼び出すようにします。MPLAB IDEのC30コンパイラでコンパイル(最新のMPLAB X IDEのXC16コンパイラでもコンパイルできました)した後、出来上がったhexファイルをPCからRS232シリアル経由でTX-136に流し込む、というのが流れです。ファームウエア更新の手順はJUMAサイトで書かれている通りですが、ingenia dsPIC bootloader GUI V1.1という更新ツールがWin7用に上手く対応されていないようなので、Win7ならばソフトのプロパティ内にある互換性タブの互換モードをWinXPSP3に設定する必要があります。

ファームウエア更新が無事終了したら、確認のためTX-136にダミーロードを接続して連続キャリア送信しながら適当なターミナル通信ソフトで追加した周波数シフトコマンドを送りArgoなどでチェック。上手く周波数シフトが確認できたら成功です。あとはコントロールする側の製作になります。

本当はTX-136単体でFSKモードのビーコンが出せるようになるとなお良さそうですが、プログラム改造が大掛かりになるので今後の課題にしたいと思います。 

※なお改造にあたっては、実施する各個人の責任でお願いします。

0 件のコメント:

コメントを投稿