« PIC24FJ128GB106 データメモリー不足 | メイン | PICマイコンからSDカードへのファイル書き込み »

2015年8月16日 (日)

細々と改善は続く

カテゴリ:オートアンテナチューナー(ATU)の製作

8月の初めに誘導雷を受けて、自作のATUが動かなくなりました。 チューニングスタートをさせても、すぐにエラーで止まってしまいます。 一応、誘導雷くらいなら、マイコン本体のi/oが壊れる前に、その周辺のパーツが壊れるという設計をしていました。 調べてみると、周波数カウンターが動作せず、RF信号はOKなのに、周波数が範囲外となり、エラーを出しているものでした。 故障個所はカウンター回路の入力にあるチップコンデンサの電極が高電圧の為割れており、コンデンサの役目をしていないのが原因です。 この50V耐圧のチップコンデンサを交換したら直ってしまいました。

Atuk1_2

せっかく、ベランダのBOXから取り外したので、かねてより温めておいた改善事項を盛り込む事にしました。

ひとつは、バリコンの可変範囲が広すぎますので、これを若干狭くする為、以前手配しておいた6000V 390PFというコンデンサをバリコンに直列に挿入する変更です。 3.5MHzでのコイルインダクターを増やすのが面倒なので、入力側のみ追加し、様子を見る事にします。

二つ目は、マイコンのソフトです。 SWR最少位置を探す途中で、次の動作に行くために、数10ミリ秒から数100ミリ秒の待ち時間がありました。 また、プリセット位置にバリコンを移動させるには数秒かかる事もありましたが、これらの待ち時間中は、単純に動作が終わるのを待っているだけで、この待ち時間中にSWRが1.5以下になる事があっても、無視されていました。 今回、この全ての待ち時間中でもSWRを常にチェックし、SWRが3以下ならただちにSWR収束動作へ移るよう変更する事にしました。

ここで、問題が発生です。

LCD表示のアンテナアナライザーを開発する為、PICの開発環境をMPLAB X IDEに変更しましたが、ATUの開発環境は旧MPLABとHi-TECH Cでしたので、この旧MPLABを呼び出しPICKIT3を経由して、プログラムの書き換える事にしました。 ところが、IDが違うとエラーがでます。 困りはてて、色々試しましたが、うまくいきません。  さんざん悩んだ末、MPLAB X IDEでプロジェクトを作り直し、なおかつ、HI-TECH Cで書かれていたソースファイルをXC8用に書き換えると、ちゃんと16F1939を認識して、プログラムの書き換えが出来ました。

さらにプルダウンメニューなどを調べていると、MPLAB XでもHI-TECH Cコンパイラも使えるようです。 結局判った事は、MPLAB Xをインストールした後は旧MPLABは使えないという事でした。

やっと、プログラムの改善ができましたので、21MHzだけですが、オートチューニングを試す事にしました。 以前はバリコンがいったりきたりして、なかなかSWR収束モードにならず、その内、VC maxの位置に収まってしまいSWRが3以下になりませんでした。 やむなく、ハンドでSWRが1.5以下になるようにバリコン角度やコイルのタップ番号を選択した後、収束動作をさせていました。  ところが、今回は1発でSWR1.4くらいまで収束し、再度チューニングさせるとSWR1.05まで収束します。

後日、3.5から28まで全バンド、チューニング出来る事を確認しました。 ただし、28MHzのみですが、SWR1.4以下になるまで、かなり時間がかかるようになりました。 このバンドでチューニング動作を見ていると、1回で送るVCの角度が小さすぎるようです。 ソフトの変更で改善出来そうですが、すでにコンテナBOXに収めてしまいましたので、 次回のチャンスの時、変更する事にします。 この時間のかかる問題は最初のチューニング動作のみで、一度プリセットされてしまうと、次回からは、短時間で整合状態になりますので、実用上の不都合は有りません。

2016年11月3日

LDGのATUのマイコンを改造する為に、このATUのソースコードを調べていましたら、ソフトにバグがある事が判りました。 バグの内容は、ある条件の基ではモーターが反転しないというものです。 これが為に、なかなか整合しないバンドが発生しているようです。 このバグ対策を行った結果、全バンドがかなり早く収束するようになりました。ただし、24MHz以上のバンドでなかなか収束しないのは変わりません。そこで、前回追加しました、バリコンに直列の390PFを廃止しました。

バグ対策を行った後、外付けのSWR計ではSWR1.1以下になるのに、TUNE OKにならない場面が増えてきました。 この原因を調べてみると、モーターにブレーキをかけた後、まだ、バリコンが動いている最中に、SWRをチェックしているというバグが見つかりました。 ここは、50msecのディレー時間を設けて対策しました。 さらに、SWR3以下の時のモーター駆動時間をSWR3以上のときの1/2にし、さらにSWR1.5以下の場合さらに1/2にしていたのですが、SWR1.5から3の期間のモーターON時間が長すぎて、SWRディップポイントを通り過ぎてしまうのが原因でした。 そこで、SWRによりモーターON時間をさらに細分化し、以下のように設定しました。

SWR10以上     200msec

SWR10-5       100msec

SWR5-3        67msec

SWR3-1.5       40msec

SWR1.5以下      33msec

これで、ディップ点を飛び越える確率が大幅に減少した上、収束時間も短くなりました。

最新回路図 ATU-VC11.pdfをダウンロード

バリコン式ではなく、コイルとコンデンサをリレーで切り替えるタイプのATUの例はこちらでPICのソースを含めて公開しています。

2018年1月

プリセットMTUも継時変化が激しく、3.5MHz帯はMTUの調整範囲を超えてしまい、最近はこのATUだけで運用しています。 ただし、他のバンドではATUは使いません。 いくらチューニングを早くしてもプリセットMTUにはかないません。

INDEXに戻る