2025年7月 6日 (日)

2.25 inch TFT 76*284 LCDをPICで表示

AliExpress経由で76x284ピクセルしかない細長いTFT LCDがかなり安く販売されており、これを、ついでの買い物時買ったのが始まりです。 中国から到着して、予め作成して有った実験用回路に接続したのですが、肝心なバックライトが点灯しません。 販売店には、評価1のレポートを送付しましたが、なんとか動作させられないか、気になればつついていました。

Tft_lcd_225inch

左がそのLCDですが、ST7789を使ったSPIインターフェースとの事で、すでに240x320ピクセル用は実用していましたので、あまり気にする事なく購入したのですが、前述のごとくバックライトLEDが点灯しません。 今までのLCD基板ではBL端子を+3.3Vにつないでいましたので、同じように接続した結果です。

通電状態でBL端子の電圧をアナログテスターで測ると3V以上あり、どうやらVCCに接続したのは間違いだったようです。

そして、このテスターを当てているとき、LCD面がかすかに明るくなります。 テスターの内部抵抗は約200KΩですので、1KΩの抵抗でBL端子をGNDへ接続しましたが、明るさは全く変わりません。100Ωくらいまで小さくしてみたのですが、変化は有りませんでした。

広告の中で使われているプリント基板のバージョンはVER 2.0なのですが送られてきた現物のバージョンはVER:tft 2.25 2.0 と書かれており、写真で見る限り表面上は同じようにみえますが、なにかが違うのでしょう。 3週間くらいいじった後、なんらかの拍子に一瞬バックライトが点灯しました。 どうやら、まだ壊れていないみたいですので、一から再検討する事にしました。

このLCDは色々のショップが販売していますが、使用しているフレキの基板は皆同じで、その品番はFP-225TSP-09A。そこで、このフレキの仕様を調べてみると、8pinのフレキの端子番号に対する信号名とプリント基板に書かれた信号名の並びが合致しません。 基板のなかで、信号の順番を変更してあります。

そこで、ほんとうに、基板の端子に書かれた信号が実際のフレキの端子までつながっているか確認する事にしました。 まず最初にGNDを確認したのですが、導通が有りません。スルーホールが切れているみたいですので、この部分をリード線でショートしてやるとバックライトが点灯しました。 この時のBLとGND間の抵抗は6.8KΩでした。 後で確認しましたが、3.3KΩくらいがベターかも知れません。

さらにVCCの接続を確認すると、これは正常。 その他の端子は、実際にマイコンからLCDドライブ信号を出して、その信号がフレキの端子までつながっているかをオシロを使いながら確認した結果、SCL以外は全て正常につながっていました。 SCLラインだけは、どこかで断線しているみたいです。 そこで、このSCLもリード線で接続してやると、やっとLCD画面に目的の表示が現れました。 この基板のカラー構成はST7789の仕様書通りのRGB構成でした。

多分、出荷する時点では正常に動作していたのでしょうが、輸送の振動で、どこかにクラックが生じ、それが原因で断線状態になったのでは推測します。

Tft225lcd01

上が表示成功の状態です。 この表示は200W AM送信機の周波数表示と電源電圧の表示につかいます。下の写真はこのディスプレーが正常に表示出来るように改造した内容です。

Tft225lcd02_2

このLCDの評価を見ていると、全く動かなかったという評価は有りませんので、私に届いた基板だけがNGだったと考えられます。

もし、同じようなトラブルに遭遇した時、参考にして頂けたら幸いです。

 

INDEXに戻る

2025年5月31日 (土)

デジタル検出、アナログSWRメーターの製作

<カテゴリ:SWR計>

再開局以来17年間使ってきたアナログ式のSWRメーターでしたが、性能的には全く不満はないのですが、いざSWRを測ろうとすると、一度進行波電圧でメーターがフルスケールになるよう可変抵抗器で調整した後、反射波電圧をスィッチを切り替えて読むという面倒が有り、Z-ATUが正常に稼働している今、このアナログ式SWRメーターはキャリブレーションがされていなく、特にFT8の時はバンドによって出力レベルが異なるので、目安にしかならない状態になっていました。

ATUを自作する段階で、デジタル方式のSWR計はいくつも作ってきましたが、このデジタル方式のSWR計は出力レベルが変わっても常に正しいSWR値をデジタルで表示します。 しかし、現用中のPOWER計付きリグ切り替えBOXのフロントパネルを新規に作り直すのは、かなり面倒で、今一つ踏ん切りができず、長い間そのままでした。 

そこで、SWRの検出はデジタルで行い、得られたデジタルのSWR値でアナログメーターの針を振らすSWRメーターを作成する事にしました。

デジタル値のSWRをアナログメーター用の電流に変換するのは、変換テーブルを使い、デジタルの電流値にした後、これをPWMにてアナログ電流に変換します。

Swrmeter_test

上の写真はLCDディスプレーを接続してデバッグ中のSWRデジタル検出回路のテストを行っているところです。 このデジタル回路を収納するBOXは600Wピークの送信電力が通過しますので、マイコンが誤動作しないように、回路を金属のケースに入れ、そこから出るワイヤーは全てアクセスパネル経由で接続します。 こうする事により、外部で発生している高周波電流や電圧の影響がマイコン基板に妨害を与えにくくする事ができます。 

Swrmeter_boxin

上の写真は出来上がったマイコン回路を金属ケースに収納した後、SWR計用のケースに組み込んだ状態です。このBOXは複数のリグを1本のアンテナへ接続したり、別系統のアンテナへ切り替えるスィッチBOXのみが機能し、以前有った外部のMTUやATUをコントロールする機能は使用していません。BOXの中の右半分は、MTUやATUのコントロールのとき使っていたLEDとスィッチですが、現在は配線をカットしてあります。

下の写真は出来上がったアナログ表示のSWR計とZ Match ATUのコントローラー(青色のパネル)とペアのショットです。 Z-ATUの内蔵SWR計はSWR1.04と表示していますが、アナログメーターのSWR値は1.07くらいの表示で、これくらいの誤差は許容範囲です。 

Swrmeter_act

AMやCW、FT8では問題ないのですが、SSBのとき、しばしば指針が無限大まで跳ね上がります。 進行波電圧と反射波電圧を時間差をもって取得している為、これは理屈上起こりうる現象で、解決するには、2chのADCが同時にサンプリングする必要があります。 しかしながら、汎用のPICマイコンは、ADCの数は多いですが、各チャンネルをスキャンしながらAD変換を行う関係で、SSBのように音声周波数の周期で振幅が変化する場合、どこかで進行波電圧より反射波電圧が大きくなることが起こり、SWRメーターの針が無限大を指してしまいます。 これを少しでも和らげる為に、連続キャリアの場合、正確なSWRを計算でき、かつSSBの時でも、少なくとも指針が無限大を指示しないようにソフトで対策しました。 SSBの時は、正確なSWRは指示出来ませんが、そこそこ違和感なしで動いています。

SWR計の配線図 Analog_SWR_Meter_250531.pdfをダウンロード

マイコンプログラム Analog_SWR_Meter_2.cをダウンロード

SWRデータ変換テーブル SWR_outdata.hをダウンロード

デバッグ用フォント Font9.hをダウンロード

デバッグ用フォント Font12.hをダウンロード

 

INDEXに戻る

2025年5月26日 (月)

中華製 SI5351A 実働テスト

<カテゴリー:DDS

私が、インターネットで最初にその存在を知ったのは2015年ごろで、10年前の事でした。 当時デジタルVFOと言えば、アナデバのDDSが一般的で、シリコンラボのこのICに注目する人は少なかったと見え、あのRSでMOQ5で750円(1石150円)で売られていました。当時、秋月では確か150円か200円だったと思いますが、2016年にRSで150円で調達したこのICは、自作の無線機に欠かせない存在になってしまい、2025年5月時点で、秋月でも320円で販売されています。 一方、安売りの中国市場での価格は円安の影響もあり、シリコンラボオリジナル品が1pcs 200円以上しています。

昨年の夏から製作を始めたZ Match ATUの部材を通販で中国から買うとき、買い物合計金額の集計中に後300円以上購入すると、送料無料と表示されます。 一応欲しい物は全部買い物かごにいれ終わり、送料が300円くらい計上されている状態なので、つい、何か300円程度の物はないかと探すと、SI5351Aが5石で350円(現在でも存在しています)というのが目に留まりました。 1石70円換算です。 中華製のブランド名で売られていますが、「オリジナル」と書いてあり、本物とほぼ同じ捺印がされた写真まで付いています。 どうせ、シリコンラボのコピー品の「オリジナル」だろうと思いましたが、送料がタダになるのなら、失敗しても損はないとこれを購入したのが10か月前。

やっと、このICがちゃんと使えるのか検証する事ができましたので、レポートします。

Isi5351a_test_pcb


使ったPICマイコンはPIC24FV32KA302という16bit品で私の部品箱には数石在庫がありましたので、これでSI5351Aをコントロールする事にしました。 いつもの通り、25MHzのクリスタルの半田付けには苦労しましたが、とりあえず動きだしましたので、過去シリコンラボの正規品のデータが残っている17MHzと24MHzのスプリアスのテストをおこないました。

このテスト基板は、SI5351Aのほかに、SPIドライブのLCD表示や、SWR計のテストも出来るようにしてありますので、余計な部品がいっぱいついていますが、実際に動作しているのは添付している配線図の範囲だけです。

Isi5351_freq17mhz

Isi5351a_17mhz_spa

Isi5351a_24mhz_spa

上の周波数表示は17MHzを発生させたときの周波数カウンター表示ですが、目標の17MHzに対して390Hzの誤差ですが、この数値は、簡単に校正できますので、表示がチラつかないという事だけが確認になります。 そして、過去のSDRトランシーバーでも問題となったスプリアスです。

左上が17MHz、右上が24MHzの中華製ICのスペクトルデータで、左下及び右下のデータがシリコンラボ正規品のスプリアスになります。

17MHzの±1MHzくらいにあるスプリアスがシリコンラボ純正より約5dBほど高くなっています。また、CNが6dBほど悪くなっています。 この状態では18Mhz以下の送信機にはギリギリセーフですが21MHz以上の送信機では不適合となってしまいます。  送信機に使いたいときは14MHz及びそれ以下のバンドならOKと思われます。 後日、7MHzのAM送信機に使ってみるつもりです。

17mhzonly

24mhzonly

 

Isi5351a_1724mhz_spa

左は中華製の17MHzと24MHzを同時に発生させた時の、17MHz側のスプリアスを見たものですが、24MHzのスプリアスがそのまま出ている状態で、2波同時発生は不可との結論です。 このレベルはシリコンラボのオリジナル品と同等です。 

これらの結果から、簡易型のSSGくらいにしか使えませんね。SSGのスプリアスレベルは-30dBくらいから製品化されていますので。

この実験に使った配線図 SI5351A_test_CN.sch.pdfをダウンロード

テストに使ったプログラム S15351A_CN_copy.cをダウンロード

このテスト用プログラムの中には、SPIドライブのLCD表示プログラムも含まれておりますが、今回はテストの対象にはしていません。

この確認を終えた後、私の不注意でICを壊してしまい、交換する事になりました。 しかし、残り4個のICのクリスタルが発振しません。 半田付けの異常がないか全部3時間もかけてチェックし異常はありません。 最初の1個だけが正常に発振し、この記事のごとく動作確認もできたのですが、クリスタルが発振しない状態でCLK0にはFM変調のかかった目的周波数の数分の一の矩形波が見えるのが2個、全く反応なしが2個。 結局実用にはなりませんでした。 秋月から購入した基板完成品に取り換える事にします。

 

INDEXに戻る

2025年5月13日 (火)

Z Match ATU 設計変更(絶縁破壊の改善)

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

アンテナセレクターのリレー接点間の耐圧オーバーで絶縁破壊が起こってしまい、その対策を行ないます。 方法は、分離したアンテナセレクターをZATUのBOXの中に同居させ、ZATUの出力端子のすぐ近くでアンテナを切り替えると、この問題は解決します。 理由は、ZATUの整合可能な最大のインピーダンスが1000±J1000Ωくらいですので、例え200W送信でも、リレーの耐圧1500Vを超える事は有りません。 そして、スカイドアのループは3mのラダーフィーダーで給電し、垂直ダイポールとスローパーもどきロングワイヤーはZATUに直接接続することで、3つのアンテナの給電条件を独立して調整できますので、一石二鳥と言う事になります。 また、従来有った160m用垂直アンテナ用にエレメント接続を切り替えるリレーとD端子は廃止しました。160m用垂直アンテナはZATUとは無関係に展開しますが、まだ構想は出来ていません。

Zmtu2_box

左の写真がアンテナセレクターをZATUの防水BOXの中に移したものです。 また、ZATUのメイン回路は初期の計画通り、ZATUのフロントパネルにビス止めし、マイコンの書き換え用コネクターのみケース面に引き出しました。 こうする事により、ZATU本体とマイコン基板を結ぶワイヤーがむき出しにならずに済み、余計な誤動作の種もひとつ消えます。マイコン基板内にハード的な変更が必要になった場合、ATUごとこのBOXから外さねばなりませんが、従来の形態でもBOXから外さないと思う様に変更が出来ませんでしたので、条件は従来と同じで変わりません。

この改造ZATUを設置完了した直後から天気は雨となり、整合が思うようにできないバンドが多くありますが、次の土日に整合テストを行い、各アンテナの引き込み条件を決める事にします。

この改造ZATUでその日の夜から運用をおこないましたが、とりあえず、スカイドアのループから引き下ろしたラダーフィーダーの長さは3.9mでトライし、14MHzから28MHzの5バンドはQSOが出来ました。 また、垂直ダイポールは、ZATUに直接接続しましたが、3.5、7、10MHzともにQSO出来ています。 特に10MHzの飛びが良くWやメキシコ、キューバ、エルサルバドルなどと交信できました。

アンテナの定数が天気で変わる為、毎晩チューニングは取り直しになります。 これは、T型アンテナチューナーでは、あまり見られなかった現象です。 チューニングがクリチカルというZ Matchチューナーの本質的な問題なのかも知れません。

このZATUを改造する時、タイミングベルトの張りの強さも見直し、従来よりきつくしました。 その結果、1/4マイクロステップでもバリコンが応答するようになりましたので、SWRが1.1を切ったら、1/4マイクロステップでSWR最良ポジションを探すようにプログラムも変更しました。 同時に各モーターの最大電流を、SVC側で300mA、WVC側で500mAに再設定しました。

プリセットコールをONの状態で、バンドを切り替える時、ゆっくりと変化させた時は問題無いのですが、ロータリーエンコーダーを早く回転すると、エンコーダーのチャタリングの為、連続してかつ不規則に割り込みがかかります。この時、時々、ステッピングモーターの現在位置の番地が大きく狂うという問題がありました。 過去から多重割り込みが発生した時は色々な問題が発生し、対策が困難でしたので、多重割り込みが発生しないようにするしか有りません。 対策は、MAIN側がプリセットコール要求を受け、その処理を行い、SVC,WVCともにターゲット番地に移動完了するまで、次のプリセットコール要求を禁止することで対応できました。

自動チューニングをスタートさせた直後にZATU側のメインマイコンが時々ハングアップするという問題が出ていました。ソースコードを何度も検証したのですが、おかしなところは見つからないのに、ステッピングモーターの台形駆動ルーチンで止まってしまっていました。 今回のマイコンはふたつのステッピングモーターをランダムに制御する為、Timer3とTimer5による周期的な840usecから5msecの間隔で割り込みがかかりますが、タイミングによっては、Timer3とTimer5の割り込みの間隔が1usec以下になる事や最悪ワンマシンサイクルの差しかない事もあります。 過去の事例で10usec間隔の割り込み時、16bit PICは誤動作が起こる事が判明しており、もしかしたら、8bitのPICでも同じ理由で誤動作が起こるかも知れないと考え、複数の命令を一行で記述していたソースコードを、ひとつづつの命令に独立させ、かつデータのやり取りを必ず変数経由で中継するコードに書き換えました。 さらに、台形駆動時のふたつのタイマーの開始時間が同時であったのを、50usecずらしてスタートする事にしました。 この状態でしばらく様子を見る事にします。

Zatu_seting250518

160mの時、VCにパラにコンデンサを追加し、バリコンの可変範囲の調整を行っていますが、WVC側に積層セラミックコンデンサ(MLCC)が1個使われていました。 まだ160mでの運用実績が多くないので、実害は出ていませんでしたが、後々問題とならない様に3KVの単板セラミックコンデンサに変更しました。 

Zatutunedata250518

アンテナセレクタをZATUのメインユニットに一体化した後、各バンドでの整合テストを行った結果、左の表のように、一応全バンド、実用SWRレベルに調整する事ができました。 スカイドアのラダーフィーダーも細かく長さを調整して3.4mの長さの時、14MHzから50MHzまで実用レベルです。 左上の表は、雨上がりでの確認結果で、ATUもアンテナエレメントもフィーダーも雫が付いている状態です。右上の表が晴天の日に再確認した結果です。 3.5,7,10MHzの垂直ダイポールの給電点とZATUの間には、右側の表のみ40cmのラダーフィーダーが接続されています。これは、10MHzの時、WVC側のステップが時々0になってSWR1.1以下にならない時がありましたので、その対策です。

Zmtu_ant250517

リンクコイルのタップ位置はほとんどが3Tとなりました。 自動調整によるSWRの変化を見ていると、ATUのDrop Out領域に近づくと、例えばSWR 2.05付近で行ったり来たりしてそれ以下のSWRにならなくなり、タップ位置を切り替えてやると、自動でSWRが下がり始め、その内SWR1.1以下になる場合と、一旦SWRは下がり始めたのに、またSWR1.5付近で足踏みしてそれ以下に下がらに場合があります。この時は、再度タップを元の位置に戻すとSWR1.1以下になって整合完了します。 今までのT型VCによるATUとは異なる面白い動きです。

左の写真は、マストの途中に有った、アンテナセレクターをベランダのZATUのBOX中に降ろし身軽になったアンテナマストの全景です。 スカイドアのループのみラダーフィーダーで接続しています。 マストがローテーターで180度回転しますので、ラダーフィーダーと垂直ダイポールの上部エレメントがステーにからまない様にグラスファイバーの棒でマストから離して引き下ろしています。 この位置からZATUの接続端子まで約3mありますので、その間でステーに接触しても、大きく変形しないようにしています。 ステーは全て、合成繊維で出来たロープで、フィーダーやエレメントが接触してもSWRの変化は無視出来る範囲です。

以前有った7MHzの国内向けベントダイポールは撤去し、160m用の垂直アンテナはまだ構築していませんので、結構すっきりしたベランダになりました。

 

全部のバンドではないのですが、5Wの出力でSWR1.1以下に整合させた後、FT8で100W送信すると、SWRが次第に上昇し、3を超えます。 この現象はCWやSSBでは起こりません。 また、3種類のアンテナエレメントに関係なく、発生しないバンドも有ります。 スカイドアの場合、14MHzでは発生しませんが、他のバンドでは発生します。 垂直ダイポールの7MHzでは発生しませんが、3.5や10MHzでは発生します。 スローパーモドキのロングワイヤーでは1.8と3.5、7MHz全バンドで発生します。 また、SWR1.1以下に追い込む事が出来なかった場合、このSWR上昇が起きない事もあります。 SWRが3を超えるようになったら、出力を絞っています。 大体、60Wくらいまで絞るとSWR1.5以下まで下がります。 フェライトコアは使っていません。 絶縁破壊が起こりそうなエレメント配置も有りません。 原因が判らず、気にしながら2週間運用してきたのですが、どうも原因はATUその物に有るみたいです。 100W連続出力時、SWRが次第に上昇する速度はバンドによって異なるのですが、ここ2週間の間に良く使った7MHzと10MHzの変化がブロードになり、一度電源を切り、翌日同じ様な時間に、電源ONしたときのSWRのずれが次第に小さくなり、かつSWR上昇スピードも緩くなってきました。 また、100W連続送信の15秒間の間に、再チューニングを行うと、SWR1.1以下に整合させる事ができ、この状態からのSWR上昇速度はもっと遅くなり、SWRを気にする必要が無いくらいになります。

久しぶりに1.8MHzのSSBを運用すべく、AM5Wの出力でZATUの整合を取り、JA3の局のCQにコールすると、SSBの音声に従い、SWRが上下します。 常に3台のSWR計(FTDX-101D,自作アナログ表示のメーター、ZATU内蔵のSWR計)でモニターしていますが、3台とも最大SWR 8くらいまで上がります。 相手頂いた局からは激しいQSBを伴い、了解しにくいとのレポートでした。その日は短時間でQSOを終わり、翌日、1.8MHzで出力を変えながら実験してみました。 すると、5Wの出力でSWR1.1以下に整合した場合、出力を10Wまで上げるとSWRが3を超えます。さらに25Wまで上げるとSWRが8を超えます。 次に25WでSWR1.1以下に整合させた後、CWやSSBで出力を100Wに上げてもSWRの悪化は有りません。 整合する時の出力を次第に下げていって、100W出力でもSWRがあまり変化しない出力を探すと10Wの時は、まだ少々変化が大きいですが、15W出力で整合させると、100W主力でも問題ない状態になりました。 以後、整合させる時の出力はAMキャリアで15Wに固定する事にしました。 この出力でZATUの整合条件が変わる要因は特定できていませんが、一番怪しいところは、ATUのバリコンの絶縁体が通常タイト製なのに対して、今回使ったのはベークライト製なのかも知れません。 ベークライトでも屋内で使う場合、問題にならなくても、屋外で使う場合、湿度の影響をもろに受けるのかも知れません。 これから梅雨にはいりますので、どう変化するか気にする事にします。

Zatu_yellow

160m用スローパーを利用した7MHzの国内用アンテナの実用に目途が付いた事により、ベランダに平行して設置してあった、ベントダイポールを撤去したとき、ベランダに括り付けてあったこのベントダイポール用MTUも撤去しました。 その時、内部にあったポリバリコンの絶縁体がボロボロになっており、バリコンを回そうとすると、割れてしまいます。 MTUのケースが透明品でしたので、直射日光にさらされた結果、このような状態になったようです。 そして、今回のZATU用防水BOXも透明であり、1年後にどのようになるか予想できます。 そこで、ZMTUのBOXの外側にスプレーで塗装を行い、直射日光が入らないようにしました。 このBOXを近所のホームセンターで探すとき、蓋がロック出来るBOXは透明BOXしかなくこれを購入したのですが、ホームセターの範囲を半径10kmで探せば青や緑のBOXを見つける事が出来たのに悔やんでいます。

参考情報:FTDX101Dで50MHzの整合を行うと、内臓のSWR計が3以上を指示しません。 ZATU内蔵のSWR計がSWR10以上を表示しているのに、FTDX101Dの内蔵SWRは2.9とか3程度をさしています。 そして、ZATUのSWR計が3以下になると、その値より少し小さいSWR値を表示します。 アンテナ直下のSWR値より、リグ内蔵のSWR計の表示は同軸ケーブルのロスが2重に効きますので、実際のSWR値より小さく表示するのは問題ないのですが、3以上を表示しないというのは困りますね。 この現象は50MHzのみで28MHz以下のバンドでは問題なしです。 私のリグだけの問題なんでしょうか。 

整合状態の再現性ですが、以前に比べて、1日経過した時の各バンドに於けるズレの程度が小さくなってきました。 ちょうど梅雨入り宣言がでた時期で雨と晴れの差はありますが、10MHzバンドは再調する事なくそのまま使えます。他のバンドも少しづつ改善しているようです。 これも、当分は様子見です。

160m用スローパーのエレメントを利用した打ち上げ角の高い7MHz用アンテナにキャリア出力100WのAMで送信すると、無変調状態では問題ないのですが、マイクに向かってしゃべった途端SWRが無限大になります。 ZATUの内部で絶縁破壊している模様です。 この絶縁破壊によるSWR悪化現象は出力を下げるとすぐに直りますので、多分絶縁破壊はバリコンのギャップではないかと思われます。 このバリコンは見た目でもエアーギャップが狭くこんなので300W(コメットの仕様)いけるのかな?と疑問でしたが、やはりSSBの300WpepがMAXなんだと納得です。 AM100Wで変調をかけると、MAX400Wですから、NGになったのでしょう。 そこで、このアンテナの給電ポイントにおけるインピーダンスをRもXも250Ω以下に抑えられないかワイヤーの長さを調整してみました。すると、今のスローパーのワイヤーに8mほど追加してやると、500Ω以上で測れない事は変わりませんが、RとXが従来のインピーダンスの半分くらいになり、SWR1.03くらいまで整合出来るようになりました。 このアンテナは3.5MHzと1.8MHzも共用しますが、いずれのバンドもSWR1.05以下に整合できます。 この状態で7MHz AM100Wで100%変調かけてもSWRは安定するようになりました。

現時点での最新情報込みの配線図とソースファイルをダウンロードできます。

バンドリストをコントローラーからUART経由でmain unitへ送る仕様でしたが、バグの発生が有り、対応が面倒でしたので、main unitでも、このバンドリストをヘッダーファイルとして読み込む事にしました。

メイン配線図 z_match_atu_main_05.pdfをダウンロード

コントローラー配線図 Z-Match-ATU_contoroller_3.pdfをダウンロード

アンテナセレクター配線図 Z-Match-ANT_selector_3.pdfをダウンロード

メインUnitプログラム Z_Match_ATU_main_81.cをダウンロード

コントローラープログラム Z_Match_ATU_controller_81.cをダウンロード

アンテナセレクタープログラム Z_Match_ATU_ANT_selector_8.cをダウンロード

バンド分割ヘッダーファイル Z_Match_FreqRang_7.hをダウンロード

台形駆動データヘッダーファイル StepFreq_List_12_200.hをダウンロード

LCDフォントファイル Font9.hをダウンロード

LCDフォントファイル Font12.hをダウンロード

 

上から2番目のベランダに括り付けたZATUの写真をよーく見るとアンテナセレクタの部分にピンセットの影が写っていました。2~3日前から、いつも使うピンセットが見つからず困っていたのですが、こんな所にありました。 もちろん現在は、取り除きアンテナセレクターがショートしないようにしています。

 

Z Match ATUを使用した最新の交信実績はこちらにあります。

 

INDEXに戻る

2025年3月23日 (日)

ATU 防水BOX (実際のアンテナによる整合)

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

アンテナセレクターの防水加工が完了しましたので、ATUのメインユニットを防水BOXの中に収納しました。 当初、メインUnitのマイコン基板はATU前面のパネル面にビス止めしてあったのですが、いざ防水BOXに収納すると、ソフト書き換えの為のPICKIT3を繋ぐ事が大変難しく、基板にハード的な変更が生じたとき、防水BOXからATU本体を取り外さないと処理できないという事が判り、下の写真のごとく基板を収納する金属ケースをATUから分離し、基板のメンテと、ATU本体のメンテが防水BOXの蓋を開けるだけで出来るように変更しました。

Zmatch_main_box__in

写真は基板もATUも天板を開けた状態ですが、通常は両方とも天板をかぶせる事にします。 防水BOX内でATUの出力端子を外部に引き出す配線をし、かつATUの天板をかぶせると、10MHzのバンドのみはどうしても整合出来なくなりました。 やむなく、VC2のタップを初期の6.5Tに戻しました。50Ω負荷では最小SWR1.7くらいにしかなりませんが、200Ωなら1.04になりますので、実際のアンテナで確認する事にします。

この防水BOXに組み込んだ後、イニシャライズの時のモーターが異常音を出します。原因は、モーターが起動トルク不足で回っていない状態でした。 モータードライバー基板の中にあるSMTタイプの半固定抵抗の接触不良でモーターの電流制限が250mAでないとダメなところ70mAくらいしかなったものでした。 半固定抵抗をぐりぐりとまわして電流値を250mAに再設定してやると正常になりました。 過去、このSMTタイプの半固定抵抗の品質はかなり悪く、大型の村田製に変更した事がありましたが、ここにきて中華製の品質問題に遭遇してしまいました。 こんな部品をいくら防水BOXに収納したとしてもベランダに置いて大丈夫なのか? 一気に不安がよぎります。 とりあえず呉印の接点復活剤を吹き付けておきましたが、心配ですね。

春分の日を過ぎた最初の土曜日に急に暖かくなり日中の気温が18度を超えます。 南西の風がやや強いですが、従来のバリコン式ATUを降ろし、Z Match ATU(以後ZATU)を急遽上げる事にしました。約3時間花粉が飛び交う中で作業した結果は以下の写真です。

Zatu_comp1

Zatu_comp2

アンテナセレクターとZATU間に接続したはしごフィーダーは100均にあった仕切り板で作ったインピーダンス約500Ω、長さ3mのフィーダーです。

すぐに動作テストを行い、9600ボーのUART通信も問題なく動作している事を確認できました。

さっそく、実アンテナによる整合テストにトライしました。

1820kHzではWVCの容量不足でSWRは1.51、1896では1.79、ここは追加のコンデンサで解決しそうです。

修正済み配線図 zmatch_atu_main_04.pdfをダウンロード

50Ωダミー抵抗では整合出来なかった10MHzはWVCを最大容量にしてSWR 1.08

29600kHzはSVC,WVCともに容量最小でSWR1.53

その他のバンドはSVC,WVCともに可変範囲内でSWR1.11以下となりました。

ただし、昨日1.1以下に整合したのに、今日は4以上とか再現性が良くありません。 この再現性が悪いのはステッピングモーターの脱調かも知れないと、改めて電流制限の設定を見直してみました。現在はふたつのモーターとも250mAでの駆動です。 電流が原因で脱調する場合、定格電流以内で少なすぎても多く過ぎても発生するとWEB上で解説されており、カットアンドトライが必要なようです。 この為、いくつかの設定を試した結果SVC用は400mA、WVC用は600mAに設定して様子を見ます。 

また、モーターのstepが0以下もしくは1500以上に動こうとするようなATUとしてのカバー範囲以外となった場合、タイムアウトでエラーになるようにしたつもりでしたが、タイムアウトのチェックルーチンが機能しないというバグがありましたので、修正しました。

現在のSWR限度値は1.08に設定してあり、整合開始してから10秒間は1.08以下になるまで、整合動作を行います。 しかし、リアクタンスが大きいバンドでは、2stepの回転でもSWRディップポイントを飛び越える場合があり、10秒以上経過したら次の限度値であるSWR1.35以下を探します。SWR1.35でも整合しない時は次の限度値1.65を探します。 そこで、整合スタートした後、再度STARTキーを押すと、その時の条件をEEPROMに記憶し、整合したという処理をするように修正しました。 この修正により、例えばSWR1.2くらいで行ったり来たりしている状態であるなら、この機能を使い一旦SWR1.08以上の場合でもEEPROMにデータを記録できるようにしましたので、とりあえずは運用できます。 時間のあるとき、この仮の整合状態を開始ポジションとして自動整合を開始すると、最終的に1.08以下のポジションを見つけて記憶できるようになりました。

ステッピングモーターの脱調が原因と思われる、整合条件の再現性は一向に改善されません。 一度、SWR1.08以下に整合した後、他のバンドへ移り、そこで、整合条件をEEPROMに記憶させた後、前のバンドに戻り、プリセットコールを行い、送信モードにすると、SWR3くらいに跳ね上がっています。 そこで、再度整合動作を行うと、前回EEPROMに記録されたモーターステップと7から30くらい異なります。 この差はSVC、WVCいずれもありますが、WVC側がSVC側の2倍から4倍あります。

このZ Match ATUのオリジナルは50MHzをカバーしていませんが、試しに50.3MHzで自動整合を行うとSWR1.2くらいで整合し、VK局とFT8で交信できました。 レポートは私が相手局に送ったのが-08dB、相手から貰ったのが+03dB。 アンテナの指向性データから実用出来ないバンドと諦めていたのですが、実際のアンテナはシュミレーションデータとはかなり違うみたいで、これはうれしい誤算でした。 ただし、まだ国内交信は出来ていません。

脱調による再現性の問題の為、次の土日にZATUは降ろし、従来のバリコン式ATUを再度上げるつもりでしたが、急に寒の戻りがあり昼間でも最高気温が8度しかなく、ATUの入れ替えは次週に延期となりました。 代わりに、50MHzの運用を行い、DXCCのエンティティが7に増えました。

 

ATUメインUnit Z_Match_ATU_main_04.cをダウンロード

 

2025年4月

ZATUをベランダにセットし、アンテナセレクターをマストに上げてから2週間後にこれを降ろし、問題点の整理と対策を行いました。

まず、プリセットコールの再現性ですが、当初、ステッピングモーターの脱調が主原因と考えていましたが、脱調が全くない訳ではありませんが、一番大きな原因はタイミングベルトの張りの強さでした。特にSVC側のバックラッシュが大きく、バリコンの回転方向がCWとCCWで10ステップ以上異なる事でした。  幸い、SVC側にはベルトの張りの強さを調整する機構が付いており、これを調整し、ベルトを軽く押さえたときのたるみの幅が3mmくらいになるようにすると、少し改善できました。 一方、WVC側もアイドラアングルのスペーサーの厚みを調整して、張りの強さを変えてみましたが、こちらは現状のレベルが最良のようでした。

さらに、モーターを台形駆動する時の回転速度の加速度を3.2%で50段階と設定していたものを、1.6% 100段階に変更しました。 この変更で0度から180度までバリコンが回転する時間は従来の約3秒から約4秒になりましたが、違和感はないのでそのままです。

電源投入時のゼロポイントを探す動作で、最終的に位置を決定する時のモーターのステップは1.8度で行っており、この時、ATUのシャーシが振動して、ベルトも同様に振動していましたので、この時も1/4マイクロステップで回転するように変更しました。 振動は無くなり、騒音も解決しました。 また、整合時のSWRが1.02とか1.01の場合、電源OFF/ONによる原点再設定時でも、SWRの変化幅がすくなく、28MHzの50Ω負荷の時、SWRが0.01程ずれるだけとなります。 従い、現在SWR1.08以下なら整合したとする定義を1.03未満のとき整合したと判定するように変更しました。

ここまでやっても、負荷抵抗が15Ω以下になったり、リアクタンスが多くなると、SWR1.03以下の状態でもSWR1.8くらいまで変化してしまいます。 根本的な原因は脱調が無いという条件下でもベルトのバックラッシュをゼロにする事ができない事に尽きるようです。 これを解決する手段としてスプレッドバリコン方式にして、バックラッシュが有ってもVCの容量変化を小さくするアイデアはありますが、現在の構造のままでは対応に無理があり、改造するにしても、また1年くらいかかりそうですから、その間にサイクル25も終わってしまいます。

マイクロステップの実際の使用例について情報を集めてみました。 バイポーラタイプのステッピングモーターを使う3Dプリンターの場合、機械的な減速機構と合わせてマイクロステップを使う事が標準となっており、その時のステップは1/4、1/8、1/16が主に使われているとの事。 このZATUの場合、過去、1/8や1/16のテストやってきましたが、期待通り動きませんでした。 しかし、モーターのスタンバイ機能を制御する為に、ソフト的なタイミングの調整と、モーター電流の最適化をやった今、1/8や1/16のマイクロステップに設定すると、ちゃんとモーターは正常に動作するようになりました。 しかし、バックラッシュの為、1/4のマイクロステップでも、SWRの変化が得られない、21MHz以上のバンドも存在しますので、モーターは最低0.9度の角度でしか回せません。1/8や1/16マイクロステップは騒音の対策になっても再現性の改善には寄与しないですから、今後も1/4マイクロステップで進行します。

臨時に上げているバリコン式のATUは、机上では50MHzもOKでしたが、実際にマストにアップすると、自動整合出来ず、マニュアルで整合させるとSWRは1.3くらいになりますが、FT8の時、バランに使用しているフェライトコアが発熱して、15秒送信を2回もするとSWR3を超えます。50MHzで40Wくらいまで絞れは送信は可能ですが、コンディションが悪く、交信に至っていません。

Skydoor_with_antselector

これらのことから、ZATUの整合の再現性は未完成ですが、このまま再設置する事にします。 そして、送信する場合、最初に整合状態を確認し、もし、SWRが高い状態なら自動整合させた後使う事にします。 ちょっと受信状態を確認するだけなら、プリセットコールのみで問題なしです。


使用しながら、改善策が出てきたら、必要に応じ改善する事にします。

左の写真は2025年のゴールデンウィーク前半の連休時、上げたナロー幅スカイドアにアンテナセレクターを括り付けた状態です。 この状態で10MHzはSWRが2.3以下に下がりません。また、ATUを使わない160m用GPはアンテナアナライザではSWR1.1くらいですが、5Wのキャリアを出した状態でのSWRは4を超えます。 多分アンテナセレクタのどこかで耐圧オーバーによる絶縁破壊が起こっているのでしょう。 これらは、連休後半で対策を考える事にします。

さらにステッピングモーターの脱調を少しでも改善する為、モーターの電流制限を両方のバリコン共300mAに設定し直し、かつ台形駆動の加速、減速の比を1.2%まで小さくし、台形駆動時のステップを150段まで増やしました。 効果があるかどうかはしばらく使ってみてからにします。(読み込んでいるヘッダーファイルの中に設定してある段数は200ですが、実際に使っているのはmax150段です。)

主にFT8を運用しながら、各バンドでの整合状況を確認してみました。 出力5Wで整合をとりSWR1.1以下にした後、SSBやCWでは 100W送信しても問題ないのですが、FT8の場合、一部のバンドで送信開始1秒後くらいでSWRが大きく増加し、3から8くらいになります。 多分原因はどこかで絶縁破壊が起こっているのでしょう。 この状態の時はSWRが上昇しない程度に出力を絞り確認をつづけています。

Allband_tunedata1

上の表は主にラダーフィーダーの長さを変えた時の整合状態です。 全バンドがOKでは有りません。 最初に決めた3mの長さが一番よさそうですが、3種類のアンテナを1本のラダーフィーダーでまかなうにはかなり無理がありそうです。 また、100W時のSWR増大は多分アンテナセレクターのリレーの接点間耐圧1500Vをオーバーする事による絶縁破壊ではないかと思われます。 アンテナセレクターを再検討する必要がありそうです。

以下、現時点での最新プログラムです。

なお、コントローラーの配線図は前回アップしたまま変更は有りません。 

z_match_atu_main_05.pdfをダウンロード

Z-Match-ANT_selector_2.pdfをダウンロード

Z_Match_ATU_controller_71.cをダウンロード

Z_Match_ATU_main_071.cをダウンロード

StepFreq_List_12_200.hをダウンロード

Z_Match_FreqRang_7.hをダウンロード

LCD用フォントの変更はありません。

ZATU設計変更へ続く。

 

 

INDEXに戻る

 

2025年2月 1日 (土)

Z Match ATU アンテナセレクター

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

Z Match ATU本体とコントローラーがほぼ完成しましたので、ATUとアンテナの間に設置するアンテナセレクターの製作です。

今回のZマッチのATUは、その出力が平衡タイプとなっており、これは、平衡アンテナに直接給電出来る事から、FT8の時、バランのコアが発熱して、100W連続送信ができないとか、バランの中で生じるロスが大きいとか言う問題が発生しません。 また、アンテナが不平衡タイプの場合、そのまま給電しても、ATUとアンテナ給電ポイントまでの距離が短ければ、給電線に不平衡電流が流れても不要輻射による指向性の乱れや外来ノイズのピックアップも大きくはならないという利点があります。 不平衡アンテナの場合、ノイズも不要輻射もアンテナが原因なのか、給電線が原因なのかよく判りませんが。

 

ATUからアンテナセレクターまでの3mの距離は、はしごフィーダーで給電し、3種類のアンテナに分配するアンテナセレクターをマストの給電ポイントに括り付けて対応する事にします。

Iantselector1

コントローラーから送られるUART信号をATUで中継して、受信信号のみをアンテナセレクターまで送り、そこで、アンテナナンバーを解析して、リレーをON/OFFする事により、目的を達成します。

左の写真が、そのセレクター基板です。 マイコンは部品箱の奥から探し出した、PIC18F14K50を使います。 このマイコンのEEPROMに分割バンドとそれに対応するアンテナナンバーを記憶させる機能も入れましたので、後々、バンド分割の変更やアンテナのタイプ変更が発生しても、いちいちマストから降ろさなくても良いようにしてあります。

ところで、今頃気づいたのですが、このPICのUART信号の極性は該当bitを0にしたら「正論理」、1にしたら「負論理」と書いてありますので、その言葉通り正論理にしたら、動きませんでした。 最近のPIC18の場合、1の場合、アイドル時L、0の場合、アイドル時Hレベルと書かれております。 RS232Cの場合、アイドル時Hの状態をノーマル状態としていますので、この古いPICでは、ノーマル状態を正論理と表現したのでは? このおかげで、自作のハードとプログラムが悪いのではと3日間も悩みました。

2025年3月

3月に入ったとたん春らしくなってきました。 ANTセレクターBOXを作る為の屋外作業が出来るようになりましたので、透明BOXを購入し、アンテナセレクターを収納する防水BOXを作成しました。 適当なサイズをホームセンターで探しましたが、有ったのは透明ケースのものだけでした。 アンテナマストに括り付けた時、ほんとにリレーが切り替わっているのか確認する為に3色のLEDを追加し、ベランダから見上げて動作確認が出来るようにしました。 サイズも従来のバリコン式ATUの1/4くらいに収まりました。

Antselector3

Antselector2

左上が防水の為の蓋をかぶせた状態、右上が蓋を開けた状態です。 高周波が通るワイヤーがふらつくとアンテナの整合条件が変わりますので、動かないように錫メッキ銅線で配線してあります。 内部の特性インピーダンスは無視です。 これは、アンテナのインピーダンスと合成された状態でATUが整合させてしまうので、極端なインピーダンスにならない限り問題ありません。  

ATU本体と接続する電源と通信線3本は、自転車の電装品間を配線する防水コネクターで接続します。 

このBOXの背面にはマストにステンレススチールベルトで縛り付けられる様なアルミ板で出来たホルダーも作ってあります。 ATUとこのアンテナセレクターを平行フィーダーと電源線で結び、アンテナ端子に50Ωのダミー抵抗をつないだ状態で、28MHzの100W CW運用でも問題が発生しない事は確認できました。 あとはマストに括り付けて実働テストをするのみとなりました。 

実働テストはATU本体の防水BOXが完成してからとなりますので、4月ごろを予定して置きます。

 

Z Match MTUの構造はL型MTUと等価であるという説明がオリジナルのホームページに書かれており、ならば、MTU内部で発生するロスもL型MTUと同等かも知れないと期待されます。 実際のところはどうなのか50Ωのダミー抵抗を使い実測してみました。

Kouritu3

左のブロック図が測定に使用した各機器の配置です。 AMTX(FTDX101D)とATUと50Ωダミー抵抗を直列に接続し、ATUの入力部及び50Ω入力部のRF電圧をオシロで読み取ります。 オシロのピークtoピーク電圧をVoppとした場合、

 

ATUの入力(W)は(Vopp*0.707*0.5)の2乗/50

ダミー抵抗の入力(W)は(Vlpp*0.707*0.5)の2乗/50

の計算で電力に直します。 ATUの入力とダミー抵抗入力の電力の比が効率となります。

また、参考としてクラニシのMTU NT-636でも同じように測定し、効率を計算します。 このようにして得られた結果が下の表になります。 アンテナ負荷が50Ωの純抵抗ですから、実際のアンテナが50Ω純抵抗である可能性はほとんどなく、T型ハイパスMTUと同一条件で比較した一例として見て頂きたく。

効率のデータを取る為に何度も測定を行うと、その都度データがバラツキます。表のデータはその中で一番良いデータを表示しました。

Kouritu3

結果はNT-636よりロスが若干少ないデータが得られました。Z Matchの構造からして、Lタイプ同等とはいかないにせよ、かなり良い効率をだしています。 NT-636はハイパスT型と言われるMTUですが、以前測定したデータとあまり変わらず安定しているようです。 Z Match ATUは平衡出力ですので、不平衡出力のクラニシのMTUには必ず必要となるバランが不要です。 過去私が自作したバランのロスは10%から50%はありましたので、それを考慮するとクラニシのNT-636よりロスはかなり少なくなると思われます。特に、FT8の時、その効果が発揮されるはずです。

 

ATUの効率を測定する最中にL3を有効にして整合をとった時の効率が意外と悪化する事に気づきました。 このL3のオープン、ショートは、Z Matchの特有のDrop Outが発生する領域をインダクターを追加して回避する目的で設けられており、このコイルを追加する方法と、2次側のリンクコイルに3ターン目のタップを設け、リンクコイルを4ターンにするか3ターンにするかでインダクタンス値がかわりますので、L3と同様Drop Out領域を回避する手段とする事も可能と説明されています。 L3を追加する事は、アンテナにローディングコイルを追加する事と同じ事であり、ローディングコイルを追加した場合、全体の効率は悪化する事は既知の事実です。 そこでL3を追加する方法と2次側のリンクコイルの巻き数を変更する方法のATUの効率を実測してみました。

Dropoutc

結果は上の通りで、L3を追加する前のATU効率が91.5%であったのに対して追加した後は、77.5%まで悪化していました。この悪化の程度は14MHz以下のバンドではインダクタンスのインピーダンスが小さくなるため効率は改善していきますが、14MHz以上のバンドではより効率悪化が起こる事になります。 一方、リンクコイルの巻き数を切り替える方法の場合、単なるインピーダンス変換器として働きますので、ロスの発生はなく、実測データも巻き数が4Tの場合と変わりません。 ただ、ホームページ内では、Drop Out領域の回避レベルが同等なのか明言されていませんので、全バンドで回避能力があるのかは不明です。 今回の私のATUの場合、すでに説明した通り、ATUとアンテナセレクターの間をラダーラインで接続する事にしていますので、もし、Drop Outが回避出来ない時はこのラダーラインの長さを調整する事で回避可能となります。 よって、効率ダウンが起こらない、リンクコイルの巻き数選択方式で進行する事にします。 

 

配線図 zmatch_atu_main_04.pdfをダウンロード


配線図 Z-Match-ANT_selector.pdfをダウンロード

プログラム Z_Match_ATU_ANT_selector_0.cをダウンロード

 

いよいよ、ベランダに設置し、実際のアンテナで動作確認を行います。

最終的にこのアンテナセレクターは、リレー端子間の絶縁破壊の為、ZATU本体の防水BOXの中に移し替える事になり、この単品のアンテナセレクターはボツとなりました。

INDEXに戻る

2024年12月21日 (土)

SDカードへのアクセス 2024

2015年にアンテナアナライザーで得たSWRカーブをSDカードにセーブする為にMicrochipが用意しているfileioというDEMOアプリの使い方を紹介しましたが、その後PCをWindows7からWindows10に変更した過程で、当時のファイルが消失し、あれから9年経った今、再度SDカードへのアクセスが必要となり、また一からコンパイル環境を構築する必要が生じました。

当時入手したMLAプログラム集は更新されており、今回使用したプログラムは

mla_v2017_03_06_windows_installer.exe

というファイル名の物で、これ以降は更新されていないようです。

このプログラムをインストールした後、fileio_lfn(FAT32用ロングファイル名対応版)のプロジェクトを開き、当時の使い方通りハードを構成し、ビルドをかけると簡単にDEMOモードによるファイル見本が作成できました。 この時の環境は以下の通りです。

MPLAB X v6.20

XC16 v1.60

Packs PIC24F-GA-GB_DFP 1.9.336

この状態でコンパイルが成功しましたが、最初、デモファイルが出来ませんでした。原因は、マイクロSDカードをアダプター経由で使った為でした。 PCは標準のSDカードもアダプタ経由のマイクロSDカードもアクセス可能ですが、このfileioからのアクセスは不可能でした。 これはfileioのだけで無く、2015年以前に購入したキャノンとソニーのデジタルカメラもメディア異常で使用できませんでした。 普通サイズのSD HCならOKで現在も販売されていますので、マイクロSDカードが使えなくても問題ないのでしょう。

自作のプログラムの中にこのfileioのプログラムを埋め込み何かを作る場合、fileioのソースも少なからず変更が必要になりますので、オリジナルのファイルはそのまま残す必要から、独自に作成した開発用ホルダーの中に必要なファイルを集めてビルドをかけられるようにします。

以下、忘備録を兼ねて、その手順を紹介します。

Sdc2004_file

左は専用のホルダーを作り、その中に必要なファイルを集めた上で、SDC2024という名前のプロジェクトを作り、ヘッダーファイルとソースファイルを追加した状態の表示です。

ただ、MLAのfileio用ホルダーの中には、同じ名前のファイルが沢山存在します。 従い集めたファイルが実際にデモプログラムに使われたファイルかどうかが判りませんので、これを簡単に探し出す為に、以下の作業をしました。

まず、fileio_sd_card_demo_lfn のプロジェクトを開き、デモ用プログラムが全て正常に動作するように自身のハードに合わせて書き換えます。 そして、コンパイルが成功し、デモ用ファイルがSDカードの中に出来るようになりましたら、ソースファイル(拡張子が.c)のみファイル先頭か見やすいところに印を書き込んで置きます。 私の場合、先頭行に//20241208 のように日付を書き込みました。

以後、fileio_sd_card_demo_lfnのFilesタグの中に表示されるホルダー構造を頼りに左側にリストされたファイルをWindows(C:)/microchip/mlaの中から探し出し、専用ホルダーへコピーします。 この時、コピーしたファイルが目的のファイルかどうかは先ほど説明した印があるかないかで判別できます。

ヘッダーファイル(拡張子.h)にはこの印は付けなくても問題ない様でした。 この後、ビルドをかけてコンパイルエラーが出なくなったら、ヘッダーファイルも他の同じ名前のファイルとは互換性がなくなるファイルが出来てきますので、のちのちホルダーを移動したり、新規にホルダーを作る場合、ご注意ください。

また、mainとsystemファイルは、本来の目的のファイルとファイル名がかぶる可能性もありますので、それぞれSD_main SD_systemに名前を変更してあります。

この状態で、ビルドをかけると沢山のエラーが発生します。 それらは、インクルードファイルのホルダー表示が専用ホルダーにマッチしない為に発生しているもので、エラー表示を見ながら、該当する部分を修正していきます。

例えば、system.hの中に #include "driver/spi/drv_spi.h" という記述があり専用ホルダーにファイルを集めた場合、この記述ではエラーになりますので、#include "drv_spi.h" に修正します。

このエラーが出る都度、修正し、エラーが出なくなったら完了です。 カード内のファイルを全て削除したSDカードを差し込んで、プログラムを立ち上げると、デモファイルが出来ているのを確認できます。

私のXC16開発環境ではv1.60とv2.40がインストールされていますが、v2.40ではエラーが解消せず、v1.60でエラーなしとなりました。

ここまでのデモファイルはSDカードにテキストファイルを書き込むことしか出来ませんので、次に、SDカード内のファイルをPICで読み込む事が出来るようにします。 ただし、このファイルは9年前に作成し、その後紛失していますので、そのフローや動作仕様はすっかり忘れています。従い、思い出しながらいちから改造する事になりそうです。

思い出し作業を約2週間続けてきた結果、SDカード内に記録したファイル名を見つけて、それをLCD上に表示するところまで出来ました。 そして判った事は、書き込みは確かにロングファイル名で可能ですが、読み込みのデモソフトでは8+3形式の大文字でしか扱えないという事が判った次第です。9年前に自作のアンテナアナライザーにSDカードのファイルを読み込ませ、予めセーブしてあったSWRの周波数特性グラフをLCDへ表示する事に成功していたのですが、この時のファイル名は8+3の大文字のアルファベットと数字のみのファイル名でしたから、今回の問題が判りませんでした。 マイクロチップのロングファイル名のプロジェクトのファイル構成の中で、本来はlfnの文字が付くファイル名のはずなのに、lfnの文字の無いファイルを指定しているソースファイルがあります。

sd_spi.cのヘッダーファイルの中で、fileio.hとfileio_private.hはともにlfnの文字がついていませんので、これを二つともlfn付きのヘッダーファイルfileio_lfn.h及びfileio_private_lfn.hに変更しましたが、ロングファイル名にはなりませんでした。

Sdc_fname_disp_test

左のLCD画像が、SDカード内に記録したBMPファイルの表示内容です。 まだデバッグ中なので、画像ファイル名以外に余計な文字も見えますが、SDカード内にある4つの画像(bmp)ファイル名を表示しています。

実際のファイル名は全て小文字なのですが、全て大文字に変換されています。 オリジナルのファイル名は拡張子以外で16文字ほど有ったのですが、頭から7文字以降は切り捨てられ、8文字目は数字に変わっていました。 これは、懐かしいMS DOSの表記で、ロングファイル名が有っても、判別できるようにした当時のルール通りであり、8+3形式の表記は正しく動作している事にほかなりません。 LCDに表示されたファイル名は8文字に収まるようにrenameした後のものです。

この状況で、私の力ではどうにも出来ませんので、もし、ロングファイル名のまま読み込める解決方法ができる方がいらっしゃいましたら、公開お願いします。私の全ソースはLCD表示が成功したら公開します。

とりあえず、8+3表記のファイル名検索が出来ましたので、これから、bmpファイルをLCDへ表示させる事にトライします。

SDカードにセーブしたBMP画像を320x240ピクセルのLCD画面に表示させる実験は意外と早く実現しました。以下実験中の画像を紹介します。

Displaytest_bmp

Kagamiyama_nov_2

Penang_1

Asagao_1

Kagamiyama_feb


この実験に使った、BMPファイル以外の全てのファイルをzipファイルでダウンロードできます。

BMP_Display_2024.zipをダウンロード

全部のファイルを同じディレクトリーに置き、MPLAB Xにてプロジェクトを作りコンパイルが成功すれば、再現出来ます。

この実験の目的は、480x320ピクセルくらいのLCDを使い、写真を飾るフォトフレームを作る事でしたので、手ごろな価格のLCDを探す事にします。

配線図 BMP_disply_from_SDcard.pdfをダウンロード

INDEXに戻る

2024年11月10日 (日)

Z Match ATU 自動整合システムの検討

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

タイミングプーリーに付加したフォトセンサー検出用遮蔽版が大きくてケースの天面蓋が取り付けられないという問題の対策の為、タイミングプーリーの直径を一回り小さくした結果、天板の取り付けが可能となり、ATU本体のハード面は完成しました。 (前回記事参照

Zmatchatucmp3_2

Zmatchatucmp2_2

Zmatchatucmp1

前回の記事で判明したノイズに関しては、ケースインしても当然変化はないですが、モータードライバーをスタンバイモードにするとノイズは綺麗に消えます。しかし、この時、1/4マイクロステップで刻んだアドレスのバリコン角度は、一番近い1.8度ステップの停止位置に移動してしまいます。そこで、モーターのステップは1/4マイクロステップの4ステップ単位で移動し、バリコンの停止位置は常に1.8度の基本ステップの位置と同じになるようにし、バリコンがターゲット角度に達したらモータードライバーをスタンバイモードに移す事にします。 そして、バリコンの停止位置が粗くなり真のSWRディップポイントを飛び越えるような状態が発生するバリコン容量の少ない角度では、バリコンに直列にコンデンサを挿入し、スプレッドバリコンとして使う事により、この飛び越し現象を解消する事にします。 ただし、まだ、自動整合機能が未完成ですので、このスプレッド機能の追加は完成してから追加する事にし、たちまちは、最小4ステップによる1/4マイクロステップで検討を続行します。

1/4マイクロステップにこだわる理由は、モーターの騒音です。1/4マイクロステップの回転音は夜でも我慢できる音量と音質ですが、1.8度基本ステップの時は、昼間でも許容できない音量と音質で、どうしても1.8度ステップでモーターを回す必要があるイニシャライズの時のみは、じっと我慢するしかない音なのです。 (このステップは最終的に全ての動作状態で1/4マイクロステップに変更しました、)

自動整合のプログラムは、とりあえず現用中のバリコン式T型ATUのプログラムのタップ選択機能を廃止し、モーター駆動を時間指定で行っていたものをステップに置き換えた状態だけのものからスタートです。 7MHzの場合、シングルバリコンもダブルバリコンも容量最小付近が整合ポイントになり、例えば、両バリコンとも容量中央付近にある状態から自動整合をスタートさせると、その付近で行ったり来たりして、全く整合ポイントへ移動しません。 マニュアルで整合ポイント付近までバリコンを移動させて、整合を開始すると、ダブルバリコンはすぐに反応し、SWR最小ポイントへ移動しますが、シングルバリコンは現在位置で行ったり来たりして、結局、真のSWR最小ポイントを見つける事無く時間切れとなります。

まあ、今始まったばかりの整合アルゴリズム探しですから、これから、色々と実験しながら、最適な整合アルゴリズムを探す事にします。 ただ、かなり難攻が予想されます。

2024年12月末日

整合システムの検討が中断して1か月以上たちましたが、その他の雑用が多くてなかなか取り掛かれません。 その他の用が一段落しましたので、このZ Match ATUの検討に戻れるようになりました。 この検討再開に先立ち、コントローラーの表示をリニューアルしトライします。

Controllernewlcd

 表示をLCDに変更した事により、デバッグ情報をLCD上に表示可能となり、開発環境が大幅に改善したのですが、従来のキャラクタディスプレーに比べ、表示時間が10倍以上に増え応答が悪くなりました。この応答速度の悪さはLCDとシリアル通信によるところが大きく、元に戻すわけにもいきませんので、表示回数を出来るだけ減らす工夫をしながら検討を進めます。

このATUをケースに収納してから、各バンドの整合テストを行っていなかったので、手動による整合テストにトライしましたが、ハングアップがかなり頻繁に発生し、整合試験はいまだに出来ていません。 最大の原因はLCDと8MHzのクロックでSPI通信を行っていますが、このラインのリンギングが激しく、たちまちは、CLOCKとDATAラインに100Ωのダンプ抵抗を直列に入れて様子見です。 その他にもバグがありそうで、いつまで経ってもSWRが収束しません。

2025年の正月休みはバグ対策についやし、やっと成人の日になんとか基本動作が行えるようになりました。 最大の功績は、SWRを小数点以下2桁まで表示していたものを、SWRが2.0を超える状態では小数点以下二桁目を四捨五入して小数点以下1桁しか表示しないようにした事です。 自動整合はバリコンのどの位置からもSWR最小ポイントに行く訳ではなく、本来の整合ポイントの近くでSWR10くらいまで絞り込んだ場合、TUNEキーを押すと、SWR1.1以下に整合するようになりました。 この動作は、シングルバリコンを少々回したくらいではSWRが全く変化しないという、このATUの基本動作が影響しており、何度も時間をかけて自動整合を試みると、その内SWR最小ポイントを探しますが、それまで5分間くらいかかります。 5分も待つくらいなら、マニュアルでSWRが変化し始める角度までバリコンを回転させた後、自動整合をスタートさせると5秒から10秒くらいでOKとなります。 さらに例えマニュアルでも一度整合条件を記憶して置けば、数秒で整合状態になりますので、これ以上のアルゴリズ探しは諦めました。

一応50Ωのダミー抵抗で1.8MHzから28MHzまで整合できます。 整合状態の最小SWRは、10MHzのみ直列のインダクタを有効にして1.7くらい、その他のバンドは直列インダクタなしでSWR1.08以下となりました。

今後、他のインピーダンス負荷でも行えるかなどの確認を行いながら、バグ取りを続けます。

ステッピングモーターから出るノイズ対策はまだですが、モーターを回す必要がある時以外、PWM回路をST-BYにする検討もこれから行います。

Zmatchatu250113

デバッグ中のZ Match ATU
 

1.8MHzから28MHzバンドまで50Ωの抵抗負荷なら曲がりなりにも整合が取れるようになり、かつマニュアル操作でバリコンを思い通りに動かせるようになった事から、抵抗負荷の整合範囲の確認を行うと、これがさっぱり駄目になります。 15Ωの抵抗負荷でどのバンドもSWR2以下になりません。 500Ωの抵抗負荷ではSWR3以下になりません。また、いずれの抵抗負荷でもSWR5以下にならないバンドが大半です。 どうも、オリジナル設計のコイルをサイズダウンした事、バリコンの最小容量がオリジナルより10PFも高い事も影響しているようです。 そこで、原点に戻り、対策を考えねばならなくなりました。

 

デバッグ中にLCDがハングアップする問題が出続けていました。 CLKとSDAラインには100Ωをシリーズに追加してリンギング対策をしていたのですが、その他の制御ラインにも100Ωのシリーズ抵抗を追加したら、多少は改善しましたが、まだ完全では有りません。 

LCDのSPIクロックを8MHzにしても、LCD表示には数十msecの時間がかかり、送信側でのタイミングによては送信したデータが処理されないという問題が付きまとっていました。1回送信する度に150msec以上の待ち時間を取ると、ほぼOKなのですが、この状態では自動整合の動作が非常に遅くなり、当初目標としていた35秒以内に整合完了するという現用のVC式ATUと同じターゲットが達成できません。 そこで、ATUユニットからコントローラーへ送る場合、その前に送った送信データを受信し、ディスプレーを含むコントローラー全ての処理が終わったら、完了信号をATU側に返し、この完了信号を受信するまでは次のデータを送信しないという対応を行いました。

まだバグがあるかも知れませんが、なんとかハングアップなしで動いています。

次に15Ωから500Ωまでの抵抗負荷に対して整合しなかったり、整合してもSWRが2以下に下がらない問題に対して、コイルの巻き数とタップ位置を見直す事にしました。

この見極めはVK5BRがホームページで公開している、SVCとWVCの容量に最も近くなるようにコイルの巻き数やタップ位置を選ぶ事から始めます。

7MHzで50Ωの負荷抵抗に整合した時のバリコン容量はこのVK5BRのデータを読み取り

SVC=130PF WVC=30PF でした。

一方、私のATUのバリコンステップから読み取った7MHz 50Ωの時の各VCの容量は

SVC= 160PF WVC = 40PF

この状態はコイルのインダクタンスが不足している状態ですので、まず、メインのコイルの巻き数を13Tから14Tに増やし、SVCのつながるタップ位置を9Tから10Tに変更しました。

Maincoil14t_3

すると、整合時のVCの容量は以下のようになりました。

SVC=130PF  WVC=37PF

この状態で負荷抵抗を変えて確認したVC容量は下の表のようになりました。

40m_tunedata_2

 

 SVCはオリジナルと同じ容量になりWVCはやや多い値になっていますが、以降、この状態で全バンドの整合確認を行ってみます。

下の表の中で表示されているのは各バリコンの容量値ですが、実際に容量を測定した訳では有りません。バリコンの角度は180度を1500ステップとしてLCDに表示されますので、そのステップ数から、最小容量30P、最大容量350P、そして、その間はステップ数/1500で直線的に変化するとして計算されたものです。 実際値と合致はしませんが、傾向は把握出来ます。

Z_match_all_band_data_2

この表で、黄色の部分はモーターの4step分解能では自動整合出来ず、一番低いSWRになるようにマニュアルで設定した時のデータになります。(表をクリックすると拡大できます) このデータ取得中にメインユニットやコントローラーユニットがハングアップする事がありました。 メインユニットはRFキャリアによる誤動作で、コントローラーはLCDのSPIのようです。 しばらくはこれらの対策に時間がかかりそうです。 

まず、メインユニットのハングアップ問題から。 症状は21MHz以上のバンドで100W CW送信すると、ハングアップするものです。 リレー、角度センサー、SWR計の順序でコネクターを抜いても改善しません。 ステッピングモーターのコネクターを2個とも抜くと、28MHzまでOKとなります。 全てのコネクターを挿入した状態で、オシロスコープのGNDをメインユニットの基板のGNDに繋ぐと、24MHz以上はNGですが、21MHzはOKとなります。 コントローラーとメインユニット間のケーブルにコモンモード電流が流れているみたいなので、測定してみました。 オシロのGNDを繋がないときが70mA以上、オシロのGNDを繋ぐと35mAくらいになります。 そして、オシロのGNDを繋がない状態でステッピングモーターのふたつのコネクターを抜くと、5mA以下になりますが、ATUとして動作しません。 ここまでの確認で、モーターのワイヤーから漏れたRF信号が悪さしている事は確かなので、まず、モーターの電源ラインの+側とGND側に15uHのチョークコイルを入れました。 さらに、コントローラーから供給する12Vラインにコモンモードフィルターを追加しました。 このコモンモードフィルターは村田製のSMDタイプで品番がPLT5BPH5013R1SNという長い名前になりますが、許容電流3.1A 10MHzでのインピーダンスが350Ωくらいのものです。メイン基板にこの変更を盛り込んで、メインとコントローラー間のケーブルに50uHくらいのフェライトコア5個によるフィルターを付けた状態で28MHz 100W CW送信でも誤動作しなくなりました。 このフェライトコアによるコモンモードフィルターの効果を調べる為に、巻いたコアを1個づつ外していくと。最後の1個ではNGで2個のコアの時OKとなります。 恒久的なフェライトコアによるコモンモードフィルターを作る為に2個のコアの時のインダクタンスを測ると18uHでした。 この数値はメモして置きます。ちなみにこれらの対策後のケーブル上のコモンモード電流は7mA程度まで小さくなりました。

21MHz以上で自動整合は出来ないが、マニュアルならなんとかSWR1.1以下に追い込めるという現象がありましたので、自動整合の時の移動ステップを最小1stepとしてみると、21MHz以上のバンドではOKとなりますが、7MHz以下のバンドではベルトのバックラッシュが影響しているようで、なかなかSWRが収束しません。 最小ステップは2stepの時、全バンドOKになります。 当初この細かいstepは不可能だから、スプレッドバリコン方式でやると考えていましたが、いざスタンバイ機能をプログラムに追加して動作させると、モーターがスタンバイ状態になっても、ベルトでつながれたバリコンの負荷が重くて、モーターのプーリーは動きません。 スタンバイ状態でもモーターの軸の角度は保持しているようです。 以降の検討は最小2stepのままでどれくらいステップ角度がずれるか見てみる事にします。  何度も整合テストを行っていると、SWR1.1以下になるVCのステップ数は多少バラツキます。原因はSWR最小ポイントではなく、整合途中に最初にSWR1.1以下になったポイントを整合ポイントと定義しているからですが、この1.1以下の範囲は意外と広く3.5MHzで10くらい、28MHzで3くらいはあります。

Zmatch_spi

左の波形は100Ωを追加した後の、SPIクロック波形です。 一番上がPICマイコンのCLK出力。真ん中は5V-3.3V変換IC74LCX245の出力端子につながった100Ωを通過した波形。 一番下は、約20cmのワイヤーを経由してLCDの端子に差し込まれたコネクター端子の波形です。いずれも少しづつ劣化はしていますが、ハングアップが起こりそうなハイレベルのパルスはないし、マイナス側にはみ出すパルスもありません。 LCDがハングアップするのでは無く、コントローラーに使用されているPICがハングアップするのかも知れません。 前述のように、RF混入によるコモンモード電流をかなりのレベルで対策出来ましたので、これでしばらく様子を見る事にします。

50Ωの抵抗負荷にて、WVCを最大容量にしてもSWRが1.1以下にならなかった10MHzですが、実際のアンテナのインピーダンスは240+J650Ωくらいなので、実際のアンテナに接続してから対策を考える事にします。

WVCの一方が6.5Tのタップ位置に接続されていましたので、これをオリジナルの7Tに変更して、全バンドの整合条件を確認してみました。

Z_match_all_band_data2

結果は前回の6.5Tより良くなりました。 また、各バンドの最初の整合条件を探すとき、マニュアルで整合しそうな位置までバリコンを回転させ、自動整合をスタートさせると、今回は最小移動ステップを2stepとした事もあり、全バンド、全負荷条件で自動整合が成功しました。 また、今回1KΩの負荷での確認もおこないましたが、結構広範囲で整合する事も判りました。 今回のタップ位置変更で7MHz 50Ω時のVC容量がオリジナルの値よりずれてしまいました、この補正が必要かどうかは実際のアンテナに接続してから考える事にします。 このZ Match ATU本体はベランダに置きますので、カットアンドトライはいつでも行う事ができます。

ATUの電源を切ってすぐに電源を再度ONした時、最初のステッピングモーターのイニシャライズが失敗する事がたまに起きていました。 そこで、7.3Vを作るDCDCの前後に入れてあった2個の2200uFの電界コンデンサを廃止してみました。 すると、電源OFF時の放電時間が短くなり、1秒以上待つと異常動作が起こらなくなりました。 ただ、全くゼロにするのは、回路の安定度にもかかわることなので、このDCDCの入力部には10uF,出力段には100uFのコンデンサを追加して恒久対策としました。

ダミーを使った実用テスト中に突然、ATU本体のUART受信が出来なくなりました。 原因を探すとATU本体のRX1端子にDCレベルがマイコン内部から漏れており、この端子が何らかの原因で壊れたものでした。基板を裏返して原因を探すと、12V電源ラインで不要になったワイヤーの片方が絶縁されていない状態でブラブラと揺れていました。多分このワイヤーがRX1のつながっているRC7端子に接触したのではないかと推測されます。 対策はPPC機能を使い、RX1の入力をRC1に移しました。 これでUARTの受信機能は回復しましたが、今度はSWRが5以下に下がらないという問題に遭遇しました。 AD入力端子をモニターすると入力オープン状態で、DC電圧の漏れがあります。 他の入力端子を確認してもすべての入力端子にDCオフセット電圧が発生していました。 かつPICの消費電流だけで100mAを超えます。 PICマイコンそのものが壊れてしまったみたいです。 ICの部品箱をひっくり返すと何に使ったのかも忘れてしまったPIC18F47F42が見つかりましたので、PICを交換し、プログラムを書き込むと、また正常に動き出しました。 ブラブラの12Vラインにつながったワイヤーはもちろん取り除きました。

ただ、この整合試験中にMAINマイコンがハングアップする事が有りました。 このハングアップの現象を確認してみると、VCステップが0又は1500の時発生し、ATUとして整合出来ない状態になっており、タイムアウトでエラーにならなければならないのですが、タイムアウト検出ルーチンを通過することなく、同じループをグルグル回っているだけと判りました。 原因がわかれば対策は簡単でした。

 

コントローラーをケースに入れました。 まだデバッグ中ですので、LCDの保護シートが付いています。また、ここまで出来て電源スィッチの在庫が無い事に気が付き、慌てて秋月に注文しましたので、まだ取りついていません。 今回のBOXは中華製で直取りです。送料込みで1300円くらいでした。 前後のパネルが電気的に接続されていないという構造では有りますが、コントローラー程度なら問題ないでしょう。 材料はアルミでは無く鉄板で青色に塗装されていました。パネル面には光沢印刷用紙の裏側にインクジェットプリンターで印刷した紙を張り付けましたので結構綺麗に仕上がりました。(光沢面に印刷した場合、すぐに傷がつくのであえて裏側に印刷)

ケースの底面にプラスチック製の足が付いているのですが、その位置が不適切で、底面を有効に使えません。 そこで、付属の足は廃棄し、ケースの四隅ギリギリに市販のゴム足を取り付けました。

Zmatch_case_in1

Zmatch_case_in2


一応、気が付いたバグは対策しました。  このATUを実用する為には、屋外作業が山の様にありますので、温かくなる春まではバグ探しを続けます。

ここまでの配線図とマイコンプログラムを公開します。 

ATU本体回路図 zmatch_atu_main_03.pdfをダウンロード

コントローラー回路図 Z-Match-ATU_contoroller_02.pdfをダウンロード

ATU本体プログラム Z_Match_ATU_main_03.cをダウンロード

コントローラープログラム Z_Match_ATU_controller_3.cをダウンロード

ヘッダーファイル Z_Match_FreqRang_0.hをダウンロード

         StepFreq_List_1.hをダウンロード

         Font9.hをダウンロード

         Font12.hをダウンロード

Atchcontpannel

電源SWを入手できましたので、通電出来るようになりました。 使った感じでは、少々重さがたりませんね。プッシュSWを押す時、左手でケースを押さえていないとコケそうです。
 

このATUには3種類のアンテナを使い分けるアンテナセレクターは付いていません。 アンテナセレクターは別BOXとしてマストに括り付けます。

 

INDEXに戻る

2024年11月 3日 (日)

LCD NFP190B-21AF PICで表示

TFT LCDはaitendoから仕入れる事が多かったのですが、理由はPICでドライブできそうな情報が見つかりやすかった事です。 最近3Dプリンター用の部品をAliExpress経由で買う事が多くなり、その中で、かなり安価なTFT LCDも見つける事ができます。 ただし、ここでの買い物は商品説明も少なく、またWEB上でも使い方を公表しているブログも少ない為、二の足を踏んでいましたが、SPI仕様で700円台で手にいるNFP190B-21AFというLCDが目に留まり、ST7789でドライブしているとの事。 同じSPIドライブですがIC名はST7796というGMT024-08-SP18Pという品番のLCD各1個を入手しました。

過去、ST7789をドライバーに使ったLCDは使用した事は有りませんでしたが、コマンド系がST7735とコンパチのILI9163CによるLCDは沢山使ってきた関係で、情報が少なくても、動作出来るかも知れないと購入しました。

事前にドライバーICの仕様書を入手し、すでにPICで実績のあるプログラムと同じで有る事を確認できましたので、実際に試作開始してから2日目にはグラフや文字の表示が出来るようになりました。

以下、その時の配線図とPIC用のプログラムを紹介します。

プログラムの検討はNFP190Bにて始めました。 LCDに表示するのは文字とグラフィックを含めた静止画ですから、LCDのイニシャライズも必要最低限にとどめています。

Nfp190b_1

左が、ディスプレーが成功したサンプル画面です。 新しいLCDの表示テストを行う時、RGBの構成が仕様書と異なる問題に遭遇しますが、今回も、仕様書上ではRGBの順序でカラーコードを設定するように書いてありましたが、実際はRBGの順序でした。 しかもこのLCDドライバーはRBG「255,255,255」が黒色で「0,0,0」が白色になっており、過去のどのドライバーと比較して正反対でした。 データシートを詳しく見てみると、縦長に置いた状態で上から、左からのスキャンなら、通常のRGBですが、横長に置いた時のスキャンモードなら、このようになるみたいです。  また、LCDのピクセル構成も書いた資料が無く、表示が出来るようになって調べたら320X170ピクセルというLCDでした。 しかもYのレンジは35から204までの上下をカットした配置となっていました。 ピクセル単位で描画する時は要注意です。

下は、検討用に製作したPIC18F14K50を乗せた実験基板と実験中のLCDです。

Nfp190b_2

配線図は以下の通りです。 インターフェースがSPIですから、回路図は単純です。 ただし、応答速度はパラレル接続より目に見えて劣ります。 デバッグが完了したらクロックの限界を確かめる事にしますが、今は8MHzでの検討です。 このドライブ操作を高速にするため、SPIのSSPBUFにデータを書き込んだ後、2usecのディレーを設けていますが、これを1usecにした途端LCDは表示しなくなります。 2usecと1usecの間に動作OK/NGの境界線があるのですが、それがいくらなのかは判りませんでした。 ただし、このディレー時間はクロック周波数にも大きく関係しますので、最初は20usecくらいに設定して置き、うまく表示できるようになりましたら、次第に小さくして、NGになる時間を見極めた後、その時間の2倍くらいに設定するのが良いようです。

Nfp190b_schema

テスト用プログラム LCD_NFP190B_test.cをダウンロード

テストに使ったフォント Font6.hをダウンロード

上のプログラムはNFP190B用ですが、ピクセルサイズを320X240としたGMT024用に修正した時の表示画面は以下のようになりました。

Mt02408

所で、XC8でconstを使ってデータをプログラム領域に埋め込もうとしますが、全部RAMエリアに配置されすぐに満杯となりエラーになります。 PIC24Fでは32Kバイトを超えるデータをプログラム領域に配置できたのに! WEBをぐぐるとXC8でのconstは256バイト以下に限るとの情報が見つかりました。 グラフィックを仕込めなかった原因はこれですね。 

色々情報が得られたところで、通常のGIF画像のカラー情報をそのまま表示できる仕様に変更しました。 カラー構成は「RGB」とし、黒色は「0,0,0],白色は「255,255,255」としたプログラムに書き替えました。

また、SPIのクロックの最高周波数の見極めができましたので8MHzに設定してあります。 

修正したプログラム LCD_NFP190B_test2.cをダウンロード

使ったフォント Font7.hをダウンロード

このプログラムで表示した状態は以下です。

Nfp190b_3_2

さらに、GIF画像の表示にトライしました。 320x240ピクセルの画像データをPICで扱えるフォームに変換したのですが、メモリー不足でエラー。240x180ピクセルもエラー、やっと160x120ピクセルのデータなら、なんとかPIC24FJ128GB106のデータメモリーの中に納まりましたので、ひまわりの写真とペナン風景を160x120の画像に縮小し表示にトライしました。

Himawari160x120

Penang160

最初、LCDを横長にして、表示にトライしましたが、カラー画像がどうしても再現出来なく、困りはて、LCDの標準置きとなる縦長にし、かつ、カラーモードを6-6-6bitの18bitモードしして、やっとオリジナルのカラーモードに設定できました。 その後で横向きにしてもちゃんと色を再現しています。 ただし、元がGIF画像ですので、色は最大で256色しかなく、このふたつの画像とも256色中の110色くらいでしか描画していません。

この画像は、PC上で表示されたGIFの画像のピクセルデータを読み取り、一度6-6-6bitのカラーデータに変換した後、互いに異なるカラーコードに連番のindexを付け、各ピクセルに対応するindexとindexが対応するカラーコードのみをPICのデータメモリー(const指定なので、実際はプログラム領域に配置されている)を確保し、パレット方式と呼ばれるこのカラーコードを6-6-6bitのモードでLCDメモリーへ転送したものです。 左の写真では、かなり粗く描画されているようですが、実物を目で見た場合、結構綺麗に再現しています。 今後、サイズの大きな画像表示にトライする事にします。 

GIF画像表示のプログラム GIF_display_test3.cをダウンロード

GIFピクセルデータ penang160_data.hをダウンロード

GIFカラーコード penang160_cord.hをダウンロード

実験用配線図 LCD-TEST_pic24FJ.pdfをダウンロード

配線図にはSDカード用ソケットも描かれていますが、まだソフト上では対応していません。

 

このLCD表示装置にSDカードを接続し、SDカード内のbmpファイルをLCDへ表示する為の準備を始めました。

  

INDEXに戻る

2024年10月30日 (水)

Z-Match ATUの製作 2

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

最初に手配した80歯のタイミングプーリーの直径は用意したケースの内寸以内だったのですが、バリコンの最大容量を検出する為に用意したフォトセンサーの遮蔽体がケースの内寸をオーバーし、天板を取る付けられないという問題がありました。(前回記事) この時のタイミングプーリーの直径は55mmでしたが、フォトセンサーの遮蔽体の直径は73mm必要となる事を見落としていたのが原因でした。 対策として60歯のタイミングプーリーに交換する事にしました。 60歯のプーリーの直径は44mmでこれにフォトセンサー用の遮蔽体を追加した時の直径は62mmとなり、なんとかケースの内寸に収まります。 この変更が可能になる条件はステッピングモーターの1/4マイクロステップが解決しました。 従来の80歯のプーリーの場合、モーターは1.8度の1/4(0.45度)刻みで回転しますが、バリコンはタイミングプーリーの減速比 1/5で0.09度刻みで回転します。 この0.09度刻みはベルトのバックラッシュで吸収されてしまう角度で実質3ステップとなる0.27度が最小分解能でした。 今回60歯のプーリーを使えば、その減速比は1/3.75となり、VCの最小回転角は0.12度となります。 ただし、ベルトのバックラッシュを吸収できるステップではないですが、この2倍の0.24度ならほぼ確実にバックラッシュを超える事ができます。

以上の考察からプーリーとベルトを変更する事を決断し、かつ、ベルトのたるみの調整機能が無かったシングルバリコン側にもその調整機構を追加します。 

下の写真は60歯のプーリーに交換し、かつそれにマッチしたベルト掛けを行った状態です。

60t_pully_1

60t_pully_2

上の写真はベルトの張力調整を兼ねたバリコン軸のタワミ補正治具(左側)を取り付けた状態です。

 

60t_pully_3

フォトセンサーの出力がリンギングして、誤動作する為、コンデンサを追加して、動作の安定化を行いましたが、その時のコンデンサの容量の許容誤差の範囲が狭いという問題がありました。 そこで、このフォトセンサーの仕様書を入手して確認したところ、標準の使い方はエミフォロ回路で有る事が判りました。 そこで、エミフォロ(エミッターに負荷抵抗を接続した正式名称 エミッターフォロワー回路)に改造すると、きれいなスィッチング波形が得られました。コンデンサは無くてもOKなのですが、前回追加した0.1uFのままで進行します。 ただし、この変更で論理も逆転しますので、プログラムも修正しました。 そして、マイコン基板を接続し、やっと前回の80歯の時の動作まで再現できました。

ここから、いよいよ本命である自動整合機能の検討に移る事が出来る様になりました。

MAIN Unit 回路図   zmatch_atu_main1.pdfをダウンロード

コントローラー回路図 Z-Match-ATU_contoroller-1.pdfをダウンロード

ATU本体のプログラム Z-Match-ATU-main_02.cをダウンロード

ここにアップしましたプログラムは開発途中のもので、自動整合システムはまだ稼働していません。 唯一完成したのが、1/4マイクロステップで動作するステッピングモーターの台形駆動システムのみです。

  

最初にSWR計の動作チェックを行いました。 7MHzで動作チェックしようと、FTDX101Dをつなぐと、すごい受信ノイズです。S9あります。 最初、何のノイズか判らなかったのですが、ステッピングモータードライバーのPWMが原因でした。 以前、アンテナワイヤーをドライバーICに近づけるとS7のノイズが出ていましたが、アンテナ線を離すと、距離に応じてノイズは小さくなり、1mも離すと無視出来るくらいになりましたので、ここまでひどいとは考えていませんでした。 この状態ではアンテナチューナーとしては使い物になりません。 完全な致命傷です。

解決策があるのかを含めて再検討必要です。

INDEXに戻る

2024年10月 6日 (日)

Z Match ATU コントローラー

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

ATUの本体(Main Unit)のステッピングモーターの初期設定や、プリセットした位置にバリコンを回転させる機能は完成しましたが、自信でSWRを測りながら、SWR最小ポイントを探すという本来のプログラムは全く手が付けられていません。 理由は、ATUをコントロールするコマンド送出手段やATUの状態を手元で確認できる手段が未完成だからです。

そこで、ATUのメインユニットの開発は、途中で止めて、コントローラーの制作にかかる事にしました。 コントローラーとして完成度の高いのは前回製作し現用中のバリコン式T型ATUですが、マイコンが古くて、そのまま利用する事が出来ません。 従い、さらにそれより前のリレー式ATUのコントローラーのプログラムをコピーして、周辺機器の機能はリレー式のプログラムから、動作の基本はバリコン式のプログラムからコピーし、コンパイルすると、エラーばかりのプログラムでしたが、約1週間、奮闘した結果エラーも収まり、ATUに向かってコマンドを送る事が出来るようになりました。

Zmatch_controller_0

上のボードはいつもの仮パネルにより動作確認できるように組んだコントローラーの全体です。 

Z Match ATUコントローラー配線図 Z-Match-ATU_contoroller-0.pdfをダウンロード

コントローラーとATU間の通信確認をしましたが、さっぱり通信出来ません。 UART通信の初期設定に帰って原因を確認していますが、どうも送信時のP-MOSのスイッチングスピードに問題が有りそうです。 デジタルオシロで観測するとパルスのデューティが変わっていました。 

Flistinitcomp1

そこで、PICKit3の修理に使った+/-50mAの出力能力がある74LVC1T45というラインドライバーに変更し、このドライバーの極性に合うようにUARTの送信極性も変更すると、晴れて双方向通信が出来るようになり、コントローラーから周波数リストをメインユニットのEEPROMに書き込めるようになりました。ここまで1週間かかっています。

双方向通信が可能になった最初の機能追加は、マニュアルによるバリコンのアップダウンです。キーのチョン押と連続押に対応して、バリコンが回転できれば、ATU化する為のアルゴリズムを突き止める事ができます。 チョン押の時のバリコンの回転角度は後で好きなように変更できますが、この機能が完成するまで3日間かかりました。

このマニュアルでバリコンを回転させる時、29MHzでキーのチョン押を行うと、SWR最小ポイントを飛び越していく事が判りました。この実験の時のモーターの回転ステップは1回のチョン押で10ステップでしたので、飛び越しが起こらないように1回のチョン押で2ステップしか回転しないようにすると、バリコンを180度回転させるための時間が10秒以上かかってしまいます。 特に1.8MHzの時のシングルバリコンのSWR変化率は29MHzのダブルバリコンの1/10くらいしか無く、2ステップのモーター回転ではSWRはほとんど変化しなく、自動整合の時間が大幅に長くなってしまいます。 そこで、シングルバリコンとダブルバリコンのチョン押時のステップ数にも差を設ける事にしました。 

その後の検討で、このシングルバリコンとダブルバリコンのステップ差は無しにし、最小ステップは2という事で落ち着いています。 代わりに、チョン押のとき2stepと8stepを切り替えるスィッチを追加しました。

ここまでソフトが出来た時点で、一旦、ATUを分解し、バリコンプーリーを80歯から60歯に変更し、バリコン最大容量検出用のフォトセンサー回路と位置を変更し、ATUの天板をかぶせる事が出来るようにします。 このプーリー変更に伴い、タイミングベルトも交換になりますが、プーリーを変更して、ベルト長を実測し、中国の販売店に注文しました。 注文して5日後にベルトが到着しましたので、その日の晩に交換作業を行い、実働テストまでこぎつけました。

 

INDEXに戻る

2024年9月22日 (日)

Z-Match ATU 製作開始

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

Z-Matchチューナーに必要な高耐圧2連バリコンを実現する為、シングルバリコン2個をステッピングモーターで同期駆動するバリコン駆動機構が完成しましたので、これをATU化する為にケースインしました。

Zmatchatu_system1

モーター駆動バリコンに初期化位置検出用フォトセンサーを追加して、バリコン機構は完成です。 SWRを検出するCM結合器も追加しました。 今回、ケースとしてコメットのCAT-300のキャビネットをつかいますが、コイルがオリジナルのサイズではどうしても収納できなかったので、直径を57mmから47mmに変更しました。さらに高さを抑える為に銅線の中心ピッチを6mmから4mmに変更し、ほぼ同じ巻き数で同等のインダクタンスが得られるようにしました。このピッチを狭めた事により銅線間のショートの可能性が発生しますので、オリジナルではコイルサポートが2か所でしたが、これを4箇所に増やしました。 この絶縁材のサポーターは、100均の板厚3mmのまな板で作りましたので、銅線を通す穴径は2.2mmとして、前回より簡単に作成できました。 このケースの中には、2次コイルに直列に入るコイルと1.8MHz対応のコンデンサ追加の為のリレーはまだ実装しておりませんが、そのスペースは確保してあります。 ATUとして動作させるためのコントロール回路はこのケースの外側に小さな金属ケースを取り付けその中にマイコンを実装した基板を収納させます。 モーターを配置するスペースが無く、やむなくふたつのモーターを縦に重ねたところ、ケースの天板が当たります。 最終的には当たっているコネクターの向きが横になるようにモーターの取り付けを90度回転させ、リード線が隣のバリコンに当たらないように線処理するつもりです。また、モーターを固定するアングルもカットします。

Main Unit 配線図 zmatch_atu_main0.pdfをダウンロード

配線図はVCのモーター駆動に関する動作は確認済みです。 nEN端子にSWを設けたのは、頻発するプロググラム書き換え時、モーターが勝手に起動するのを防ぐ為、プログラム書き換え中、モーターをOFFする為です。

ATU本体と基板全ての配線が完了し、動作チェックを行った後、マイコンソフトの開発に取り掛かります。

ATUの開発も初期のバリコン式ATUから数えて4回目になりますので、結構ノウハウも溜まってきて、このATUのMainユニットには操作キーは1個もありません。 Mainユニットの基本ソフトができたら、すぐにコントローラーを作成し、全ての操作はコントローラーから行います。このため、UARTの通信速度は9600ボーに設定し、Mainユニット内の情報を出来るだけ早くコントローラーの表示器に表示する事を目標とします。 今までは、Mainユニットの中にプリセットコールが有効なBand分割を予めプログラムしていましたので、アンテナを実際にアップした時、周波数分割が実態と合わなくなる事がありました。 周波数変更してもSWRの変化が少ない場合、問題ありませんが、隣の周波数帯に移る前にSWRが1.5を超えるような場合、ATU本体を一度降ろして、周波数分割データを書き換える必要がありました。 今回のATUより、この周波数分割データをコントローラーから書き換える事が出来るようにします。 

ATUの実装状態として、このATUはベランダに置き、出力は平衡出力Onlyとします。 そして、実際のアンテナの給電点まではラダーラインで給電し、マスト上に括り付けたアンテナ切り替え器にて、ループや垂直、ロングワイヤーの選択が出来るようにします。 この構造により、マスト上のBOXはアンテナ切り替えのリレーだけとなり、小さなBOXに変更して風圧を軽減できます。 また、ATUのメンテも楽になります。

 

製作開始してから1週間、やっとメインユニットの基板が完成しました。

Zmatchpcb1_3

まだ、電源系統の確認が終わったばかりですが、以降実際にソフトを作成し、まずは各バリコンが予想通り動くかの確認になります。 すでに無負荷での動作確認は、前回の記事で紹介しておりますが、負荷がかかった状態で夏冬の環境でも動作出来る条件の確認が必要です。 それを実験出来るような恒温槽はありませんので、ある程度の余裕を見て、最低電流の値を決定する事になります。 このへんは決まった計算式がある訳でもありませんので、かなりいい加減なあてずっぽで決めます。

とりあえず、ふたつのモーターが動作するようになりましたので、2連VC側のモーターが正常に動作する最小電流を調べてみました。75mAで誤動作が起こります。100mA、室温26℃では異常なしでした。 余裕をみて、250mAで電流制限をかける事にしました。 シングルVC側も250mAに設定しました。 以降、この状態で運転し、不都合があれば都度最適値に修正する事にします。

次に、電源投入したら最初にモーターの起点を初期設定します。 やり方はバリコンの位置がマイコン上から不明の状態ですので、まず、正回転(容量が抜ける方向CW)へ360度回転させ、フォトセンサーがOFFからONになる所見つけて一旦停止した後、同じ方向に25度だけ回転させ、次に逆回転(CCW)させ、フォトセンサーが容量最大位置でONになるのを検出したら、その位置で停止し、この位置をゼロとし、180度の位置(容量最小位置)を500と定義します。 このイニシャル動作時、モーターは1.8度ステップ、200Hzのクロックで回転します。 この200Hzはマイコンの中のクロックの事で、モーターのパルス周期(PPS)はこの半分の100PPSとなります。 このイニシャル動作の最初の回転の時は、バリコンの現在位置が全く判りませんので、360度回転させ、VC最大容量付近で停止させ、そこから、本当のゼロ番地を探しにいくのですが、何回もテストしていると、容量最大では無く容量最小位置に止まる事が頻発しました。 ソフトの作りが悪いのかと1週間近くああでもないこうでもないとやったのですがうまくいきません。 とうとうハードの部分まで疑いデジタルオシロをつないで、フォトセンサーの出力をモニターすると、ONの時は問題ないのですが、OFFのとき、電源電圧をフルスィングするほどのリンギングが出ており、このリンギングのバラツキで誤動作する事が判りました。対策は、コレクタ抵抗を12Kから120Kに変更し、かつコレクタとGND間に0.1uFのコンデンサを追加する事で解決しました。 しかし、このコンデンサを0.047uFまで小さくしたり、0.22uFまで大きくすると即誤動作しますので、最終的には温度変化を含めてカットアンドトライが必要になるかも知れません。(配線図は修正済み)

この最初のモーター回転時、数100msec後に一旦モーターが停止し、またすぐに回転を始めますが、この時間がランダムで変化し、時には一時停止しない事もあります。 原因が判らないので、ダミーで45度くらい回転させた後、VCの容量最大位置を探すようにしました。 また、この容量最大位置を探す時は逆方向(CCW)で行うとイニシャライズ時間が短くなる事が判りましたので、モーター回転方向も変更しました。

次に、ラストデータとして記憶されているふたつのVC位置を読み出し、その位置にVCをプリセットして、初期設定完了です。 このプリセット時は通常回転ステップとなる1.8度の1/4(0.45度)、400Hzのクロック(200PPS)で動作します。 180度の位置は2000ステップ目となります。 バリコンの回転速度は、前回作成したT型ATUのVC回転速度と同じくらいです。 しかし、何回もテストを行うと、正転と逆転の時のバリコンの回転角度が一致しません。 脱調と呼ばれる現象らしいのですが、その原因はモーター電流や、ステッピング周期に関係があり、かつモーター自身の個性とドライバーのアンマッチなど調べれば調べるほど心配ごとが出てきます。 今回の脱調の原因は電流ではなく、ステップ周期でした。400Hzクロックのとき脱調が起こり、200Hzでは起こりません。しかし、200Hzで1/4マイクロステップでは時間がかかり過ぎます。 モーターの仕様書では無負荷状態で、最大起動レートは1000PPS以上となっていますが、負荷をかけた場合どのくらいになるかは判りません。 これは実際の負荷で限界値を調べるしかなさそうです。 今後さらに脱調対策を進めていきます。 ここで台形駆動という方式について勉強しました。 高速でモーターを回転させたいときは100ppsくらいでスタートし、徐々に回転数を上げ、最高速度で一定期間回転させた後、目的の角度に近づいたら逆に徐々に速度を落とし、100ppsまで落として停止させるのだそうですが、それをC言語で組んでトライする事4日間。やっと最高速度400ppsまで実現できました。 

この1/4ステップで400pps駆動中の騒音は1.8度基本ステップで駆動中の騒音に比べ、大変静かです。 そこで、電源投入直後のイニシャライズも1/4マイクロステップで実行してみました。 方法は、VCの容量最大位置を検出し停止したら、この位置を仮の原点として、CW方向に100ステップ(VC角度で9度)回転させた後、1.8度ステップでCCW方向に回転させ、停止した位置を真の原点とします。 このやり方の場合、騒音がうるさいのは真の原点を見つける時の9度の回転だけですから、大幅な静音化が実現できました。 しかし、この動作は電源OFFの期間が3分以上あるときだけで、数秒から3分以内のOFF時間では、最初の1/4マイクロステップ動作がうまくいかず1.8度ステップで回転する時間が長くなります。 原因は電源回路に2200uFの電界コンデンサが2個挿入されており、電源OFF時この電解コンデンサの放電が遅く、モータードライバーがリセットされないことのようです。 ICの説明ではSTANBY端子をLOWからHIGHにした時RESETされると書いてありますが、RESETされるのは一部のみで、IC全体がRESETされるのではないようです。 対策として、なるべく早く放電するように電界コンデンサの両端に1.5KΩの抵抗をパラ付けしました。 この結果、電源OFF後、5秒以上経つとICがRESETされるようになり、正常にイニシャル動作を行います。

ATUとしての組み立て、配線が完了しました。 いざ、天板を取り付けようとしたら、フォトセンサー用の遮蔽板も天板に当たります。 これが判った時点で、天板を取り付けるのは一時諦めたのですが、前述したモーターのコネクタの高さ変更が一応できましたので、プーリーの径を小さくして天板がかぶるように検討するつもりです。

マイコン基板の中に、12Vから6Vを作るDCDCコンバーターをマウントした為、この基板を収納する金属ケースの蓋も取り付けられません。 これより小さなサイズのDCDCコンバーターは沢山あるのですが、スィッチング周波数50KHzというコンバーターはこれしか無かったので、やむなしです。 小型のDCDCコンバーターのスィッチング周波数はMHz帯のものが多く、アンテナのそばに置く事が出来ません。 リレー式ATUやバリコン式ATUの基板はオープン状態でも問題なかったので、とりあえずこのまま行きます。 多分シールドは不要と思われます。

Zmatchpcb2

Zmatchatu_system3

Zmatchatu_system4

Zmatchdcdc2

ステッピングモーターのドライバー回路はモーター停止中もPWM制御による電流制限回路が動作し、ノイズを発生させます。ATUという装置はアンテナ直下もしくはアンテナの一部に組み込まれるものであり、ノイズの発生は厳禁です。 現在、DCDCコンバーターのサイズが大きすぎてドライバー回路を収納している金属ケースの蓋が閉める事が出来ません。 これが原因で受信時に問題が生じてもこまりますので、ノイズの少ない小さなDCDC電源を再度探す事にします。 すると、アマゾンで65KHzスイッチングのDCDCコンバーターが見つかりました。 6個まとめて690円くらいで出ていましたので、これを手に入れ上の写真のように交換しました。 HF帯へのノイズはまだ確認できていませんが、多分OK?。また、バリコンの金属軸とつまみを絶縁する為に、バリコンのシャフトはプラスチックの丸棒を継ぎ足してありましたので、これにプーリーを取り付け、タイミングベルトを張ると、ベルトの張力でプラスチックの軸が曲がってしまいました。 対策として、軸の先端の位置を固定するプラスチックの板を取り付けました。

ATUの配線は完了したので、モータープーリーを指で回し整合テストをやってみました。一応3.5MHzから29MHzまで10Ωから200Ωまでの純抵抗負荷に整合させる事はできました。 2連のバリコンはかなりクリチカルで、1度くらいの角度でSWR1から3くらいまで大きく変化します。 一応設計上は0.09度ステップでバリコンは回転しますが、ベルトにバックラッシュがありますので、それがどのくらいになるかは判りません。 この課題は、早くコントローラーとメインユニットのプログラムを完成させ、確認するしか有りません。

10月の下旬に差し掛かりましたが暑い日が続いています。 ATUのバリコンをコントローラーからリモート操作する事が出来るようになりました。 アンテナ端子に50Ωのダミー抵抗を繋ぎ、アンテナアナライザーでATUの整合テストをマニュアルで行ってみました。 キーのチョン押で10ステップ変化するようにソフトは組んであります。1.8MHzや7MHzは全く問題有りません。なんなくSWR1.01程度まで合わせ込みが出来ますが、29MHzではチョン押しでSWR最小ポイントを飛び越えてしまいます。4ステップくらいがちょうど良さそうです。

以後、ひとつの機能を追加する度にATUユニットとコントローラーを交互に開発しながら進める事にします。 コントローラーの設計と製作は次のページにあります。 

 

INDEXに戻る

2024年9月 8日 (日)

モータードライブバリコン機構(Z-Match ATU)

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

前回の記事はこちら

バリコンをステッピングモーターで駆動するメカニカル構造の設計を行い、入力の単バリコンと2連バリコンのドライブ機構の構想が完成しました。

Zmatchayu_motor_system1

タイミングベルトの長さは9.6cmくらいから350cmくらいまで販売されており、20cm程度の長さの場合2mm刻みで、30cm程度の長さの場合、4~6mm刻みで販売されていますが、その長さがどこの寸法なのか判らないので、とりあえずベルトの内周寸法と決めて中国のメーカーに発注しました。このベルトも5日間で届きました。 ベルトの価格と送料が別に表示されていましたので、それを合計しても国内で買うより安いです。 いざ、最終金額を計算すると、2本買ったら送料も2倍になるらしく、製品の価格の一部を送料に上乗せし、製品がいかにも安く見えるようにインターネットで表示する通販の常とう手段でした。 このベルトが手に入りましたので、36度の気温の中で汗だくで作業を行い組み立てたモータードライブ機構が下の写真です。

Zmatchayu_motor_system2

Zmatchayu_motor_system3

アルミアングルの穴あけ精度が悪く一部のアングルは傾いていますが、なんとか完成しました。 ただし、買ったベルト長が短い時は対処のしようがないので、若干長めに長さを決め注文したのですが、ご覧のとおり、たるみだらけです。 張力の微調整の方法は考えてあるのですが調整範囲を超えてしまいまいそうです。 張力調整のアイドラーを入手できましたので、確認してみると、案の定、微調整範囲を超えてしまい、ふたつのベルトとも短い寸法のものに交換が必要になりました。 新しいベルトの寸法は短い法で2mm刻みで3種類、長い方はいきなり8mm短いベルトを発注しました。 短いベルトは秋のキャンペーン中という事で1本140円(送料無料)、長い方はキャンペーンが無く送料込みで1500円くらいでした。

注文してから4日後には届きました。 短い方は3種類の長さの中間の1本が、長い方は指定した寸法が1種類のみでしたので、予め用意していたアイドラの高さ調整範囲に入り、2mm厚のスペーサーを挟む事で最適となりました。 下の写真は最終調整状態です。 ところで、長い方は同じものが5本届きました。 どうも私が5本まとめ買いになる事を見逃したみたいです。 ちょっと高いなあと思っていましたが、私のミスでした。

Zmatchayu_motor_system4

ここまで出来ますと、次は駆動回路を含めたATUの回路設計に移ります。

 

 

INDEXに戻る

2024年8月26日 (月)

Z-Match ATU ステッピングモーター

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

前回の記事はこちら

バイポーラステッピングモーターとモータードライバー及び5V2AのDCDCコンバーターがそろいましたので、初めてのステッピングモーター動作確認です。 確認する為に、まずPICでモータードライバーのテストプログラムを作ります。

テスト回路配線図 steping_motor_test.pdfをダウンロード

テストプログラム STEPPING_MOTOR_Test.cをダウンロード

実際のATUの場合、EEPROMが1Kバイトは必要になりますが、手持ちが無いので、NB-ATUのコントローラーに使っていたPIC18F25K42でテスト用のプログラムを作り、モーターを思うようにコントロールできるかどうかのテストです。 テストプログラムはTimer1で周期的な割り込みを発生させ、割り込みが発生する度にモーターのSTEP入力を反転させます。 反転周期の2倍がワンクロックとなりその逆数がクロック周波数となります。実験ではクロック周波数100Hzで行いました。 またこのSTEP入力は常時LレベルでMOTOR ON SWを1回押すと、指定したパルスの数だけクロックが発生し、最後にLレベルで停止するようにソフトを組んであります。 ソフトの行数が多いのはMOTOR ON SWのチャタリングを除去する為の処理です。

17hs3401s

上の表に出てくるモーターの型番の最後にSの文字が付きませんが、この実験で使用しているモーターの型番は17HS3401Sで、中文で書かれた仕様書では、定格電流1A, 定格電圧7.3V、コイル抵抗3.4Ω となっており、他の解説資料に書かれている、定格電圧=定格電流xコイル抵抗 の定義に合いません。 そこで電圧3.4Vの電源と電流リミッターを0.25Aに設定して、テストを開始しました。 基本となるワンステップ1.8度の回転は成功しましたので、次は基準の1/2となるワンステップ0.9度にトライ。 ところが、うんともすんとも言わず全く動きません。 配線がわるいのかと全接続をチェックしましたがまったくダメ。 電流制限を1Aにしてもモーターが起動しません。 試しに1/4はどうかとテストすると、やはり起動しませんが、電源OFF状態でモーターのローターを何度分か回転してやると回転を始めます。一度回転を始めて、止めてまたONしてもちゃんと回転します。 起動トルクは1/2ステップより1/4ステップの方が大きい様です。 従い、以後、1/4ステップのみで実験を継続する事にしました。

そして、確実にモーターが起動する為には、モーター電圧は5V以上、電流制限は0.75A以上の設定が必要という事がわかりました。 安定してドライブ出来る為にはモーター電圧6V、電流制限1Aとし、モーター回転中、及び停止中の12V電源の消費電流は0.45A程度で有る事が判りました。 この状態は、ステッピングモーターの解説書にある定格電圧の2倍くらいの電源電圧に設定し、電流を定格以下で使うという説明にはまだ合致しません。さらに停止中は電流制限を0.2A程度まで落としても、静止トルクは指では回せないくらい大きい状態で、この時の12V電源の全電流は100mA程度になりました。 この静止トルクを維持出来る最低電流は再検討する事にします。

この実験の中で、得られたその他の情報で重要なのが、電源OFF時の停止位置と電源ON時の起動位置の誤差でした。1.8度ステップ以下のステップの途中で停止したモーターは電源をOFFしない限り、停止した位置から起動しますが、一度電源をOFFすると、静止トルクは無くなり、一番近い1.8度の停止角度の位置に移動してしまいます。 次に起動するときは、電源OFF前の位置からずれた角度位置から起動する事になります。 この事は、電源を再投入する毎に機械的位置のイニシャライズが必要であると言う事です。 これは、バリコンの最大容量または最小容量の位置を電源ONする度に何らかの手段で検出し、その位置をゼロ番地として回転ステップ数を刻む必要がある事になります。 さらに、このイニシャライズ動作時は基準ステップ(1.8度)で駆動しないと駄目だという事も判りました。

ATUの電源をONにしたらその後電源を切る事ができませんので、モーターSTOP中の電流を最低レベルに切り替える回路を追加必要です。 さらに、モーターがSTOPする度に、現在位置をEEPROM上に記憶させて置かないと、電源OFF後に前の状態に復帰出来ないという事になります。 さらに、受信中も電源をOFFできないので、この間に発生するノイズも確認しておかねばなりません。 モーター駆動中はPWM電流でドライブしていますので、それ相当のノイズが発生するとは考えられますが、モーターOFF時の電流制限もPWMで行っているので、ノイズは消えません。 いずれにしても、事前確認が必要です。

Mdriver3

上の写真はテスト用のマイコン基板とモーター、DCDC電源、電流制限値(0.2x5A)を測りながらテストしている状態です。 電流制限は1Aですが、モータードライバーのパッケージを指で触ってもほんのりと温かいですが、ずっと触っていられる状況です。 メーカーの説明によると基板が熱伝導の良い金属製の基板に絶縁膜を作りその上に導体を印刷した構造の物で、基板自身が放熱板になっているとの事。さらにその基板に銅製の放熱板をハンダ付け出来るようにしてありますが、私が使うATUでは、追加の放熱板は不要です。 写真の基板上には配線図にない部品も映っていますが、NB-ATUのコントローラーで使用した部品がそのまま残っています。実際に配線されている部品は配線図通りです。

Mdriver2

左が、約1000円のモータードライバーですが、最初、この基板の裏表を間違って、ピンを半田付けしてしまい、一度半田付けしたpinを一本づつ引き抜いて再半田する羽目になってしまいましたが、壊れもせずにちゃんと動作しています。

テスト基板に直接ハンダ付けしてしまうと、本番の基板に移すのが大変ですから、ICソケットを用意して、抜き差し出来るようにしましたが、このドライバーに付属していたピンは太くてICソケットに挿す事が出来ませんでした。 秋月で手配した細いヘッダーピンがありましたので、これに交換して、写真のように実装出来ました。

 

モーター停止時のみ電流制限値を小さくする為、VREF信号が(2)ピンに接続されるよう基板の裏にあるショートパターンをハンダでショートしてあります。

モーター静止状態のロックトルクを確認しました。 制限電流設定で50mAでは手でモーター軸を回す事ができますが、100mAの場合、軸を回す事が出来ません。 設定は余裕を取って150mAとします。 この時の12V電源側の電流は25mAでした。 25mAはリレーを1個ONしている状態に等しく、電源的には全く問題有りません。 

次にノイズの確認です。 受信機のアンテナ端子に接続された同軸ケーブルの先端に50cmくらいのワイヤーを接続し、このワイヤーをモータードライバーのICの上に置いてみました。 すると、モーター停止中、回転中いずれも、SメーターがS8まで触れます。 最大の振れは28MHzでした。 ICとワイヤーの距離を30cmくらい離すとS3くらいまで落ち、1m離すとS1くらいになります。 モータードライバーの回路はシールドした方がよさそうです。モーター電源をOFF するとノイズは無くなりますが、1.8度の基準ステップ以下のマイクロステップモードで使う場合、電源OFFしたとたん、モーターの停止位置が一番近い基準ステップの位置に移動してしまうので、電源をOFF出来ません。

この実験の途中で新たな問題が発見されました。 モーターが回っていないときは電流制限を150mAに設定し、モーターが回り出す150msec前に電流制限を1Aに変更してもモーターが起動しません。 電源投入時点よりずっと電流制限1Aにして置き、一度モーターが回転したあと、停止した後で電流制限を150mAにした場合、次のモーターON前に電流制限を1Aに変更すると正常に動作します。 

このイレギュラーの動作を解消する為に、カット&トライを繰り返した結果、以下のシーケンスで完璧に動作するようになりました。ここまで判ったのが10月中旬の最後の金曜日でした。 モーター電圧は7.3V、電流の制限値は250mAです。

①マイコンICのSTEPパルス発生用のタイマーをOFFにする。

②電源投入直後nENをL(active)にして置き、STBYモードで1/4マイクロステップの設定を行う。

③10msec後にSTBYを解除して、さらに10msec待つ。

④以後、モーターを回す前に必ず該当するタイマーをONし、モーターをストップさせた時は必ずタイマーをOFFにする。

⑤1.8度の基本ステップで動作させたい時はMODE1,MODE2をLとして、1.8度ステップの動作が終了したら、設定済みのマイクロステップモードに戻す。

⑥以後、①から③までの処理は行わない。

これで正常に動きだしました。モーター回転中の12V電源の電流は150mA弱、STOP中は25mAです。 そして、このモーターの仕様書を目を凝らして読むと、どうもコネクターの並びが逆ではないかと疑いが生じました。

Driverconnector_1

そこで、コネクターを180度反転してみました。すると、1/2ステップモードでもモーターが回転するようになったのですが、ワンステップ1.8度のノーマルステップでした。その他に、1/8とか1/16を試しましたが、1/8と1/16は同じステップで1/16くさいです。 もしかしたらモーターの構造により、IC屋が意図したドライブタイミングの通り動作しない事もあるのかも知れません。 幸い、1/4ステップは正常に動作していますので、良しとします。

モーター停止時、電流制限を小さくする手段、nENを制御する手段を追加した回路図とテストプログラムです。

配線図:steping_motor_test_1.pdfをダウンロード

ソフト:STEPPING_MOTOR_Test_1.cをダウンロード

ここに示しました、モータードライブプログラムは、初歩的な動作確認用です。 実際に実用しているプログラムでは有りません。 もし、実用的なプログラム例が必要な場合このページを参照して下さい。

一応ステッピングモーターの動作確認ができましたので、バリコン駆動機構の設計にとりかかります。 このATUは中古のコメットのMTUのケース内に収納する予定なので、機構のサイズを含めて検討開始しました。

 

INDEXに戻る

2024年8月12日 (月)

Z-Match ATU

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

10数年前に、160m対応のATU候補として試作し、低インピーダンスのアンテナに対する整合テストを行い、ロスが多いと一度は諦めたZマッチアンテナチューナーでしたが、MMANAで計算しただけのアンテナインピーダンスは、実際のアンテナとかけ離れており、どんなに低くても実際の160mバンド用アンテナの実測値は12.5Ω以上になる事を実践的に確かめてきました。 もう一つの難題は高耐圧の2連バリコンの入手でした。 バリコンそのものが生産縮小され、価格も大幅に上昇していましたが、たまたま、コメットのMTUで使われている高耐圧バリコンを4個ほど入手できました。 これをステッピングモータとタイミングベルトで同期ドライブを行い、2連バリコンを実現出来る環境が整ってきました。 さらに、バリコンを使ったハイパスT型のATUにもトライしましたが、コイルのタップ位置で偽のSWRディップポイントにはまり、そこから抜け出せないという問題も有り、コイルのタップ選択が不要なZ-MatchアンテナチューナーのATU化に向け再検討する事にしました。

まず、Z-Matchの基本であるVK5BR OMの資料を読み直し、推奨するコイルの通り空芯コイルを製作し、ATU化する為の基礎データを取得する事にします。

Zmatchmtu

左の回路はVK5BRが推奨するZ-Match MTUのコイルとバリコンの配線図です。検討の都合でオリジナルの回路図に有ったL3は省略してあります。 このMTUの説明の中で、L2の底辺とL1の底辺はGND側で一致させるとありましたので、その通り試作しましたが、彼の資料の中にある写真ではGND側では無く、天面にL2を配置してありますので、もし、違ったら、写真のごとく、コイルを上下反対にすれば良い事なので、このまま行きます。

 

Zマッチチューナーの肝はコイルですから、VK5BRが推奨する線種、サイズ、形状のままでつくりますが、コイルを支える絶縁材は100均の5mm厚のまな板でつくりましたので、1.6φの銅線を通す、穴径は2mmでは難しく、2.5mmにしました。 また、最初直径50mmのパイプに、1.6φの銅線を16回巻き、これをカットした後、絶縁支持材の穴に銅線を押し込みますが、これが結構難しく、きれいな円弧状のコイルに仕上がりません。 結局、最後は板とコイルの間に直径25㎜の塩ビパイプを挟み、さらにL2とL1のコイルの間に5φのアクリル棒を差し込み、コイルの形を整えました。

Zmatchcoil1

Zmatchcoil2

右上は25φのパイプと5φの丸棒を抜き取った状態ですが、なんとか様になりました。

これを、木製のシャーシーに仮止めし、かつバリコンも仮止めして、配線図通り配線しました。 2連バリコンはまだ連動出来ていませんが、タイミングベルト、タイミングプーリーが入手できたら、連動させる事にし、それまでは、手で目見当で回転させます。 また、VC1はシングルで良いのですが、コメットのバリコンは2個連結されていますので、配線のみカットし、シングルバリコンとして使います。 最終的には、2個のバリコンを結合している支持材をカットしますが、今は写真の通りです。

構造が簡単ですので、配線も20分足らずで完成しました。

Zmatchmtu2

次はいよいよ整合テストです。

整合テストはまず7MHzでつまづきました。いくらやってもSWR1.8以下になりません。 色々試して判った事は、VC2を接続するコイルの位置は14Tでは無く、13.5Tに繋ぐとSWRが1.4まで下がるようになりました。 さらに、VC1のつながるコイルのタップ位置を10Tの位置から9Tに変更してやっと1.1まで下がりました。 この原因は、配線の長さも関係しますが、使用しているバリコンの最小容量が影響しているようです。 VK5BRオリジナルのバリコンの最小容量は20Pですが、コメットのバリコンは30Pでした。

ここまでやって、やっと3.5MHzから29MHzまで全部整合出来るようになりました。

次にバリコンのクリチカルの度合いですが、現在ステッピングモーターの候補は秋月で扱っているコパルの3度ステップ品を第1候補としています。 最近の3Dプリンターは1.8度ステップのバイポーラタイプのステッピングモーターが使われ、中華製に絞れば一番安価です。しかし、バイポーラタイプのステッピングモーターは低電圧大電流というドライブが必要で、専用のドライバー回路と専用のスィッチング電源を必要とし、アマチュアが1台限りで製作するには、かなり高コストになります。 アマチュアがシコシコと製作するには、最近あまり見かけなくなったユニポーラタイプのステッピングモーターが取り扱いが簡単なのですが、1.8度のユニポーラタイプはコパルの4倍以上の値段がします。

コパルのワンステップ3度のモーターの場合、5対1の減速比となるプーリーを使い最小ステップ角度0.6度になりますが、これで、ちゃんと整合できるのか心配になります。

実験した結果、一番クリチカルなバンドは28MHz帯でSWR1.01くらいから1度違えばSWR3くらいまで跳ね上がります。SWR1.5までを許容値とすると、0.4度くらいがリミットで、コパルの0.6度ステップは微妙という状態です。 コパル製は350円、1.8度のユニポーラタイプは最小ステップ0.36度になりますが、1640円。 

今回の試作機の場合、VC2とVC3の容量が一致した連動状態のままでは、SWR1.1以下の状態にならないバンドがありました。 12年前にラフに作った試作1号機ではこれほどのクリチカルさは無かったような記憶でしたが、バリコンは連動のままで整合できました。 そして、1号機の時にあった無負荷状態で整合してしまうという問題は再現出来ませんでした。 当時の1号機はQが低く、調整が楽だった代わりにロスが大きかったのかも知れません。 そこでよりQを高める為に、今回の試作機の配置を見直し、配線が最短となるように組みなおしてみました。

Zmatchmtu3

まだVC3への配線が長いですが、改造前より線長で50cmくらい短くなり、かつコイルの下にはGNDとなる銅箔シートを敷き、これにコイルやVCのGNDを落とすようにしたところ、コイルのタップ位置はVC1の接続位置が9Tになった以外、オリジナルの配線図の通りで、3.5MHzから28MHzまでVC2とVC3の角度はほぼ同じ状態、すなわち連動した状態で整合出来るようになりました。 

ステッピングモーターのワンステップの角度については前述しましたが、3Dプリンターにはなぜ1.8度のステッピングモーターが使われているのか調べてみました。 普通に考えたら、あの細かい造形を行う為には1.8度では粗すぎると思えるからです。

バイポーラタイプのステッピングモーターの場合、基準のワンステップ角度に対して、さらに1/2とか1/4の角度にドライバー側で設定できるという説明があります。バイポーラステッピングモーターに使われているドライバーユニットがモーター本体より高価な場合が多いのですが、このドライバーの中で細かく制御する事により、この基準の公称ステップ1.8度をさらに1/2とか1/4のステップに変更できるらしい。 最大で1/256まで可能という資料もありました。 以前はワンステップ1.25度とか0.9度とかのステッピングモーターが有りましたが、最近はほとんど1.8度に統一されているのもうなづけます。

この情報が判っていたら、3Dプリンターでは標準となっている3:1のタイミングプーリーより高価な5:1のプーリーを手配する事は無かったのに。

以上の経緯から、コパルや1.8度のユニポーラタイプを諦め、中華製の安いバイポーラステッピングモーターを2個手配しました。注文した4日後には届きました。2個で1900円弱でした。

このバイポーラタイプのドライバーは秋月で取り扱っていますが、モーターより高価(2台分で2000円弱)です。 中華製なら1台分、600円台であるのですが、使い方を説明した資料がありません。 秋月のドライバーの場合、メーカーのホームページに制御の仕方や発熱についての注意文などが有り、初めて使うには安心です。 そして、基準ステップ角の1/2から1/256までの設定方法も詳しく書かれていますので、中華製ですが、秋月のSTマイクロ製のIC品で進行する事にします。 ただし、基準の1.8度以下のステップにした場合、停止位置で通電を続けないと基準の1.8度の位置に戻ってしまうという情報もあります。 対策として、停止位置をキープする為に、運転中より低い電流を流し続けるというアイデアもあるそうですが、この現象がATUにどのような影響を与えるかは、作ってみないと判らないです。

モーターとプーリーが手に入り、図面化しないと、タイミングベルトの長さが決まらないので、ベルトの手配は最後になります。

また、1.8MHz対応は私のアンテナに合わせて、リレーで切り替える事にします。

 

ステッピングモーターとドライバーが入手出来ましたので、動作確認をしました。

 

INDEXに戻る