FT-817 外部モニター(PIC16F88)




背景
FT−817の背面にはACC端子がありここに外部とやり取りするためのシリアル通信(CAT)が準備されています。取説によれば、このCATを使うとFT−817の電源をON/OFFしたり、周波数を設定することができます。
今回はFT−817のCATコマンドのうち
1:受信ステータスの読み出し(0xE7)
2:送信ステータスの読み出し(0xF7)
3:周波数、電波形式の読み出し(0x03)
を使って、FT−817に接続されたキャラクタLCDに上の3つのコマンドによって得られた情報を表示する機能を持ったものを製作することにしました。
車や移動運用時にFT−817内蔵のLCDは小さく読みにくく、VFOダイヤルに手を置いたときにLCD自体が隠れてしまい見えなくなってしまうことがあります。周波数表示部分だけ外部のLCDに表示してオペレーションを少し楽にしようという意図です。

FT−817のCATコマンドは
送信時は5バイトの文字列
受信時は1バイト、もしくは5バイトの文字列になります。
他のHPによると公開されていないコマンドもあるようですが、今回使用した3つのコマンドは取説に記載されています。

回路図
回路は以下の通りになります。FT−817 外部モニター
X1でDC12Vを入力し、3端子レギュレータで基板内用の電源5Vを作っています。
コントローラはPIC16F88を20MHzの外部発振で動作させています。
X4はFT−817のACC端子と接続するためのシリアル通信です。FT−817はTTLレベルなのでレベル変換ICは不要です。通信線には短絡保護の目的で抵抗(51オーム)を挿入してあります。この状態で9600BPSでの通信は問題なくできています。
LCDは2行タイプのキャラクタLCDで、SC1602BSを使っています。

プログラム
プログラムはmikroC Pro(C言語)でコーディングしてあります。mikroCは、PIC用コンパイラとしては使いやすいソフトで愛用しています。

UART:
FT-817のCATはストップビットが2なのでPICの設定で、9ビット目を有効にして9ビット目のデータをセットしておく必要があります。UARTの初期化時に

UART1_Init(9600);
TXSTA.TX9 = 1;
TXSTA.TX9D = 1;

としておけばUART1_Write(char ch)関数でFT−817へ文字を送信することができます。また、送信ステータスコマンド等のCATコマンド送信後はDelay_ms(100);として間隔をあけて次のコマンドを送信しています。

タイマー0を使ってCATコマンド送信時のタイムアウトの検出をしています。PIC用タイマー計算ツールを使って1msタイマーでグローバル変数を1ms毎に減算しています。UART送信前にグローバル変数にタイムアウト時間をセットしてコマンド送信時にグローバル変数が0になっていないか?を確認してタイムアウトの検出をしています。

メイン関数では、一定間隔でFT−817に送信ステータスコマンドを送り続けています。送信ステータスコマンドの結果によって送信中か、受信中か?がわかるので、送信中であれば送信ステータスコマンドで得られた結果をLCDに表示しています。受信中の場合は受信ステータスコマンドを送信し、受信ステータスをLCDに表示しています。
次に、送信中であっても受信中であっても周波数電波形式を得るコマンドを送信し周波数と電波形式をLCDに表示しています。

基板
完成した基板は以下の通りです。
FT−817 外部モニター
この基板を別の用途で使う予定があり、未使用の入出力がありますが上の写真の状態で完成です。
端子台(ターミナルブロック)はDC電源用(2P)とCAT通信用(3P)の2つになります。またピンヘッダー(2×7)はLCD接続用です。ピンヘッダー横のVRはLCDのコントラスト調整用です。使用しているパーツは、ほとんどが秋葉原(秋月、千石)で購入できるものです。

操作方法
FT−817 外部モニター
基板にフラットケーブルを使ってLCDを接続し、8ピンのミニDINコネクタを接続します。(写真では、ミニDINプラグを使ってFT−817から電源を取っていますが、後述の理由で別電源としたほうが良いとおもいます。)

ミニDINコネクタをFT−817に接続するとLCDに周波数等の情報が表示されます。この基板は電源が供給され初期化後一定時間後に送信ステータスコマンドを送信し続けます。

注意
ミニDINコネクタを使ってFT−817から電源を取る場合に注意しなければならない点があります。
ミニDINコネクタを接続するFT−817のACC端子は、FT−817本体の「PWR」ボタンのON/OFFにかかわらず常にDC12Vが出力されています。そのため基板「FT−817外部モニター」はFT−817がOFFのときでも送信ステータスコマンドを送信し続けてしまいます。FT−817がOFFで送信ステータスコマンドを送信し続けた状態ではFT−817の「PWR」ボタンのレスポンスが悪くなるようです。「PWR」ボタンでONしようとしても通常の場合より時間がかかります。

FT−817から電源を取る場合は、
1:ACC端子と基板の間にスイッチを入れDC12Vをスイッチで切れるようにする。
FT−817をOFFにしたときはスイッチで基板「FT−817外部モニター」の電源を切る。
FT−817をONにしたときは、スイッチで基板「FT−817外部モニター」の電源を入れる。

2:FT−817は常にONの状態にしておく。FT−817に供給する電源をON/OFFする
FT−817に供給する電源をON/OFFすることによってFT−817と基板「FT−817外部モニター」を同時にON/OFFする。
FT−817はONの状態で供給する電源をOFFにされると次回供給電源をONにしたときにFT−817本体も自動的にONになる。

の2つの方法が考えられるとおもいます。

ケースに収納


配布用基板 配布用基板の説明


TOPへ
戻る