FTDX101MPのCAT制御



    

FTDX101MPは非常に優秀な無線機だ。
SSB用で50W〜200Wで運用している
FT8で200W連続送信したら、出力が破損してしまったから、FT8の使用は中断していた。
発熱も気になる所である 
アンテナ切り替えを間違えて、SWRが高い状態では FT8 200Wでは破損してしまう。
100Wなら、破損はしないようである。


ーーーーーーーーーーーーーーーーーー
今は、FTDX用アンテナ自動切り替え機があり、SWR計を常時接続しているので、
そろそろ、FT710から FTDX101MPに変えてみよう。

FT8、SSBの運用、、
  通常は 100Wで送信する
  7.041、3.531Mhz の国内は 50W送信とする
  パイル時は 200W送信にして、交信終了したら、100Wに戻す。
  (200WのFT8は 発熱なども考慮すると、長時間の運用は避けた方がよさそうだ)






FTDX101MPの運用で面倒なのは、パワー設定である
つまみを回して、50W〜200Wにできるが、面倒である
SSBでは MICゲインは変更する必要は無いが、FT8の場合は、USB入力ゲインを多少変更しないと
ALCが振れすぎる
ALCの範囲内であれば さほど問題はないのだが、送信レベルが少し変わる
パソコンのJTDXのレベルをマウスで調整すればよいのだが、結構微妙である
ーーーーーーーーーーーーー
これらの事を考慮して、無線機のRS232C端子のCAT制御で 自動コントロールしてしまおう

無線機の運用周波数を見込み、7.041Mhz(3.531Mhz) は 50Wに設定する
通常は100W運用で、
200Wボタンを押すと
             200W設定して USB入力ゲインを変更する。
50Wボタンを押すと
             50W設定して USB入力ゲインを変更する。

RPORT GAIN = 30 (50w〜100W) 28=(200W)
パソコン SP 出力は約30
ALCが振れるか振れないか程度に調整する。
JTDXの ゲイン調整では微妙なので調整が難しい







回路は AVRマイコンを使った回路である。
参考まで、 
回路図には掲載されていないが、電源回路には 電解コンデンサに 0.1uF程度のセラミックコンデンサを並列に追加しておく
事が重要である

7Mhzで200W送信したら、マイコンが誤動作してしまった。特にキャラクタディスプレイの誤動作だ
対策は、
RS232Cの TXとRXラインにLCフィルターを入れることで対応できた。

プリアンプを作るとき使っていた 貫通コンデンサ1000PFを使った。
9600Bpsでの送受信なので、20Khz以上をカットすれば十分である。




C言語で組む、USARTの設定は簡単である
9600BPS に無線機の通信速度を合わせる

//;----------------------------------------
UCSR0B = _BV(TXEN0)|_BV(RXEN0); /* 送受信許可 */

UCSR0C = 0b00000110; // 調歩同期(非同期) 8ビット ストップ1
// パリなし
// ストップビット 2ビット 0000-1110 1ビット 0000-0110
// データビット 8ビット
// 非同期 0000-1110

// ボーレートを指定して通信開始

UBRR0H = 0;
UBRR0L = 51; /* 8MHzにて 9600bps 設定 */


---------------------------------------------------

// テキスト送信
void txd_put_str(char *str)
{
while(*str != 0) {
          loop_until_bit_is_set(UCSR0A, UDRE0); //UDREビットが1になるまで待つ
          UDR0 = *str;
          str++;
         }
}

ーーーーーーーーーーーーーーーー
サブルーチンを使って 下記の記述で パワー50W設定と入力レベル を 48に設定している

txd_put_str("PC050;");
wait_ms(100);
txd_put_str("EX010415048;");

----------------------------------------------------

テキスト受信
無線機のモードの設定をを確認する
MD0を送信すると 返信される。受信コードは連続ではなく1つずつレジスタに記憶している
dat_m4 が 2ならば SSB 8ならば USB-Uモードになる


txd_put_str("MD0;");

while(!(UCSR0A & _BV(RXC0))) ;
rs_getc(); //1 F
dat_m1=dat_z;
rs_getc(); //2 A
dat_m2=dat_z;
rs_getc(); //3
dat_m3=dat_z;
rs_getc(); //4
dat_m4=dat_z;
rs_getc(); //5
dat_m5=dat_z;

同様に、周波数コマンドはFA 返信された周波数で 制御する

ーーーーーーーーーーーーーーーーーーー

ここで、時々、マイコンがハングアップしてしまう事がわかった。
原因は
FTDX101MPに対し、FAコマンドを送ると返信されるのだが、無線機が何かやっていると、
返信を忘れる事があることがわかった。
マイコンは返信を待っている状態だったので、「FAコマンド」を再送してやる必要がある。

タイマー割り込みを入れる方法もあるが、簡単なプログラムを組んだ
ーーーーーーーーーーーーーーーーーーーーーーーー
//1文字受信
void rs_getc(void)
          {
           count=0;
           while( !(UCSR0A & _BV(RXC0)) ){count++;
                               if(count == 40000){break;}
                               wait_us(1);
                               } ;
         dat_z= UDR0;
         }

ーーーーーーーーーーーーーーーーーーーーーーーー
2秒ほど無線機から返信が無いとルーチンから抜けて、FAコマンドの再送モードにはいる







キャラクタディスプレイは 4行タイプは文字が小さいので 1行のキャラクタディスプレイに変えた・
信号ラインは共通である






ハムログとの連携

ハムログに周波数やモードを自動アップするには、FTDX101のRS232Cポートをパソコンに接続すればよい
IC9700 ICOMもも使っている場合は CI−VコントロールをRS232cに変換して パソコンに接続する。

しかし、パソコンのCOMポートが2つになる。
ハムログも LOG-Aは IC9700 LOG-B はFTDX101と面倒な事になる。

ーーーーーーーーーーーーーーーーー
FTDX101MPは RS232Cで CATコントロールしてパワーやゲインを切り替えているため、パソコンに接続するポートは無い。

だから、、、、、
FTDX101MPの CATコントロールから、CI-V データに変換すれば、 ICOM 9700とFTDX101をスイッチで切り替える事で
パソコンのハムログで2台のリグを使う事ができる。





ATmega88P は USART 1回路しかないが ATmega1284P は2回路あるので
1回路は FTDX101のCAT 2回路は ICOM CI-V コントロールに割り当てる。

FTDX101は1秒ごとにポーリングして 周波数、モードを確認している
そのタイミングで CI-Vデータに周波数、モードを変換して パソコンに送っている。

ハムログは スイッチで HF<-->V/U を切り替える
今まで、FT8からSSBに切り替えたとき ハムログに間違ってFT8の周波数やモードを入力することがあったが
今では、自動で切り替えてくれるので便利だ