
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の周波数やモードを入力することがあったが
今では、自動で切り替えてくれるので便利だ

![]()