FTdx10のCAT制御をPCで行う実験をやってきましたが、これをマイコンでやってみようと思い立ちました。マイコンはArduinoが動くATmega382Pです。
初めの一歩として、まずマイコンとFTdx10とのシリアル通信(RS232C、DSUB)ができるかの確認です。
これにはマイコンのTTLレベルをRS232Cに変換するコンバーターが必要ですが、ネット通販で安価に入手できるMAX3232 によるRS232 TTLコンバーターモジュールが良いと思います( DSUBソケットがあるFT991でもできます)。

まずマイコンのシリアル通信を確認するために、マイコンの通信相手方としてRS232CのDSUBがあるPC(デスクトップ?)を用意し、ケーブルをつないで Arduino-IDEを起動し、シリアルモニタを表示させます。

Arduinoではプログラム(スケッチ)の書込みとシリアルモニタを表示させるため必ず Serial.begin(**); を記述しますが(**はボーレート)、これとは別に相手方(ここではデスクトップPC)へのシリアル通信は SoftWareSerial を使います。
これはライブラリを使いスケッチのトップに次のように記述します。
# include <SoftwareSerial.h>
SoftWareSerial mySerial(2,3); // Rxd,Txd
ここで(2,3)は RxdとTxdに結線するピン番号で任意です。具体的には TTLコンバーターのRxdをピン2に、Txdをピン3に、VccとGNDをそれぞれ5VとGNDピンにつなげればOKです。
なお実験ではブレッドボードの上にマイコンやTTLコンバータを配置するのがおススメです。ここではタクトスイッチを3個用意し、それぞれONで3つのバンドが切替わるようにスケッチを記述しました。

この状態で FTdx10のバンド設定命令を送信しますが、例えば、
mySerial.println("BS01;"); // 1.9メガバンドに設定
mySerial.println("BS02;"); // 3.5メガバンドに設定
mySerial.println("BS03;"); // 5メガバンドに設定
この命令がデスクトップPCのArduino IDE モニター上に表示されればシリアル通信はこの構成で良いことが確認できます。

次はいよいよFTdx10につないで実際にバンドが切替わるかですが、これにはRS232Cをクロス結線にする必要があります。なのでクロスケーブルが必要になりますが、ない場合はDSUBコネクタを2個用意して、ピン2と3を互いに入替える結線をすればOKです(ピン5はGND)。

なおこのソケットはメスーオスなのでピン配置が写真のように向かい合っていますが、メスーメスやオスーオスでは上下がねじれた格好になります。
これでFTdx10が指示通りに動けばマイコンによるCAT制御の準備が整ったことになりましたが、実はここで使った SoftWareSerial には少し問題があります。
それはFTdx10に送信する場合は良いのですが、FTdx10からのデータを受信することができません(受信はするが文字化けが起こる)。これはFTdx10のCAT送信でのポート設定値の内、Stop Bit が2であることによります。つまりFTdx10からの送信を受けるには受信側(ここではマイコン)も Stop Bit を2に設定する必要があるのですがSoftWareSerial にはその設定が無いようなのです。
具体的にはストップビット2の設定は
Serial.begin(9600,SERIAL_8N2)
と書きますが、SoftWareSerial ではこのような記述ができません(エラーが返ってくる)。つまり Stop Bit を2にしてFTdx10と通信をするにはスケッチ書込みで使用するメインのRx(D0)、Tx(D1)を使う必要があり、スケッチ書込みとFTdx10とは両立しないのでその都度切替える必要があります。
なのでFTdx10との通信を送受信で行うために、Atmega382PとTTL-USBシリアル基板の間にスイッチを用意してスケッチ書込みとFTdx10との送受信テストを行うことにしました(RX側のみ切替えでTX側は共通で構わない)。

この構成により FTdx10の電源を入れた時点での設定値を受信することができるようになりました。
以上でブレッドボード上での機能確認は終了したので、いよいよ実装に移ることになります。
マイコン(Arduino)でFTdx10のCAT制御 シリーズ記事
※コメント投稿者のブログIDはブログ作成者のみに通知されます