2016年3月12日 (土)

LDG KT-100の改造(失敗)

カテゴリ<ATU LDG KT-100

今まで、移動する時はMTUを持参して手動でチューニングしていました。

ATU自作の前に検討し、使い物にならなかったので、物置行きとなっていたLDGのKT-100ですが、このATUのリレーはラッチタイプで、一度チューニングが成功すると、リレーに電流が流れないので、乾電池で動くトランシーバーでも使う事ができます。 そこで、このATUを引っ張りだし、改造して実用出来るようにする事にしました。

Kt100open

改めて、ダミー抵抗を接続し、7MHzでチューニングテストをしてみました。

50Ωのダミー抵抗ではSWR1.1以下に収束します。(当たり前)

100Ωの抵抗ではSWR1.5くらいで収束します。しかし、時々一度SWR1.5くらいで停止した後、すぐにSWR2くらいに跳ね上がり停止します。このとき、グリーンのLEDは点灯しません。

25Ωの抵抗ではSWR3くらいでチューニングし、SWR OKの印であるグリーンLEDが点灯します。外付けのSWR計を見ていると、時々SWR1.5以下になる事もありますが、そこで停止せず、SWRが4くらいまで上がってから停止します。

中を開けると、CM結合器の部分にREVとFWDという名前のテストポイントがありますので、ここに電圧計を接続して、ダミー抵抗を変えて電圧を計って見る事にしました。

Cmc_test1original

 

上の表はKT-100に送信機とダミー抵抗を接続して、通常の入出力関係で接続した「正接続」と送信機とアンテナの端子を反対にした時の「逆接続」時のCM結合器が検出したFWDとREFの電圧値と、その電圧値から計算したSWR値です。 正接続と逆接続時の電圧値が大きく異なるデータがありますが、出力の設定をアナログメーターでやっている為、正確に2Wや5Wになっていない為です。出力が異なる場合の目安として見て下さい。

50Ωのダミー抵抗の時は、素晴らしいバランスです。

100Ωのダミー抵抗の場合、2Wのときも5Wの時も少し甘く出ていますが、まあ、許せる範囲です。

25Ωのとき、最初デジタルテスターを疑いました。なんでREFがマイナスになるのか?デジタルテスターが2台有りましたので、確認しましたが、2台ともマイナスを示します。高周波が漏れて悪さしてるかも知れないと、アナログテスターを持ってきて測りましたが、マイナスはマイナスの電圧です。

このATUのSWR測定が甘く誤差が大きいのは、50Ω以下のインピーダンスの時に発生するのではないかと思います。 生産工程で、調整がずれている可能性もありましたので、25Ωのダミー抵抗でSWRが2くらいになるよう再調整して、再度データを取る事にしました。

 Cmc_test2readj_2

 

Kt100cmc_schema

50Ωのダミーの時のSWRは、まあまあです。25Ωで調整しましたから、25Ωの時のSWRも、こんなものでしょう。しかし、今度は100ΩのときにREFがマイナスになります。 REFがマイナスというSWRの定義は有りませんから、これは、SWR1.00と解釈されます。

左はKT-100に使われているCM結合器の配線図です。 ()内の定数は推定値です。 配線図で見る限り、バランスして方向性結合器を構成していますが、実際はバランスが非常にクリチカルのかも知れません。

Ldgcmc_coil_2

CM結合器のコイルの部分を良く観察すると、2重に巻かれたコイルの端末処理がかなりラフであることと、コイルが等間隔で巻かれていない所に、静電シールドのない芯線がコイルの中心から外れたところを貫通していますので、かなりバランスは崩れていると思われます。

過去何台もSWR計用のCM結合器を作ってきましたが、ファラデーシールドが無い場合、芯線の位置が変わると、ころころREF電圧最少ポイントが変化した記憶があります。 このセンタータップの電位を1個のトリマーでバランスさせるCM結合器は、その動作がかなりクリチカルになることから、日本製のATUやSWR計ではほとんど見かけません。

結局、ATUの品質を左右する一番重要なCM結合器が貧弱で、使い物にならないATUに仕上がっていると考えられます。

そこで、この内臓のCM結合器を止めて、日本製のSWR計に使われているCM結合器に付け替えてみる事にしました。

Cmc_test3_newcmc_2 

上の表は、日本製のSWR計に使用されていたCM結合器を仮接続して、同じようにSWRを測定したものです。 さすがに日本製CM結合器でも正接続と逆接続でSWRの違いがあり、今回のテストでは、逆接続の方がまともな数値を出しています。 そこで、逆接続の状態が正接続になるよう、入出力を入れ替えて、実際にATUの動作をさせてみました。

ところが、50Ωの時は問題なしですが、100Ωや25Ωの場合、SWR1.5以下に一瞬整合するのに、最後のリレー動作でSWR5以上になります。 何度やっても同じ事でした。

ここから推測ですが、CM結合器のバランスが傾斜しているので、マイコンソフトで最良値を求めても、最後に、補正として、LCの組み合わせを少しずらしているのではないかと思われます。 LDG製のATU全てがそうとは思いませんが、少なくともこのKT-100はそうとしか思えません。 なぜなら、実際のアンテナでは、ダミー抵抗ほど、おおきくSWRが狂うことはなく、なんとなくSWR3以下にはなります。ただし、半数以上のバンドでSWR2以上です。

CM結合器がおかしいなら、CM結合器を変更すればよかろうと思って始めた実験でしたが、いいかげんなCM結合器と、それをカバーする為のソフトウェアーの為、またしても、このATUはお蔵入りとなってしまいました。

LDG KT-100の改造(マイコン)に続く

INDEXに戻る

 

2016年2月20日 (土)

リミッターアンプ追加

<カテゴリ AM送信機(PWM方式)

正弦波テストでは、大きな歪は確認できないのですが、音楽ソースで変調すると、曲によって歪が感じられる事が有りました。 その原因を調べていたところ、原因は変調器のLPFに使用されている2個目のフェライトコアによるコイルがRFのフライホイール回路の空芯コイルに近づきすぎ、この空芯コイルとフェライトコアコイルが互いに誘導しあっているものでした。 誘導の程度は正弦波も音楽信号でも同じなのですが、歪レベルが単純に正弦波上では良く見えなかっただけでした。

Eamp_2b_3対策として、この2個目のフェライトコアは廃止しました。 250KHzの減衰量を心配しましたが、左のスペアナ画像のごとく、33MHz付近にあったノイズも無くなって綺麗になりました。

E級アンプの放熱板はファンで冷却する事にし、8Vの電源ラインでモーターを駆動していましたが、変調用音量ボリュームを上げると、このモーターの駆動ノイズが同時に変調され雑音となっていました。 この対策の為、12Vラインから68Ωの抵抗と470uFのデカップリング回路を通して駆動するように変更しました。

最近のSSBトランシーバーは定格出力を1.5倍くらいオーバーしてもリニアリティが確保されており、内臓するコンプレッサーは単に出力が定格を超えないようにしているだけですが、AM送信機の場合、変調度が100%を超えたとたん、スプラッターをまき散らすという原理上の問題がありますので、このオーバー変調はどうしても避けねばなりません。

そこで、マイクに向かってしゃべっている時でも変調度を読み取れるように変調度計を追加しました。 

Mod_meter

Mod_amp

左が今回追加した変調度計、右は、SMT用ユニバーサル基板上に組んだメーター駆動回路で、後日、糸ノコで切り落とし、メーターの後ろ側に貼り付けます。

この変調度計はピークホールド型で、針の振れは遅いですが、オシロで波形観測をしながらチェックすると、指針が80%を超えなければ、おおむね100%以下の変調度が維持できるようです。 このメーターを見ながらしゃべる事にします。

さらに、突発的な過変調に対応する為、録音やカラオケのマイクアンプに使われるリミッターアンプを追加し、過変調の確率を減らす事にしました。 使うICはTA2011のセカンドソースであるSA2011です。ゲインは標準回路の47dBのままですが、アタックタイムを数ミリ秒にする為、6番ピンの抵抗コンデンサを変更しました。 うれしい事に、このICはトランシーバーのマイクアンプでの使用も想定されているようで、内部OP-AMPの差動入力間に20PFのコンデンサが接続されており、AMP-Iの問題は全く有りません。

この回路で、過入力があっても90%以上の変調がかからないようにVR2を調整しています。

また、前回の効率アップ検討時に実施したリンギング対策も下記の絵のように、すっきり配線することで、ほぼ確実に対策できました。 今回は短冊状の銅板を使いましたが、プリント基板の銅箔に幅を持たせて板状の導体で配線するのが一番の対策のような気がします。

E_ampringing

Amtx0303

左は最終状態の送信機で、変調度計を狭いフロントパネルに括り付けました。 そして、その後微調整をして、電源電圧28.2Vで18Wの出力が得られ、効率はE級アンプ部分で82%くらいになっています。

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

ファンの振動をスタンドマイクが拾い、うるさいですから、シャーシの下にスポンジたわしを敷いています。

TSSに申請してから、約1か月後の3月中旬に、総通から設備追加の許可が降りました。 土日の休日しかON AIRできませんが、テスト運用しております。

さらにパワーアップにトライします。

パワーアップ(E級プッシュプルパワーアンプ) に続く。

INDEXに戻る

2016年2月11日 (木)

LPF改善

<カテゴリ AM送信機(PWM方式)

トロイダルコアで作った7次LPFはその挿入損失が大きく、E級アンプの効率アップの効果が全く生かされていませんでした。

そこで、最初に作った空芯コイルによるLPFを改造して、7次LPFを作り直す事にしました。

最初のLPFも空芯コイルでしたが、各コイル間のシールドがされていなく、これが、目標とした特性が得られなかった原因と考え、仕切り板のある構造にします。

New_lpf_schema

基本定数はトロイダルコアタイプと同じですが、空芯コイルに換え、各コイル間には仕切りを入れコイルどうしの干渉をなくし、かつ次のコイルへの接続は100Pの貫通コンデンサ経由で行うという方式にしました。 厚さ0.3mmの銅板でシールド枠を作り、はんだ付けして組み立てますが、強度確保の為、底辺にアルミの角アングルを当て補強してあります。

今回は手持ちの銅板で製作しましたが、原理的には、銅より鉄の方がシールド材としては優れていますので、次回製作が必要になりましたら、ブリキで製作するつもりです。

New_lpf_1_2

New_lpf

このLPFに50Ωの負荷をつなぎ、アンテナアナライザーで測定したSWRカーブが左の状態です。 7.199MHzのときSWR1.14となっており、この時の挿入損失が約0.45dBでした。 トロイダルコイルタイプの時は約1dBのロスでしたので、約0.55dBの改善です。

また、14MHzの減衰量をアンテナアナライザーとオシロスコープで確認したところ、30dB以上はあるようです。 

前回の検討で、FETシングルの時の最大DC入力は、23Wと出ていましたので、この新しいLPFの場合でもDC入力23Wくらいを目安として、コイルやコンデンサのカットアンドトライを行い、トランスの巻き数比も1:2にした結果、LPF outで15Wくらいの出力を確保する事が出来ました。 この時のE級アンプの推定効率は80%くらいになりました。

そして、効率の良いE級アンプと言えども、電源電圧を上げて、電流を押さえるようなハイインピーダンス回路にしないと、高効率は得られないという事が良く理解できました。 電源電圧はまだ上げる事はできますが、熱損失が目いっぱいですので、今回はこの辺で手を打つ事にします。

Am_tx0211

上の表は電源電圧を14Vにして、フライホイール回路の再設計を行ったときの出力データです。一番上は、効率最大の条件にしたもので、LPF outで約12Wの出力です。 熱損失的には、もう少し余裕がありますので、効率はダウンしますが、ギリギリまで出力アップしたのが真ん中のデータです。14V電源で16W出ています。 そして、この状態のままで、変調器をつなぎ、変調器に28.2Vを加えた時のデータが一番下です。かろうじて80%の効率を確保しました。

Vd0211

Mod0211

左上がVdの波形、右上は電源電圧28.2Vで1KHzの変調をかけた状態です。これより変調レベルを1dB上げると、1KHzの上下がクリップ始めます。従い最大変調度は90%くらいです。波形歪は音楽を変調して聞いてみても、ほとんど感じられません。

そして、配線を最短にやり直し、エージングを1時間した結果

無変調時のDC入力23.06W、LPF out 17.2W RFアンプ効率74.5%が最終値となりました。

Lpf_mod3a

上は変調段の後のLPF計算結果です。実際の回路では、L1=200uH、L2=130uH、C2=4.4uFとなっています。 このLPFはオーディオ信号で鳴きます。かなり歪んだ音です。マイクをつなぎハウリングは起こりませんので、現状のままです。 (その後、L2とフライホイール回路のコイルとの結合が問題となり、L2は廃止しました。)

計算URLは下に再掲します。

http://gate.ruru.ne.jp/rfdn/Tools/BlpfForm.asp#p1

E級アンプの検討開始時、VK1SVの設計シートを紹介し、うまく行かなかったと書きました。 しかし、うまく行かなかったのは私のやり方が悪かった為で、 今回は、かなり当てに出来るデータが得られました。

http://people.physics.anu.edu.au/~dxt103/calculators/class-e.php

そのURLを再掲しますが、ここの計算で重要なのは、トランスの1次:2次の巻数比でした。 巻数比は計算上では、小数点付で表示されますが、ここは1か2か3の整数しか無いという事です。色々なパラメーターを調整し、巻数比が整数になるようにしなければならないという事です。 今回、再計算するに当たり、電源電圧14Vと固定して、その他のパラメーターを設定しますが、VoとかL1は固定されますので、主にPOWERを選択して、トランスの巻き数比を2.0xくらいにします。この状態で得られた、L2をそのまま採用し、C1とC2を調整すると、計算で得られた容量の60~70%くらいで最適となりました。 L2は必ず、LCメーターで計測されたインダクターか、アンテナアナライザーを使い、既知のコンデンサとの直列共振周波数を求め、これから算出されたインダクタンスが目標値の最少誤差になるよう調整して置くのがキモです。

また、計算シートにあるようにQ=5からスタートしたらいいのですが、巻数比を3.0にすると、誤差が大きくなりますので、Q=3くらいまで落とした方が良いみたいです。 ただし、巻数比が大きくなるに従い、効率はどんどん下がっていきますので、巻数比2.0が最適なようでした。

このようにして、最大効率のC1,C2を求めた後、空芯コイルで作ったL2のピッチを微調整します。 C1,C2が計算通りにならない主な理由はQをいくらにするかという事のようです。 通常、動作状態のQを予想するのは難しく、ここで労力を使うより、計算値よりずれる事を受け入れる方が楽です。

ファイナルの電源をOFFにして、変調器のLPFを検討しようと、ハンダゴテを使い部品交換をしていましたら、誤ってFKI10531のソースとGNDをショートしてしまいました。電源OFFにしてあるので安心してましたが、FKI10531がショート状態で壊れてしまい、手持ちのFETを全部使い果たしてしまいました。  

Amtx_0211vomp

この原因は電源ラインに挿入した2200uFの電解コンデンサが放電せずに残っており、ソースとGNDをショートしたとき、電解コンデンサの放電電流が流れ、FETを電流破壊したものでした。 対策として、この2200uFの両端に5.6KΩの抵抗をパラに入れ電源OFF時はすぐに放電するようにします。

左がこれまでの対策を全て盛り込んで、完成したPWM変調方式AM送信機です。

ファンの音が少し気になりますが、FETが壊れるよりはましですので、我慢する事にします。

Wout_bpf0212

Bpf_add0212

Amtx_wbpf

左上は、この送信機でフルパワー出力時の高調波レベルです。Qをかなり高くした、7次LPFでも第2高調波を十分に減衰させる事は出来ていません。 右は、この出力の後に、TS-930Sに内臓していた7MHz用BPFを取り付けたものです。 33MHz付近でPWMアンプのフィルターから放射されたノイズがBPFに誘導しています。 左の写真がBPFを取り付けてエージングをしている様子です。 クラニシのパワーメーターは17.5W付近を指しています。 さすがにKENWOOD設計のBPFだけあって、挿入ロスはほとんどありません。

AUX端子からの音質は問題ないのですが、TS-850Sにヘッドフォーンを付け、マイクに向かってしゃべってみると、高域が抜けた、了解度が悪い音質になっていました。 原因は、常用しているマイクの出力インピーダンスが50KΩであり、これを10KΩのボリュームで受けた為、高域が落ちてしまったものでした。ボリュームを50KΩに換えればOKなのですが、あいにくスイッチ付の可変抵抗器が有りません。やむなく、OP-AMPを追加し、50KΩで受けるように変更しました。 

配線図 AMTX_13.pdfをダウンロード (IC6の in,outが逆です。)

この状態でTSSに申請しましたが、音楽を変調した信号により、フルパワーでダミーロードをドライブし、そのおこぼれを、TS850Sで聞いていると、曲によって歪が気になる事があります。 しばらくは、正弦波ではなく、音楽信号による歪改善が必要なようです。  実際にON AIRするのはいつになる事やら。

TSSに提出した送信機系統図2nd_TX_AM_BlockDia.pdfをダウンロード

リミッターアンプ追加 へ続く。

INDEXに戻る

2016年2月 6日 (土)

放熱設計

<カテゴリ AM送信機(PWM方式)

こいう事を巷では「どろ縄」と言います。

28Vの電源に1分くらいつないだらFETが壊れてしまいました。しかも、E級アンプと変調用のD級アンプ、ふたつともです。 この対策を考えていましたら、パワーアンプで最初にやらねばならない放熱設計が完全に抜けていました。 FETシングルで何ワット出力できるか? パラレルでは何ワット?という以前の問題でした。

そして、改めて放熱設計を検討する事にしました。

Heatsink3 

 上の表は、放熱設計の基本を表にしたものです。 各熱抵抗はFETの品種ごとに決まった値になります。 また、使用する放熱板やFETを放熱板に固定する方法で決定される数値です。 これらの数値から、今回の送信機では、FETに許容出来る最大損失が10Wであると計算されました。 

次に実際の使用環境を考察します。  この送信機はAM送信機ですので、無変調時の定格出力と100%変調時の最大出力を考慮必要です。最大出力は無変調時の1.5倍となりますので、定格出力状態で論議するときの最大許容損失も、10Wの1/1.5の6.7Wになります。 この6.7Wを超えたら、このFETが壊れるわけですから、ディレーティングという考え方を行い、最大許容値の70%を通常状態と設定します。この通常状態での許容損失は4.7Wとなりました。

E級アンプの効率を仮に80%と仮定すると、4.7Wの許容損失になる時のDC入力は23.3Wとなります。 ここから4.7Wの損失を引き算して、アンプの出力は最大で18.7Wとなります。 この18.7WにはLPFの挿入損失は含まれていませんので、現在のLPF挿入損失-1dBを考慮すると、LPF出力部での最大出力は14.8Wと計算されます。

FETが90%変調状態で1分くらいで壊れた時、LPFを通過した後の無変調出力が21Wくらいでしたから、FETが壊れても不思議ではありません。

これから、回路を再設計するに際し、測定誤差もありますので、一旦、目標最大出力はLPF挿入前で18Wと置きます。  18W以上が欲しければ、FETパラレルドライブにして、放熱板も2倍の放熱量を確保できるサイズにしなければならないという事です。 FETパラレルドライブの出力アップ構想も許容放熱量の制限から不可となりました。

なお、ここでシングルFETで最大18Wというのは、フルモールドパックのFETと、秋月の小さな放熱板での話で、ドレインが直接フィンに接続された絶縁が必要なTO-220や、ファンの付いた放熱器を採用する事により、この2倍くらいの出力まで上げられる事は補足して置きます。

これらの条件を実際の回路に当てはめようとすると、そう単純にはいきません。 まず、LPF挿入前の出力というのが測定できません。 電力計が熱電対型の真の実効値を検出するタイプなら問題ありませんが、クラニシの電力計やCM結合器を使った通過型電力計の場合、LPFを通る前の大きな歪のある信号の電力を計る事は不可能です。 これらの電力計は正弦波の片方のみをダイオードで整流して、その直流電圧から電力を換算していますので、歪が生じたとたん、指示された電力値は誤差が大きくなります。ひどい時は入力されたDC電力よりも測定された高周波電力が大きいというウソのデータも出てきます。 従い、LPF単体の挿入損失を正弦波の信号源を使い、実測で求めておき、LPF出力端で測定した電力からLPF無しの出力を計算で割り出しています。

E級アンプを再設計するに当たり、一度熱暴走で壊している負い目がありますので、最初は14Vの電源で10Wくらいを目指して、回路設計を行い、おそるおそるFETや放熱板を手で触りながら、パワーを上げるかどうかを判断することになります。

そんな訳で、フライホイール回路のコイルを0.61uHとして、この状態で最大効率が得られるように各定数を調整した結果以下のようになりました。

Amtx_comp_out1_2

上の段は、変調器なしでRFユニットに直接DC14Vを加えた時のもので、LPF通過後、9.1Wの出力となり推定出力は11.5W、76.4%の効率となりました。 RFアンプ効率というのは、LPFのロスを含んだ全体の効率です。

下段は、変調器を接続し、電源電圧も28.2Vに上げた時のデータとなります。 変調器とRFユニットの間にあるLPFのインピーダンスが影響していると思われますが、単体の時より効率が上がり、LPFなしの推定効率は80%くらいで、まずまずです。

Amtx_vdvg

Amtx_rfout 

左の画像の下の波形がVg、上の波形がVdです。 オシロの縦の目盛は20V/divです。 右側の画像はLPFを通った7MHzのキャリ波形です。

この状態で、PCから音楽ソースを入力し、1時間くらいのエージングテストを行いました。   RFファイナルの放熱板はかなり熱を持ちます。1秒以上触り続ける事は出来ません。多分50度を超えていると思われます。また、28Vから12Vを作る3端子レギュレーターも負けずに熱くなっています。 変調器のFETは100x120mmのアルミ板にビス止めしてありますが、ほとんど温度は感じられません。

E級アンプの放熱板に定格12Vのファンを8Vで駆動して風を当ててみました。すると放熱板の温度はずっと指を当てていられる状態まで下がり、出力も以下のようになりました。

Amtx_fantukiout

 

効率83.5%はマユツバものですが、ファンで強制空冷するとかなり効果がある事はわかりました。ファンを恒久的に取り付ける方法を考える事にします。

一方、1時間もエージングすると、7MHzのLPFのコアがかなり熱くなります。これは、なるべく早く改善する必要があるようです。

今回の変更でE級アンプのインピーダンスは14Ωくらいになりましたので、従来、7.2Ωで計算されていた変調器のLPFのままでは、変調の周波数特性が変わり高域が、かなり出るようになりました。スイッチングの250KHzも減衰量が減ったと思われます。 この変調段のLPFは周波数特性のみに影響すると思っていましたが、インピーダンスが大幅に違うと、オーディオの波形が歪む事を発見しました。 E級アンプの負荷インピーダンスが10倍を超え始めると次第に歪を目視できるようになります。 従い、きれいな変調を維持する為には、常にこのフィルターのインピーダンスはE級アンプに合わせておく必要がありそうです。 

最新回路図 AMTX_11.pdfをダウンロード (IC6の in,outが逆です。)

LPF改善 に続く。

INDEXに戻る

2016年1月31日 (日)

変調性能確認

<カテゴリ AM送信機(PWM方式)

変調部とRF部が完成しましたので、電源電圧13.8Vの状態で、AM送信機としてまとめ、変調の度合いを確認する事にしました。 出力はLPFを通った後4.5W出ています。

Amtx_comp

左は、コの字の形に曲げたアルミシャーシの上に、変調部、RF部、及び送信のスタンバイスイッチやマイクジャックを設け、一応送信ON/OFFが出来るようにしたものです。 送信のON/OFFはできますが、受信機の制御まではまだ出来ていません。 実際にON AIRするまでには、追加予定です。

ひとつのシャーシにまとめるに当たり、変調器、水晶発振器など前段の部分は実験用のシリーズ型安定化電源から電源を供給し、RFと変調器のファイナル部分はKENWOODのPW18-3ADという、れっきとした工業用電源から供給していました。 キャリアを無変調でダミー抵抗に送信し、それをTS-850SをAMモードにして受信すると、すさまじいハム音です。しかもかなり高調波も含まれています。 そこへ、ダミー抵抗にオシロを接続して変調波形をモニターしようとすると、このハム音がさらに大きくなります。

困りはてて、再度分解して、電源回路に電解コンデンサを追加したりしましたが、一向に改善しません。 KENWOODのDC電源の+/-両端にオシロをつなぎ、ゲインを最大にすると、かすかに方形波が見えますが、それが変調器に混入している訳ではなさそうです。 とりあえず、この電源を止めて、いつも使っているFT-991用のDAIWAのDC電源に交換して見ました。 すると、ハム音は画期的に改善しました。 工業用電源は選択可能な電流リミッターやデジタル表示の電圧、電流計や、プリセット機能など、回路検討時は大変便利なものですが、自身のノイズ対策がかえってGNDラインをノイズでフローティングするようになってしまうようです。

ファイナルの電源をFT-991用にしても、ハム音は完全にゼロでは有りません。 そこで、前段に接続されているアナログ電源をはずし、前段もFT-991用の電源から供給するようにしてやると、きれいにハム音が消えました。 ふたつのACトランスを介した電源では、ハムの誘導ノイズが消えないようです。

Music_mod

PCのヘッドフォーン端子から音楽信号を入力できるようにしてテストしてみると、懐かしいAMラジオの音がTS-850Sのスピーカーから聞こえてきました。 左の波形は音楽で変調されたキャリアです。 ピークで90%くらいまで変調がかかっております。

音楽はスペクトルの範囲が比較的狭い昭和の音楽ほど良く聞こえました。 そして、歪感は全くありません。 計画当初、変調後のRF信号を検波して、PWMアンプの差動入力端子へ負帰還をかけようと考えていましたが、その必要は全くないようです。

変調器ファイナルのデュティを可変できるようにTLP552のLED電流を調整する半固定抵抗VR3を追加しました。 これで、変調段のLPF出力ポイントでのDC電圧を供給電源の電圧の1/2に調整しようとしましたが、半固定を最少から最大まで可変しても、この電圧は0.数ボルトしか変わりません。 470Ω固定でも問題ないようです。 また、RFが変調回路に回り込んで、波形歪を起こす対策として、OP-AMP入力の+/-端子間に1608タイプのチップコンデンサ1000PFを追加しました。 

実験は13.8Vの電源で行いましたが、最終的にはこの電源電圧を28V以上にアップする予定ですので、MOS-FETによるシリーズレギュレーターを追加しました。

28V以上のDC電源はジャンクのTS-930Sの電源から取り出す事にしました。このTS-930Sは動作しませんが、電源だけは生きています。 整流直後の電圧は40Vくらいあり、これをシリーズレギュレーターで28Vに安定化しています。 しかも、28Vで10A以上の容量がありますので、今回のAM送信機の電源としては、ちょうど良さそうです。

FETによるレギュレーターを実装し、電源電圧28Vで送信テストを行ったところ、20W出力され、成功と思いきや、90%の変調にすると、1分くらいで送信不能になりました。 直接の原因はRF部のファイナルSTF19NF20のドレイン、ソース間ショートですが、その原因は熱暴走と思われます。 今まで25W出力のテストもしてきましたが、それはせいぜい30秒以内の動作でした。 今回のように1分近く動作させた事がありませんでしたので、シリコングリスも塗布していない事によりFETが熱破壊したと思われます。 そして、当然変調段のFKI10531もドレインソース間がショートしていました。

また、追加したFETのレギュレーターは異常発振を起こし、その上、7MHzのRF信号が混入し、電圧制御不能なっていました。 このレギュレーターはリップルリジェクションが非常に良いことで知られ、LDOという名称で、もてはやされてていますが、負荷側の変動や、高周波妨害に対しては極端に弱いようです。 7812のようなバイポーラの3端子レギュレーターに変更します。  

また、壊れたRFファイナルを修理し、元の状態に戻すまでかなり時間がかかりそうです。

失敗した回路図 AMTX_10.pdfをダウンロード

熱暴走を少しでも対策する為に、さらに、効率アップが出来ないかも再検討する事にします。

放熱設計 へ続く

INDEXに戻る

2016年1月17日 (日)

E級アンプ 出力アップ検討

<カテゴリ AM送信機(PWM方式)

AM送信機のRFユニットの効率が、WEB上で紹介されている例に比較して、かなり落ちる原因を調べる目的で、RFユニットだけの検討を行いました。

Eamp_2a

 上が検討したE級アンプの回路で、コイルはその時の出力に応じて選択しています。

Etest

Vdの波形をオシロでモニターしながら、VC1とVC2を交互に回し、最良ポイントを探しますが、教科書通りの波形に近くなるように調整する事により最大効率ポイントが見つかります。この効率最大ポイントと出力最大ポイントは異なります。どちらかと言えば効率優先です。また、このVdの波形がきれいになる為にはゲートをドライブするデューティも大きく影響します。 従い、回路図には出ていませんが、VXOのバッファーアンプのベースバイアスを調整して、ドライブのデューティが可変できるようにしてあります。 実験開始時は、ファイナルのトランスにTS930S用の入力トランスを使用していましたが、10Wくらいで、ほんのり暖かくなるので、また出力トランスに戻しました。

この検討の途中で効率90%超の数値が時々出る調整ポイントがある事が判りました。しかし、その時のVdの波形はオシロのトリガが安定しない程、寄生振動を伴った波形で、LPFを通った後もFM成分とAM成分を持ったかなり汚い信号になっていました。 E級アンプはオシロが手元にある場合のみ自作できる回路かも知れません。

このようにして、2SK3234とFKI10531で最良ポイントを求めた結果は以下の通りです。

Efet1 2SK3234の場合、Vdを13.8Vに固定して、コイルを変えて最適ポイントを探したものです。10W以上の出力が出るようにコイルを小さくすると、効率が50%を切りますので、10W以上の検討はしていません。

一方、FKI10531の場合、13.8Vで20Wくらいの出力になるようコイルを選択した後、調整ポイントは動かさずにVdを18.4Vや9Vに変えたものです。 18.4Vで40W出て効率も72%となっています。このFETの場合、最高効率が得られるVdはもっと高い電圧かも知れませんが、DC電源の電圧がこれ以上上がらないのでテスト出来ていません。 ちなみに、この時のVC1の値は170PF、VC2は700PFでした。

そして、写真にもあるように、バリコンを接続して、最適容量を探し、そのバリコンと同じ容量の固定コンデンサに置き換えても、バリコン使用時と同じ状態になりません。 バリコンまでのリード線がもつインダクタンスや、図体がでかいことによる浮遊容量の影響が無視できないようです。 以後、面倒でも固定コンデンサを付けたり外したりして検討する事にしました。

これらの結果から、FETのスペックと、このE級アンプの性能についての関連性を調べてみる事にしました。

Fet_spec

 上の表は手元にあるFETのスペックを抜粋したものです。 限界FREQというのは私が勝手に作ったデータでtd(on),tr,td(off)及びtfの合計値の逆数で、基本的にはこの周波数以上では正常にスイッチングしないという周波数です。 ただし、個々のFETで条件が異なり、実際に使用している条件はこれ以下の環境という事もあり、表示された周波数より上の周波数でもスイッチング動作はしております。 従い、比較したときの目安として気にしたらよいデータと考えます。 また、個々のタイムスペックはメーカー発表のノーマル値ですので、実際はこれ以下の周波数になる事もあります。

このようにして眺めてみると、サンケンのFKI10531はON抵抗を含め最良の数値を示しています。  他の3種類の限界周波数は似たり寄ったりで、バラツキによっては逆転するくらいの実力ですが、効率に関係するオン抵抗の値がそのまま表れている感じです。  また、データとして残していませんが、限界周波数も最も低く、ゲート入力容量が最も大きい2SK2382は、最大出力も効率も全くダメでした。

ただ、FKI10531にも欠点があります。それはゲートの入力容量がこの中では比較的大きいことです。これは、ドライバーICの負担が大きく、TC4422がアッチッチになる原因のようです。そして最大の欠点は耐圧が100Vしかないという事でしょう。  40W出力のときのVdmaxは75Vでした。AM送信機の場合、ピーク電力を確保する為にVdを上げますので、これがネックになります。

8vvd

一応、FKI10531 1石で定格出力10W(ピーク出力40W)のAM送信機を作る事は出来る事は判りましたが、激しいリンギングの為、動作が安定しません。

左は、FKI10531を9Vで動作させた時のVdの波形です。 ピーク部分で凹みが出来ていますが、長時間送信していると、温度が変わり、次第に波形が崩れます。これは使用しているコンデンサの温度特性が大きく影響し、発振寸前の帰還状態がクリチカルになっているのが原因のようです。

色々検討している内に、FKI10531を2個もショート状態に壊してしまいました。 また、リンギングは出力インピーダンスが小さくなるほど出易いようです。 そこで、この際、FETも変更し、電源電圧を上げられるE級アンプを再設計する事にしました。

Fet_spec2_2 

ところで、私の手元に有った、IRF640はIR製ではなく、セカンドソースだったようです。 WEBで紹介されているIR(インターナショナル レクティファイアー)製の場合、私が勝手に定義した限界周波数がリーズナブルの周波数を示すようです。 上の表はIRオリジナルのIRF640のスペックを抜粋したもので、納得出来る限界周波数を示しています。

そこで、IR製のIRF640を手配しようと考えたのですが、入手できるのはTO-220でドレインがそのままフィンにつながっている物しか有りませんでした。 出来たら、フルモールドパッケージのFETが無いかRSで物色しました。 結果、IRF640と似たようなスペックを持つSTマイクロのFETが見つかりました。 上の表にその仕様の抜粋を示します。  STF19NF20は、TO-220Fパッケージで絶縁シート無しで放熱板にビス止めできます。 このほど、このFETを手配出来ましたので、同時に入手したTC4452を使い、下記のように回路を改造しました。 TC4452はVdd端子がフィンに接続されていますので、絶縁シートと絶縁ワッシャは必要です。  (後日、フルモールドパックを選択したのは間違いだったと後悔します。 面倒でもマイカシートで絶縁し、シリコングリスたっぷりのドレインむき出しのFETの方が良いです)

OSCバッファーとFETドライバーの間に挿入されていたインバーターがDC直結になっており、OSC段の異常でFETのゲートがHになりっぱなしという現象が再現しましたので、OSCバッファの出力をコンデンサでDCカットし、インバーターをC-MOSに変えました。C-MOSの入力にはプロテクトのダイオードが実装されていますので、このダイオードで入力信号が0Vでクランプされ、うまく動作します。 ただし、そのままでは、入力が無いとき、FETゲートは常にHとなりますから、もうひとつインバーターを入れてあります。

Eamp5

Rfunit5

また、基板上のレイアウトも変更し、TC4452とSTF19NF20は基板上に配置した放熱板に固定し、リンギング対策としてFETの出力ラインは5mm幅の短冊状に切った厚さ0.3mmの銅板で配線し、極力浮遊インダクタンスを削減しました。

左がその基板ですが、TC4452とSTF19NF20のパラレルドライブが可能なように配置してありますが、今はシングルドライブです。

この状態で、電源電圧13.8Vのとき、15Wの出力が得られ、効率は63%くらいです。

TC4452の消費電流は200mAくらいでTC4422と同じですが、FETのゲート電圧波形が気持ちだけ良くなりました。 また、このゲートドライバーも終段FETと同じ放熱板上に止めてある関係で、長時間連続送信でも安定しています。

Amtx_640hz

このRFユニットを変調器と組み合わせて見ました。 電源電圧を18.4Vにすると、無変調時の変調器DC出力は9Vとなり、RF出力は7Wとなっています。 最大変調度は、87%くらいで、電流の増加はありますが、クラニシの終端型電力計は7Wのままです。 この電力計は熱電対型ではないので、変調度が変わっても指示は変わりません。 少なくとも、マイナス変調にはなっていないようです。

 左の波形は680Hzで変調した時の波形です。 現在、RFユニットと変調ユニットを無造作に置いてある為、RFが変調器へ回り込み、波形が崩れる事もあります。 実際に組み立てる場合、配置やシールドを検討する必要があるかも知れません。

 

New_lpf0129

7MHzのLPFは計算で求めた定数のままで、特性の確認はやっていませんでしたので、出力側に50Ωのダミー抵抗をつなぎ、入力側にアンテナアナライザを接続してSWRを計ってみました。すると、7MHzでSWRが2を示します。インピーダンスは25Ω付近です。周波数を3.5MHzまで下げると、SWR1.1くらいになります。 どうやら、計算間違いがあるようです。 このLPFは再設計する事にします。

上が、新たに設計したチェビシェフLPFの定数です。 計算は下記URLで行いました。

http://gate.ruru.ne.jp/rfdn/Tools/ClpfForm.asp#

計算されたインダクタンスやキャパシタンスを実装できる訳はありませんので、自由の効かない、インダクタンスを一番近い巻き数にしておき、後は、コンデンサで微調整した結果が上の定数です。

Lpf0129

このLPFに50Ωのダミー抵抗をつなぎ、入力部分に自作のアンテナアナライザーを接続した時の周波数対SWR特性を表示させたグラフを左に示します。 SWR最少周波数が7.200MHzで1.16となっており、そこそこの特性は得られているものと考えます。 しかし、事前確認では、かなりの挿入損失が有りそうでした。

過去、いくらやっても、60%かそれ以下の効率しか出ないのは、このLPFの挿入損失の性かもしれません。 そこで、新たに作成したこのLPFでLPF有り無しの時の効率データを取ってみました。

Lpf_pwr

結果は下の表の通りで、LPFが無い場合のE級アンプの効率は74.8%とそこそこの値が出ていますが、LPF有りの場合、62.1%となり、LPFだけで、27%もロスしております。 今回のLPFはコイルにT-50-2というトロイダルコアを使ったものです。 今までのLPFは定数設定に誤りがあり、LPFのロスも30%を超えていたようです。

E級アンプの効率が悪いのは、LPFの問題であり、実験した回路で、世間並の効率は確保されている事が判りましたので、以降、単純にパワーアップに絞って検討していく事にします。

E_amp0130

左の表は、E級アンプの回路を当初のコイルとコンデンサが直列に接続されたフライホイール回路に戻し、トランスを1対3の巻き数として、最適値を探した時のデータです。 LPF無で、81.6%の効率は良く出来た方と思われます。

E0130vd

左の波形は、12.84Vで15Wの出力が得られている時のVdの波形です。 ほぼ教科書通りの波形をしています。 また、リンギング対策もかなり効いてきました。 

電源電圧を17Vくらいまで上げると、LPF付でも25Wの出力が得られていますので、 定格出力20W(ピークパワー80W)のAM送信機がこのFET1石で可能かも知れません。 これから、36VのDC電源を模索します。

Eamp0130

左は、E級アンプのファイナルとフライホイール回路及び出力トランスの部分です。 使っているコンデンサは200V耐圧のセラミックで、わざわざ温度特性がかなり良いB特を選定しましたが、パワーON直後の1分くらいは出力が変動します。 最終的には、シルバードマイカに変更しなければならないかも知れません。

左の隅に一部写っているのが問題のLPFです。これは、この送信機が完成した後、再検討する事にします。

ここまでの配線図 AMTX_8.pdfをダウンロード

変調性能確認 へ続く

INDEXに戻る

2016年1月 3日 (日)

低周波信号発生器

PICマイコンによる正弦波発生器を使いやすくする為、このコントローラーを作成しました。

DAコンバーターを利用した正弦波発生器はこちらを参照下さい。

PICで作成した正弦波発生器はDAコンバーターの駆動周期を初期設定した後、この設定値に基づき、ただひたすらに正弦波を発生し続けるもので、周波数を変更したい場合、PICをリセットする必要がありました。 また、発生する正弦波の周波数はPICのクロックや命令サイクルに依存し、きりの良い1000Hzとか3000Hzとかは不可能で、PIC内部の分周値による決まった周波数しか発生できません。 よって、発生した正弦波の周波数を計測して、なんらかの形で表示が必要でした。 その為、コントローラーには、正弦波発生器の初期値を決めて、RESETする機能、発生した低周波の周波数を計測する機能、計測した周波数を表示する機能が必要となります。

まずは、ソフト開発のデバッグにも使える、周波数(整数)をLCDに表示する機能をつくりました。 詳細はこちらを参照下さい。

正弦波発生器の初期設定とRESETは、本来、メカニカルSWで行っていたi/o操作をオープンコレクタのデジトラで行えるようにするだけですので、これは簡単に実現できます。

Sin_osc_cntler

発生した低周波の周波数を計測する周波数カウンターが必要になりますが、Hz単位での表示となりますので、カウンターのゲートタイムは1秒必要です。 最初,100msec単位で計測し、10回分を合計したカウント値を表示していましたが、周波数が低くなるほどカウント誤差が大きくなりました。 原因は100msecの間に発生するカウントの実際は小数点付になるのですが、PICの中では整数としかカウントしませんので、10回分合計しても、最大で-10の誤差が出ることでした。 やはり、表示はとろいですが1秒間待って表示しています。 周波数を可変すると、正しい周波数を表示するまで1秒以上かかりますが、周波数切り替えやLCD表示に違和感はありません。 

この回路の低周波の出力電圧は約0.78V(0dBm)ありますので、20dBと40dBのATTを設け、-20,-40,-60dBmの信号を得る事ができ、また、可変抵抗器で連続可変できるように、可変抵抗器のつまみの周りに実測値による目盛を入れ、-16dBまで1dB刻みで絞れるようにしました。

1khz_spectol

上のスペクトル画像は1KHzの出力をフリーソフトWaveSpectraで表示させたものです。第2高調波レベルが-40d以下になっていますので、なんとか1%以下の歪率は確保できました。

Sinosc_box

完成した基板やコントロール類、LCDを透明のタッパーの中に収め、単3電池8本の電池パックで動くようにしてあります。 これで、AM送信機の検討が便利になりそうです。

ソースファイル OSC_controller.cをダウンロード

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

AM送信機のテストの為に使ってみました。一応基本動作はOKで、歪の確認や周波数特性のチェックは出来るのですが、送信ONにすると、周波数があさっての方に飛んでいきます。OFFにしても同じ。 マイコンの高周波妨害耐力は甚だ弱いようです。 少しでも効果があるようにと、タッパーの内側に銅箔テープを貼り、アースしたのですが、イマイチでした。

そして、AM送信機の出力を40Wまでアップしましたら、送信中に周波数変更もできない事が発生しました。 暇なら対策しますが、今はAM送信機を完成させる事の方が優先で、インターネット上で「WaveGene」というフリーソフトを入手し、PCから正弦波を供給しています。 こちらの方は、PCが誤動作しない限り大丈夫ですが、そのままでは誤動作しますので、USBマウスの根本に40mmの長さのフェライトコアを挿入し、このコアにUSBケーブルを4回も巻きつけております。

暇になりましたので、RF回り込みによる対策を行いました。 配線図とソースファイルは修正済みです。(2016年7月31日)

その後、PCのWGの利用と、パナソニック製のファンクションジェネレーターなどの入手により、この発振器はジャンク箱いきとなり、今では部品取りの材料になってしまいました。

INDEXに戻る

2016年1月 1日 (金)

LCD-TS174をPICによりドライブ

<カテゴリー:PICマイコン

「aitendo」という通販ショップで99円のLCDが売られていました。 その他の部品を含めてこのLCDを2個購入したのですが、仕様書はなし、有るのは、使用されているICの品名と、ATMELのチップ用デモソフトのみという物でした。 

今、PICマイコンで正弦波発生器を作っていますが、この周波数表示にちょうど良さそうですので、このデモソフトをPIC用に書き換え、WEB上からダウンロードしたICの仕様書を基に周波数を表示させてみる事にしました。

使用するマイコンはPIC16F1827という8bitのマイコンです。 周波数表示ですので、マイコンのクロックは7.2MHzの水晶発振で、これをPLLで4倍とした28.8MHzのメインクロックとしてあります。

回路図 LCD_demo_schema.pdfをダウンロード

オリジナルのデモソフトをこの配線図に合わせてi/o変更をした上で、XC8でコンパイルできるように書き換えました。 オリジナルの仕様では、一旦LCD全画面をクリアーした後、左側から順番に各セグメントが点灯していきます。 これをヒントに7セグの数値を表示させるコードを調査し、下記のように解析しました。

Ts147_segmap

このコード表をベースに7ケタの整数を表示するプログラムを作りました。数値以外に文字やドットがありますが、今回は使っていません。

Lcd1250disp

このLCD用のICのクロックは3.3uS以上を要求していますので、余裕を見て約6uSくらいのクロックになるようディレーを入れてあります。 また、メイン関数の170行目にwhileで無限ループを作り、以下のプログラムは実行されないようにしてあります。 この170行目のwhile文をコメントアウトすると、オリジナルデモソフトが動作します。  

また、プログラム上にはLEDが出てきますが、デバッグ用です。 さらに、RB0からの外部割込みの記述もありますが、このLCD表示については不要です。

PICkit3からHEXファイルを書き込もうとするとき、このICもVDDを5Vを指定するとエラーになります。4.875Vに設定すると問題無しです。

99円のLCDでも十分実用になります。 周波数のLCD表示が可能になりましたので、正弦波発生器のコントローラーを作る事にします。

ソースコード LCD_TS174BNLdemo.cをダウンロード

このオリジナルソースをベースにXC16でコンパイルしたところ、LCDのデータラインに信号が出ません。 色々調べた結果、下のLCD_Wr_Data()の関数の中で、

 B=B>>7; の処理を追加しないと、現状のままでは、データをi/oポートへ送る事が出来ない事が判りました。 判ってしまえば当たり前の事で、いままで動いていたのが不思議なくらいです。

void LCD_Wr_Data(unsigned char Data,unsigned char cnt) {
   unsigned char i,d,B;
    d = Data;             //Dataを一度ローカル変数に置き換える
    for (i=0;i<cnt;i++) { 
         LCD_WR=0;
         delayNop();
         B=d & 0x80;         //Dataと0x80とアンドを取った値を一度ローカル変数に置く
        B=B>>7;
         LCD_DA =B;          //LCD_DA=Data & 0x80 ではうまくいかない
         delayNop();

         LCD_WR=1;
         delayNop();
         d = d<<1;
       }
  }

INDEXに戻る

2015年12月28日 (月)

7MHz RFユニット

<カテゴリ AM送信機(PWM方式)

AM送信機のRFユニットの作成です。

まず、7195KHzと予備として7190KHzをカバー出来るVXO回路を作る事にしました。

 

Amtx_vxo_2

7.2MHzという水晶はAM/FMラジオ用PLLシンセの基準周波数として使われていたものですが、最近、この周波数の水晶が大量に格安で売られています。 今回は「aitendo」という通販ショップから購入しました。 

この回路で7199KHzから7188KHzまでの11KHzを可変できます。水晶に直列に入れたコイルはSMTタイプの固定インダクタですので、最適インダクターとはなっていないかも知れませんが、目標とした2つの周波数は確保できましたので、良しとします。

AMのもうひとつの常用周波数である7181KHzをカバーするVXO回路の製作はこちらにあります。

次に、ドライバーとMOS-FETによるファイナル部分です。

送信機全体の回路図 AMTX_0.pdfをダウンロード

Q3でTTLレベルまで増幅し、波形整形の為、CMOSゲートを通した後、FETドライバーのTC4422に入力し、その出力でMOS-FET FKI10531をドライブします。FETのドレイン側にはチョークコイルとフライホイール回路とインピーダンス変換トランスを設け、7MHzの7次LPFを通してアンテナに出力されます。 E級アンプの基本回路では、FETのドレインとGND間にCdsなるコンデンサが必要なのですが、FETのドレイン、ソース間に120Pの出力容量が存在しますので、60PFのトリーマーだけを入れてあります。 このトリーマーを回しても、出力や効率はほとんど変化しませんが、Vdの0V付近で発生するリンギングの様子が変化します。 調整はこのリンギングが最少となるポイントに合わせました。

この回路は下記のURLを参考に、13.8Vの電源で50Wを出そうと考え、設計しましたが、残念ながら出力も効率も全くダメでした。 (ダメな原因は私の使い方でした。ここで正しい使い方を紹介しています。)

http://people.physics.anu.edu.au/~dxt103/class-e/

当初6V12.5Wで設計したのですが、2SK3234で1Wしか出力できず、効率も30%以下でした。 色々WEB情報を調べても、6V12.5Wクラス(12V50W同等)のアンプは130KHzくらいのアンプの例しかなく、7MHzくらいの周波数では無理があるようです。 従い、6V5W(12V20W相当)まで出力を落とす事にしました。しかし、2SK3234ではどんなに頑張っても3Wくらいしか出ず、効率も50%くらいでした。 また、手元にIRF640もありましたので交換したところ4W出ましたが、効率は50%止まりでした。 そこで、変調器のFETはサンケンが一番良かったので、キャリア増幅用もサンケンのFKI10531に換えてみました。すると、5Wの出力で効率も60%くらいまで改善しました。 

Amtx_6v_test

手前の基板がVXOとキャリア送信部です。 今回はVXOの出力は使用せず、アンテナアナライザーから7195KHz付近のキャリアを入力し、周波数を可変しながら、フライホイール回路が最適になっているかをテストしました。 基板上の黒い四角の物体はメガネコアで、ジャンク扱いのTS-930Sのファイナル段から取り外したものです。1次側は銅パイプによる1ターンの巻き数で、2次側はAWG24のビニール線を3ターン巻いてあります。 この出力は左上にあるコイル3個のLPFを経由してクラニシの終端型パワー計につないであります。

FETのドレインに接続される10uHのチョークコイルもTS-930Sのファイナル段から取ってきたものです。

Amtx_7mout

左のオシロ波形は下がFETのゲート電圧波形で8Vピークあります。 E級アンプの技術資料には決まって台形の波形が登場します。1.8MHzくらいなら、きれいな台形波形をしていますが、7MHzともなると、だんだん角が取れてくるようです。 当初、教科書通りの波形にならないので悩みましたが、WEBで見つけた7MHzや14MHzの1KWアンプのゲート波形はこれよりもっとひどくなまっておりましたので、安心しました。 

上の波形はドレイン電圧の波形で、37Vピークあります。この時の正確なVDDは6.01Vでしたので、約6.2倍の電圧が発生しています。 このFETのVdmaxは100Vですので、16V以上の電源では使えないという事になります。 パワーアップする場合、再度FETの品種選定が必要です。  

Amtx_7mhz_out

左の波形は7次バターワースLPFを通過した後の7MHz出力波形です。見た目での高調波歪はかなりよさそうです。 変調器との結合が出来たらスペアナでチェックする事にします。 この7次バターワースLPFの計算もPWM変調器用LPFと同じURLで計算しました。

Eamp04uh_2

コイルのインダクタンスが少し大きいとおもわれますので、現在の約1μHから約0.4μHくらいまで小さくし、シリーズコンデンサを約1500PFくらいまで増やしてみましたら、左のようなきれいなVd波形となりました。パワーは6Vで4W出ていますが、効率は、50%前後まで落ちました。

その後、13V 10Wの出力になるよう定数を変え、実験しましたが、テストした3種類のFETいずれでも55%以上の効率を確保できませんでした。 効率が上がらない理由は、FETも関係しますが、コイルやコンデンサ、トランスが最適になっていないのが原因のようです。

E級アンプの調整箇所を少なくして、検討しやすくする記事が見つかりました。 これによると、コイルにシリーズに入るコンデンサを無くした代わりに、コイルの前後にコンデンサを追加し、コイルとコンデンサ2個を最良状態にもっていけばいいようです。 

フライホイール回路の直列共振コンデンサを廃止し、トランスも止めて、LCによるインピーダンス変換回路をジャングル配線で試したところ、2SK3234では55%の効率でしたが、FKI10531では75.5%まで改善しました。 ただし、5Vで1.5Wしか出ていません。 12V換算で9W弱ですから、目標にはまだまだですが、効率を上げる方法が判ってきました。

Amtx_01

効率を上げようとすると、出力にリンギングが激しく乗ります。これを対策する事を含めて、各回路の配置をやり直し、かつトランスも廃止したのが左の写真です。

コイル両端のコンデンサをバリコンに置き換え、コイルも効率最大となる値になるよう試行錯誤した結果4.8Vの電源で1.8Wの出力が得られた時のIdは0.392Aでした。 効率は95.6%と計算されました。 この時の負荷インピーダンスは約12Ωです。 

ここまで出来ると、後は、効率を我慢できるレベルまでダウンさせ、6Vの電源で何ワット出力できるか探ることにより、なんとか実用できそうです。

Vd_0109左は、この95.6%の効率の時のVdの波形です。従来の波形よりいびつですが、FET OFFの時のVdの面積が明らかに広くなっています。 また、この時の波高値は25Vくらいで、初期のころよりピークは小さくなっています。 この事は、Vdmax100VのFETでも電源電圧を19Vまでかけても良いという事になります。

この状態の時の回路図を以下に示します。

Amtx_rf1_3

当初の目標である6V 5Wの出力にトライし、効率78%を得ましたが、激しいリンギングが発生し、回路が安定しません。 リンギング対策は難航を極めました。 上のトランスの無い回路では、フライホイール回路に流れる歪んだ電流経路が多技に渡り、発振現象を押さえるのがとても難しくなりました。 そこで、最終的に、フライホイール回路のコイルの向きを90度変え、かつトランスを復活させフライホイール回路電流通路の単純化を行い、出力も3.4Wまで落とした結果、なんとか安定して動作するようになりました。この時の効率は70%くらいです。

Amtx0111

また、OSCとFETドライバーの途中に挿入したバッファーもインバーターに換えました。 これはOSC回路が動作停止したとき、ファイナルのFETのゲート電圧が8Vで固定され、大電流が流れ、FETが壊れるのを防ぐ為です。

復活したトランスはTS930Sのファイナルの入力段に使用されていた小型のメガネコアに変えました。

 変調器から見たインピーダンスは約7.2Ωとなりました。

ファイナルのFETはベースのアルミ板にビス止めしてある事もあり、ほとんど発熱しませんが、TC4422はかなり熱くなります。 このICはスペック的にデータが公表されているのは2MHzまでで、7MHzは実力で動作していますので、製品ロットでかなりバラツキがあるのかも知れません。 データシートによれば、FETのゲート容量1500PFで、8Vの時の消費電流は2MHzにて74mAくらいと予想できますが、実際の回路では7MHzで200mA流れています。 次回の検討では、このICよりもう少しドライブ能力の高いTC4452を手配してみる事にします。

修正した回路図 AMTX_2.pdfをダウンロード

TC4452手配がまだですので、先にパワーアップ検討を行いました。

E級アンプ 出力アップ検討 に続く。

INDEXに戻る

2015年12月19日 (土)

PWM変調器

<カテゴリ AM送信機(PWM方式)

7MHzバンドで使えるPWM変調方式のAM送信機を作る事にしました。 CQ誌に掲載されたオール半導体によるPWM変調方式のAM送信機の記事を見て、作ってみたくなったのがきっかけです。

WEB上にあるOM諸氏の記事や解説を頼りに、構成を決め、机上検討していましたが、いよいよ部品集めの段階になり、ぼちぼち、部品が集まってきましたので、まずは変調回路から試作する事にしました。

Amtxmod1

Amtxmod2

 

Amtx_mic_freq

マイクの入力感度は-50dBmくらいですので、最大ゲイン60dBくらいのオーディオアンプの初段にDual-GateのFETを使い、G2の電圧をコントロールしてリミッターアンプ機能を付けています。また、3KHzをカットオフ周波数としたOP-AMPによる3次LPFも実装しました。 これらのアンプの動作テストも行い、リミッターがちゃんと動作する事は確認済みです。 ただし、リミッターのアタックタイムやリカバリタイムは実際にマイクに向かってしゃべってみないと良く判らないので、送信機が完成した時点で再調整します。 Dual-Gate FETの最大VDDは6Vなので、8VのLDOの出力をダイオードとLEDで無理やり5Vに電圧シフトして使っています。 これらのテストの為、作成したPICマイコンによる正弦波発生器は重宝しております。

このマイクアンプの出力は、TPA2006というTIのPWMオーディオパワーアンプに入力し、スピーカー出力用の+側端子からPWM波を取り出し、これをフォトカプラー経由でMOS-FETの終段をドライブします。

Amtx_1khz_tpa2006out

PWM変調に使うTPA2006は秋月で2.5ピッチの変換基板付で300円で売られているものですが、入力端子にシリーズに付いている抵抗とコンデンサは変更してあります。  左の波形は、このアンプのPWM出力をLPFを通した時の1KHzの波形です。 5Vの電源で4Vppの無歪出力が得られています。出力を上げていくと4.5Vppくらいからクリップしますので、リミッターアンプがクリップ寸前で飽和するようにVR2により調整します。

このパワーアンプの出力はVR4を経由して、高速フォトカプラーに入力されます。 この入力抵抗が5KΩの半固定抵抗になっているのは、内部のLEDとフォトTRのバラツキで、PWMのデュティが変わってしまうので、これを調整する為のものです。 最終的に7MHzのE級アンプに接続して、無変調状態で、E級アンプに供給されるDC電圧がファイナル用電源電圧の1/2になるように調整します。

Amtxpwmfetcomp_2

左の表は、最終段のMOS-FETの品種を変えて、測定した出力電力です。

FETのドレインに13.2Vを加え、ソースとGND間に2.2Ωを負荷として接続し、無変調状態で、この負荷抵抗の両端電圧と電流を計測したものです。 オシロスコープでモニターし、いずれも250KHzのデュティ50%の矩形波である事は確認しています。

結果は、秋月で1個40円で売っていたサンケンのFKI10531が一番良い結果を示しました。このFETはON抵抗は小さいのですが、入力容量が1500pFくらいありますので、7MHzのキャリア増幅には向かないかも知れません。 変調段は250KHzでのスイッチングですので、変調段のFETはサンケン製に決定します。

Amtxlpf_cal

左の表は、PWM終段のFET出力からE級アンプまでの途中に挿入されるLPFの計算結果です。 LPFは3段バターワースでカットオフ周波数を9KHz,入出力インピーダンスを1.8Ωとして設定してあります。 この計算はWEB上で計算方法を公開しているRFDNのサイトで計算しました。 URLは以下です。

http://gate.ruru.ne.jp/rfdn/Tools/BlpfForm.asp#p1

3dBカットオフ周波数と250KHzの減衰量を指定しますが、3段のLPFにしたいので減衰量は80dBとしました。次にLPF パイ入力型でインピーダンスを1.8Ωにしてやると、この表のような結果が得られます。 後日検討するE級アンプのインピーダンスをシュミレーションしましたら、1.8Ωくらいで出力10Wが得られるようですので、LPFのインピーダンスも1.8Ωで計算しました。

トロイダルコアにコイルを巻いて必要なインダクタンスを確保しますが、手持ちのトロイダルコアに1mmのPPシートによるギャップを2か所設けて、重畳される直流電流で磁気飽和しないように配慮した上で、1.5mmのPEW線を27ターン巻き約64uHを確保しました。 コアは北川工業のGTFC-41-27-16という品番です。 

Amtx_lpf63uh

左の画像は、トロイダルコアに巻かれたコイルに0.0056uFのマイラーコンデンサをシリーズに接続し、自作のアンテナアナライザーで共振周波数をチェックしているところです。  

L1の63.7uHと0.0056uFの共振周波数の計算値は約266KHzですが、実測値は263KHzでしたので、ほぼOKと思われます。

トロイダルコアはFT-140#61が一般的に入手しやすいのですが、たちまち手持ちがありませんでしたので、かなり特殊な北川工業のコアを使いました。 また、今回はLW帯で使用可能なアンテナアナライザーで測定しましたが、コンデンサを0.0056ではなく100PFにしてやると計算上は約2MHzの共振周波数となります。 しかし、一般的な1.8MHz以上で使用可能なアナライザーでは、コイルの浮遊容量などの影響で正しい共振周波数を見つける事は出来ませんでした。

 2016年1月10日 追記

LPFの定数が決まり、変調段だけのテストしたら、波形が大きく歪みます。原因を調査したところ、フォトカプラーの選定ミスという事が判明しました。TLP552クラスを選定しないとPWMのスイッチングスピードに追いついていかないようです。 TLP552を手配している間に予備検討したところ、スィッチング周波数250KHzは高すぎるかも知れないという不安がありました。 

TLP552が入手できましたので、各段における歪状態を確認する事にしました。

Mod_tpaout_clep_2

Mod_tpaout__2Mod_fet_sout_

波形は左側がPWMオーディオアンプのスピーカー出力端の波形で上下がクリップした状態で、このレベルから1dB下げた状態が真ん中の波形です。 右側が終段FETのソースとGND間に4.4Ωのダミー抵抗を接続し、その両端にLPFを接続した時の波形です。ひずみやクリップは有りません。 この状態でレベルを1dBアップすると、この出力も上下がクリップ始めます。 

スイッチング周波数が高すぎるのでは心配しましたが、波形を見る限り問題はなさそうです。

 

Mod_lpf1_2

RFユニットのE級アンプがなんとか使える状態になりましたので、インピーダンスを再設定して、LPFを再設計することにします。

E級アンプのインピーダンスは実測で7.2Ωとなりましたので、3dBカットオフ周波数を10KHzとして、再計算した結果は左の表のようになりました。 L1の値がかなり大きくなりましたので、コイルは作り直しです。 インダクタンスが大きくなりましたのでコアに挟んだギャップスペーサーは全て廃止し、ワイヤーも1mmのUEWに変えました。

さあ、出来たと、RFユニットと結合して変調の度合いを見る事にしました。ところが、1KHzのプラス側半分がつぶれた波形で、流れる電流も単体のときの約2倍。 まったく使い物にならないひどい変調です。 単体のときのモニターではきれいな正弦波が得られていたのにと焦りました。 原因はLPFのC1の存在でした。C1はFETのソースとRFのGNDの間に接続され、ここで250KHzのキャリアがフィルターへ行かずバイパスされていました。 変調回路のフィルターはパイ型は使えないということです。 C1の2.2uFのコンデンサを廃止し、その他のLCはそのままで、インダクターインプット型にするときれいな正弦波で変調がかかりました。

Amtx_mod90

上の波形が7MHzのキャリアに1KHzの変調をかけた状態です。 電源電圧は9VでRF出力は約1.5Wです。 残念ながら、この状態が約82%の最高変調度で、これより少しオーディオゲインを上げると1KHzの波形が上下でクリップ始めます。 原因は大体推測は出来ます。 FETの飽和電圧と思われます。 波形を見ていると、過大入力が有っても、このオーディオ信号のクリップの為、7MHzのキャリアがゼロになる事は有りません。 これは、過変調によるスプラッタ増大を防止する効果があるかも知れません。

デュアルゲートFETを使用したリミッターアンプを付けていましたが、このFETアンプのリップルリジェクション能力がほとんどなく、変調音に電源のリップルや、送信したRF信号が電源ラインに乗り、ノイズとして聞こえます。 よって、このFETによるリミッターアンプは廃止する事にしました。 とりあえずリミッター無しで進行し、その内にリミッターICでも追加する事にします。

修正した配線図 AMTX_9.pdfをダウンロード

F

最終的な変調器の周波数特性は左のようになりました。 -3dB幅は125Hz~3500Hzくらいです。

7MHz RFユニット へ続く

INDEXに戻る

2015年12月 9日 (水)

正弦波発生器(PIC18F14K50)

<カテゴリー:PICマイコン

CQ誌のPWM変調AM送信機の記事に魅せられて、微力ながら、このアナログの塊のオールソリッドステートの送信機を作りたくなりました。  WEB上の情報から、この送信機の構成は理解できましたので、部品集めを進める傍らで、AM変調用の低周波発振器の必要性を認識しました。 実は、45年前に購入した20Hzから200KHzまでカバーするKENWOOD製の低周波発振器を6年前に完動品のまま粗大ごみに出してしまった事を悔やんでいます。 

CWのサイドトーン用にウィーンブリッジ式の正弦波発振器の製作例はこのブログでも紹介していますが、せっかくPICマイコンを曲がりなりにもいじれるようになりましたので、マイコンからDA変換を利用した正弦波発生器ができないか検討する事にしました。 WEBで検索すると、PICマイコンで正弦波を発生させる方法が沢山見つかりました。 その中で、マイコンのシステムクロックをフリーランの外部クロックで駆動し、任意の低周波周波数を得る方法と、固定クロックでADの出力周期を変えながら複数のスポット周波数として発生させるアイデアがあるようですが、その中で、比較的ひずみ率が良好で、簡単なCRフィルターで構成出来る8bitのラダー抵抗式DAコンバーターが良さそうです。

AM送信機で必要な周波数は1KHz、及び300Hzから3KHzの変調周波数特性と、これより広い範囲でどれだけ減衰しているかをチェックできる周波数帯となる100Hzから6KHzくらいをスポットでカバーできる周波数があれば良く、周波数も大体でOKですが、ひずみ率は1%以下とし、全周波数帯域に渡り出力レベルは+/-0.5dBくらいに抑えたいという条件があります。

マイコンは、使い道が無く、ジャンク箱に転がっていたPIC18F14K50というチップを拾い上げ、これにアセンブラでソフトを仕込む事にしました。 アセンブラによるソフトの開発は30年以上前にMC68000で少しかじっただけでしたが、データシートやWEBでの情報を頼りに再挑戦する事にしました。

まずは、ちゃんと正弦波が発生できるかどうかですが、約1週間かかり、なんとかそれらしき信号が得られました。 

40hz_nolpf_2

9khz_nolpf_3

左は最低周波数、1サイクルを256分割した40Hzの波形。右は最高周波数、1サイクルを64分割した12.5KHzの波形です。いずれもまだLPFは入っていないDAC出力直後の波形です。

波形の様子から、簡単なCRによるLPFでクロックによる高調波は取り除く事ができそうです。OP-AMPによりカットオフ周波数約30KHzのLPFを作り、DACとこのLPFが持っている周波数特性をもう1段のOP-AMPで補正し、40Hzから12.5KHzまでほぼフラットな正弦波発生器ができました。

40hz_lpf

1khz_lpf

9khz_lpf

左から40Hz,1KHz,12.5KHzのLPF後の波形で、周波数特性の補正を行い、振幅を一定にしたものです。ひずみ率計がありませんので、はっきりした数値は判りませんが、経験的にいずれもひずみ率は1%以下になっているようです。

配線図をダウンロード

A_osc2

A_osc1_2

上がPICによるDAコンバーターとLPFのOP-AMPを実装した基板です。 基板裏側の左側の空き地は後日、この正弦波発生器をコントロールするマイコンを実装するスペースです。

PICのプログラムは周波数を初期設定した後、無限ループに入って、正弦波を出力し続けますので、周波数を変更したい場合、周波数設定用のSW1からSW5をセットした後、RESETスイッチSW9を押すことで実現します。 これをロータリーSWかロータリーエンコーダーの操作のみで実現する為に、周波数表示が可能な簡単なマイコンを実装する予定にしていますが、今回の目的が、AM送信機を作る事なので、コントロールマイコンやケース入れは後回しにします。

 ソースコード sin_wave_osc.ASMをダウンロード

SW1-SW4に対応した周期カウント値は適当な値ですので、周波数カウンターを使い、トリミング必要です。

INDEXに戻る

2015年11月 8日 (日)

アンテナアナライザーの製作(ケース入れ)

<カテゴリ:アンテナアナライザー>

手作り、バラック状態のアンテナアナライザーがなんとか完成しました。 しかし、アンテナアナライザーは基本的に屋外で使うものであり、これを実際に使用する為には、持ち運び可能なケース入りでなければなりません。 

Aa59_jw_case JW-CADで組み立て図を書いて、これを基に部品図面をお越し、雨の降る中、屋外で作業する事2日間。

Aa59_casein

アルミ板を切断したり穴を明ける加工は、ほぼ設計図面通り出来るのですが、曲げ加工は折り曲げ器がありませんので、当て木とハンマーで仕上げる事になります。 結局、曲げ部分は直角にならず、エッジも凸凹となってしまいました。  

左の写真は、塗装前の状態で、LCDやタクトSWの位置確認を行ったものですが、JW-CADによる実寸組み立て図が功をはくし、センターずれは有りません。 ただし、LCDのコネクター部分に何も配置できない為、デザイン的に、やや間延びした縦長の箱になってしまいました。

裏板も作ったのですが、電池ケースを入れるスペースにSDカードのコネクターが張出し、電池ケースを収納できませんでした。

他にも、不具合があるようですので、再度分解して、SDカードのピンヘッダーの位置を含め対策する事にしました。

Aa50blk

フロントパネル面のレタリングをデザインし、これをJW-CAD上で作成します。 このとき、邪魔にならない所に寸法を記入しておきます。 作成した原稿は、白地に黒の文字ですが、 ケースの塗装は黒色を予定していますので、 これをスクリーンショットでJPGに変換し、インターネット上のフリーソフトで白黒反転を行い、一度、windows標準付属の「ペイント」で読み込みます。 JW-CADの文字の種類が少なく、また色も限りがありますので、ペイント上で、文字のフォントの入れ替えや、必要に応じて、文字色や線の幅、色を修正します。 このJPGをエクセルに貼り付けます。 これを実際の寸法になるよう、印刷の縮小比を決めて、光沢フォト紙に印刷し、両面テープでケースの面に貼り付けます。 この縮小比を決めるとき、JW-CADで記入しておいた寸法が大いに役立ちます。

このようにして出来上がったアンテナアナライザーが左の写真です。 アンテナを接続するMコネクターの右側に飛び出ているビスは、アナライザーを接続する為に、取り外したトランシーバーへ接続されている同軸ケーブルのGND側とアナライザーを仮接続するGND端子です。 アナライザーが宙に浮いてしまうと、実際にトランシーバーから送信した時の浮遊容量の条件が異なってしまい、正しいSWRの計測が出来なくなりますので、これを防止する為、アナライザーのGNDを同軸ケーブルのGNDへ接続する為に使います。 CAA-500のように、アンテナ端子が2個ある場合、送信機に接続される同軸は、使用していないコネクターに仮接続しておけば良いのですが、このアナライザーのアンテナ端子は1個しか有りませんので、GNDだけは接続できるように端子を設けたものです。 実使用状態では、ここにミノムシクリップの付いたリード線を接続し、常にアナライザのGNDはトランシーバーのGNDと接続されているようにします。

実際にアンテナに接続して測定する場合の電源は電池で行い、決して外部DC電源を使わないようにします。アナライザーで調整したSWR最少周波数と送信機内臓のSWRメーターが示すSWR最少周波数が一致しない原因は、決まってこのトランシーバーのGNDと外部DC電源の性です。

間延びした縦長のケースはレタリングでごまかしました。 光沢フォトシートをパネル全面に貼ったことで、凸凹したアルミケースの、ぼろ隠しが出来ました。

LCD表面に保護シートが付いていますので、多少ボケていますが、ベランダや移動に持って行けるアナライザーが完成しました。

さっそく、ベランダに持ち込み、私のプリセットMTUの調整に使ってみました。 アナログメーターの応答が、やはり遅く、SWR最少にMTUを調整するとき、手持ちのCAA-500より慎重にやらないと、最少ポイントを通り過ぎてしまいます。 この辺は最初から判っていた事でしたが、気になります。 Microchipの有償版コンパイラーの説明によると、プロバージョンを使うと、少なくとも4倍以上の速さにオプチマイズできるとの事ですが、10万円以上もしますので、諦めました。

アンテナアナライザは屋外でつかいますので、直射日光の下に置かれる事が多々発生します。 この為、最初黒色でしたパネル面は現在赤色に変色してしまいました。

SWRカーブを取り、それをセーブ出来る機能は、例えば、このブログに結果を張り付ける為には便利です。 

Aa50_7mhz

左のSWRカーブはベランダで、MTUを再調整したとき、データをセーブして置いたものを、後から、再表示させデジカメで撮ったものです。

PCに保存するほどではないけど、データが残るというのはいいですね。

ところで、左のグラフはアンテナチューナー直下で測定したSWR特性で最少SWR1.05くらいですが、これを22m長の8D2Vを経由したトランシーバー出力部分で再度測定すると、100KHzくらいの幅でSWR1.0となってしまいます。 これは同軸ケーブルによるロスによるSWR差として出てくるものですが、得られたカーブは不自然です。いくら同軸で減衰があるにせよ、100KHzの範囲でSWR1.0はなかろうと、ソフトの中での四捨五入や切り捨て処理に問題がないかチェックしました。 色々検討した結果、ソフトではなく、ハードの問題である事が判りました。 

通常、OP-AMPには入力オフセットという誤差が有り、入力がゼロボルトでもこのオフセットの分だけ、出力がゼロになりません。 逆に、入力がオフセット電圧以下なら、出力は常にゼロとなります。 このICのバラツキによる入力オフセットの為、SWR用のDC電圧が少し出ているのに、出力がゼロになっていたものです。 これを補正する為、OP-AMPの入力にオフセット補正用のDC電圧を加え、これをキャンセルさせますが、今回使ったOP-AMPのオフセットの方向が+/-入力に対して逆になっていました。 

Offsetadj

今まで、マイナス入力端子にDCオフセットを印加していましたが、プラス入力端子にDCオフセットをかけて, 50Ωダミー抵抗の時、OP-AMPの出力をADが読んだ値を0010くらいにしておき、ソフトでADの出力が0010のとき、SWR1.0と定義する事により、自然なカーブが得られるようになりました。

また、目安にしかならないSWRのデジタル表示ですが、せっかく内部で小数点以下第2位まで計算していますので、これを表示させる事にしました。 実際のアンテナを接続した場合、SWR1.00の表示は出なくなりましたが、こちらの方が本物のような気がします。

LWの発振回路に使われているコンデンサC33は間違っていました。103Kではなく正しくは104Kでした。これを修正した結果、LWのカバー範囲は95KHzから530KHzとなりました。

最終的な各周波数の波形は以下のようになりました。

58mhz

7mhz

500khz

100khz

電池マークのバッテリーインジケーターは4.5Vでフル表示し、3Vまで電池の電圧に比例した残量が緑色で表示され、3Vから2.7Vまでは黄色で表示、2.7V以下では赤色になるよう設定しました。 この電源回路に使われている昇圧型のDC/DCは1.8Vでも動作しますが、さすがに2.7Vより下がると、電池の内部インピーダンスが急激に増大し、たちまち動作不能になります。 また、過去の記述には有りませんでしたが、CENTERキーを長押しするとオートパワーOFF機能を1分から20分まで1分刻みで設定できるようにしました。 もちろん、この機能をOFFする事もできます。

2016年8月11日

LWバンドをカバーする周波数帯域は、従来のアナライザーより便利に使える事が判りましたが、SWRグラフ表示のバンド幅が有限というのは、使い勝ってが悪い事が判りました。ここは、せめてセンター周波数の+/-30%くらいはカバーした方がいいようです。 これは、ソフトの変更のみで行えますので、スィープ時のバンド幅は 「1,2,4,6,10,20,40,60,100,200,400」のプリセット値としました。 

そして最大の欠点は、LCDで描画したアナログメーターである事が理解できました。 このアナログメーターはすでに、LCDの1ピクセルの分解能で動作していますので、これより細かい動きは出来ません。 アンテナアナライザーでSWRを計ったり、LCの共振周波数を計る場合、指針が最小値を表示する周波数を知りたい事が多々発生します。 このような時、1ピクセルの分解能では、最小値の周波数を知る事は出来ませんでした。 この感覚はメカニカル方式アナログメーターにはとても及びません。 どんなに精度の悪いメカニカルメーターでも、最小値や最大値を探すのは、簡単にできます。

Aa50_z_change

このアナライザーを製作するに当たり、SWRグラフィック表示とアナログメーター表示を兼用可能な液晶表示で、コメットやMFJのアナライザーより使いやすいアナライザーを目指してきました。 この手作り品は基板がユニバーサル基板なので、ケースサイズを小さくできませんでしたが、両面高密度基板を使えば、単3乾電池3本という電源を含めて、かなり小型のアナログ式アンテナアナライザーが出来ると考えました。 しかし、メカニカルメーターのフィーリングには勝てませんでした。  

今更、アナログメーターに戻す気はありませんので、現在は、SWRを小数点以下2桁まで、Z(インピーダンス)を小数点以下1桁まで表示した数値を見ながら、LCDによるアナログメーターの欠点をカバーしています。 直感的には判りませんが、そこそこの探索は可能です。 

LCD表示のアナログメーターは、Sメーターかタコメーターが一番合いそうです。 最近の車のスピードメーターやタコメーターはタイヤの回転数やエンジンの回転数をデジタルで検出して、そのデジタル値をベースにステッピングモーターを回して、指針を動かしているのだそうですが、これらは、今後インパネ内の表示量増大に伴い、LCDタイプが増加することでしょうね。 

 

2018年11月

マイコンのソースコードを公開しようとしましたが、どれが最終で、どのようにコンパイルしたかも忘れてしまいました。 以下のふたつのソースファイルは多分まともにコンパイルできないと思います。

AA50-LCD-SD.cをダウンロード

AA50SD_data.cをダウンロード

2022年5月

負荷オープン時の校正作業が行われなくなってしまいました。 原因を調査したところ、インピーダンス検出用のダイオードHSC285の逆方向抵抗が200Ωくらいしかなく、正常にDC電圧を得る事が出来ないのが原因でした。 このダイオードは劣化しやく、このアナライザーが完成してから、すでに6年以上経過していますので、しょうが無いという状態です。 補修用に手持ちしていた正常品に交換したら、インピーダンス表示は正常になりました。 バリキャップ電圧として14Vの電圧を一度リップルフィルターを通し、発振周波数がFM変調されるのを軽減しておりましたが、このリップルフィルターの劣化により、電圧降下が大きくなり、最大14Vくらいで有った、バリキャップ電圧が9Vくらいしか有りません。 その為、最高周波数が52MHzくらいしかなく、50MHz全帯域を測れない状態になっていました。 対策として、リップルフィルターを100Ωの抵抗に置き換えました。 結果、電圧は13.7Vくらいまで上昇し、最高周波数は64MHzくらいになりました。 リップルによるFM変調音は、リップルフィルターの時より大きいですが、我慢出来るレベルです。  また時々、AD変換データが間違う事がありました。 詳細を調べると、ADCのプログラム記述に間違いがありました。 今まで、どうしてまともに動いていたのが不思議です。 DATA処理マイコンのプログラムを修正しました。 

ダイソーの単3アルカリ電池3本では、電池の消耗が早く、トータルON時間が30分くらいになると、数分間くらいしかONしないのに、急激に電圧が下がり、インジケーターが黄色になります。 しばらく放置して再度ONすると、バッテリーインジケーターは元の緑に変わりますが、次に黄色になるまでのON時間が短くなって行きます。 そこで、この電池をリチウムポリマー電池(LiPo Batt)に変更する事にしました。 電池はアマゾンで3.7V900mAh品を999円で見つけましたので、これをゲット。 また、LiPo電池の充電ICは7~8年前に買ってあったMCP73832Tです。 

Liion_batt_2

Liion_chagar

Chargeindicator

 

左上が、単3乾電池をLiPo電池に変更して実装したところ。 真ん中は、米粒大のICを基板に実装したところ。(黄色の円の中)。 右端が充電中を表示するインジケーターです。 充電時の定電流は300mAに設定しました。 充電満了になると、LEDが消灯しますので、そこで、外部DC電源のプラグを抜く事にします。 LCD上のバッテリーインジケーターが黄色になるのが3V以下で、2.7Vで赤に変わりますので、再充電は黄色のマークが出たら行う事にします。 LiPo電池の取り扱い説明によると、推奨される使い方は、フル充電した後、終止電圧になるまで使い続け、終止電圧になったら、再度フル充電を行い、充電回数をなるべく多くしない事のようですので、充電しながらの使用は出来るだけ避けるようにする事にします。 この電池の終止電圧は、2.5Vですが、安全を見て3Vを切ったら再充電する事にしました。 (使用中でも充電できますが、その場合の充電電流は最大でも50mAしかありません)

このアナライザーにはPICKIT3を接続する為のコネクターが2個ついており、どちらがDATA用でどちらがLCD用か、毎回迷いますので、コネクタの位置にマーキングを入れました。

修正済みプログラム AA50SD_data_1100.cをダウンロード

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

Aa50_pic_conector

ついでに変色したパネルも張り替えました。張り替え前と後を記録に残します。

Aa50old

Aa50new

INDEXに戻る

2015年10月18日 (日)

PICマイコンでSDカードのファイルを読み込む

<カテゴリー:PICマイコン

マイクロチップのMLAの中にあるデモソフトは簡易データロガーともいえるもので、何らかの手段で定期的に入手したデータをデモファイルにAPPENDしながら書き込んでいくものです。 従い、MS-DOSのDIRコマンドに相当したファイル検索や、特定のファイル名をオープンして、中身を読みだすという動作は行いません。 ただし、これらの機能の、コマンドの使い方は例で示してあります。 

今回、SDカードにセーブしたCSVファイルを検索して、LCD上にファイル名を表示させる機能、及び、表示したファイル名を指定して、そのCSVファイルを読み込み、LCD上にSWRカーブを再表示させる事にトライしました。 FILEIOのHELPドキュメントを読んだだけでは理解できず、構造体の勉強を3週間くらいやって、やっと、思ったようにソフトが動くようになりました。

Aa50_find

Aa_50_40m

ソースコードを下記しますが、そのままコピペしても動作しません。 これをデモ用として提供されているソースコードの中に埋め込んでやると期待したような動作が得られます。

MS-DOSのDIRに相当する関数は「FILEIO_Find」という関数を使います。

searchnameは16bitの文字で "*.CSV" と初期設定し、FILEIO_Findの関数を実行させるとsearchRecordの中にファイル名がひとつだけストアされます。 これをset_dir_fname()の関数に送り、そこで2次元の文字列にストアします。この動作を20回繰り返します。 ファイルの数が20以下の場合、i=20で強制的にループを抜けます。

unsigned int  find_SD_card(void) {

     DEMO_STATE demoState = DEMO_STATE_NO_MEDIA;

   FILEIO_OBJECT file;

    FILEIO_SEARCH_RECORD searchRecord;

    init_SDcard();

    unsigned char i;

   uint16_t SD_ER = 0;

      while(SD_ER == 0) {

        switch (demoState) {

            case DEMO_STATE_NO_MEDIA:

                 if (FILEIO_MediaDetect(&gSdDrive, &sdCardMediaParameters) == true) {

                    demoState = DEMO_STATE_MEDIA_DETECTED;  

                    }

                 break;

            case DEMO_STATE_MEDIA_DETECTED:

                  SD_ER=(FILEIO_DriveMount(drive_A, &gSdDrive, &sdCardMediaParameters));

                if (SD_ER ==0){

                    demoState = DEMO_STATE_DRIVE_MOUNTED;

                     } else {

                    demoState = DEMO_STATE_NO_MEDIA;

                    }

                     break;

            case DEMO_STATE_DRIVE_MOUNTED:

                if (FILEIO_Find (searchname, FILEIO_ATTRIBUTE_MASK, &searchRecord, true) == FILEIO_RESULT_SUCCESS) {

                    i=0;

                    set_dir_fname(&searchRecord,i);

                    i++;

                    } //サーチの最初はこのようにtrueを指定して検索

                    while (i < 20) {

                        if (FILEIO_Find (searchname, FILEIO_ATTRIBUTE_MASK, &searchRecord, false) == FILEIO_RESULT_SUCCESS) {

                           set_dir_fname(&searchRecord,i);

                            i++;

                            } else {i=20;} //whileループから抜ける為

                        }  //2回目以降はfalseを指定して検索

・・・・・・

・・・・・・

このfind_SD_cardの関数は、ファイル名を検索して最大で20個表示したら一旦ドライブをアンマウントさせます。

.

.

ファイルの読み出しは「FILEIO_GetChar」という関数を使います。

void get_SDdata(unsigned int *sptr) { //テキストデータを1行(LFまで)読み込む
     uint8_t C=0;
     uint8_t i=0;
     while (C != 0x0A) {
        C=FILEIO_GetChar(sptr);
        if (C == 0x1A) {break;} //EOFでもループを抜ける
        SWR_SDdata[i]=C;
        i++;

     if (i>40) {break;} //1行の文字数が40を超えたら抜ける
        }
     SWR_SDdata[i-2]=0;
  }

セーブされたテキストデータは必ず「CR+LF」で1行完了としていますので、上の関数で、CR+LFが削除された文字列として、SWR_SDdata[]の中にストアされます。

正規のSWRカーブファイル以外の場合、暴走しないように、EOFを見つけたり、1行の文字数が40を超えたら、ループから抜けます。 

.

以下はASCIIからUTF-16への変換関数です。

void Uint8toUint16(uint8_t *fname8) { //ASCIIをUTF-16に変換します。
        unsigned char i ;
        for (i=0;i<13;i++) {
            fname16[i]=fname8[i];
        }
    }   

以下が特定の16bitファイル名「fname16[]」をオープンして読みだす処理になります。

unsigned int  open_SD_card(unsigned char *fptr) {
   DEMO_STATE demoState = DEMO_STATE_NO_MEDIA;
   FILEIO_OBJECT file;
   unsigned char i;
    uint16_t SD_ER = 0;
    Uint8toUint16(fptr);

・・・・・

・・・・・

 if (FILEIO_Open (&file, (uint16_t *)fname16, FILEIO_OPEN_READ) == FILEIO_RESULT_FAILURE) {
 
                    demoState = DEMO_STATE_FAILED;
 
                    SD_ER=2;
                    break;
                    }
                    SD_ER=50;
 
        get_SDdata(&file);
        set_FREQ_data(&SWR_SDdata,1);

読み込みは全部で225行に渡りくりかえされますが、それが終わるとファイルクローズします。 

 if (FILEIO_Close (&file) != FILEIO_RESULT_SUCCESS) { //ファイルクローズ                     demoState = DEMO_STATE_FAILED;

                  SD_ER=3;

                    return SD_ER;

                  }          

クローズが失敗したらメインルーチン側で強制的にドライブアンマウントを実行させます。

クローズが成功してもドライブをアンマウントします。

FILEIO_DriveUnmount ('A'); //ドライブアンマウント

SD_ER=20;

return SD_ER;

・・・・・・・

・・・・・・・

ファイルを削除する時は以下のコマンドとなります。

 if (FILEIO_Remove ((uint16_t *)fname16) != FILEIO_RESULT_SUCCESS) {
                        SD_ER=10;
                        }
                    break;

エディター上ではTABを使い、行の整列がきれいに出来ているのですが、このブログに貼り付けるとメチャクチャになって、大変読みにくくなってしまいました。

このデモプログラムのなかでは、かなり詳しいエラーメッセージが定義され、それが番号で返されますが、そのままでは、かえって混乱しますので、新たにSD_ERという変数で、勝手にエラー番号を定義し、ループからの抜けや、メインルーチン側でのエラー処理に使っています。

出来てしまえば、簡単な記述で完成するのですが、ここまでやるのに優に1か月かかりました。

SDカードからファイルを読み込むプログラム FILEIO_read_Faile.cをダウンロード

実際にアンテナアナライザーに組み込んだ状態はここで紹介しています。

 

この記事を基に2024年に再現を試みましたが、出来ませんでした。

再現可能な記事を2024年12月に公開しています。

INDEXに戻る

2015年10月17日 (土)

過去のデータを再表示

<カテゴリ:アンテナアナライザー>

周波数対SWRの変化特性をグラフにし、このデータをSDカードに保存し、PCでエクセルデータとして取り込む状態まで完了していましたが、せっかくSDカードにセーブできましたので、このデータを、再度アナライザーのLCD画面に表示する事にトライしました。

この機能を追加するのは、純然たるソフトウェアだけの世界となりますので、ハードの変更は一切なく、ただひたすらにC言語に苦しみながらPCと向き合う事になってしまいました。

 

Aa50_faile_select

Aa50_re_display

左上の画像がSDカード内のSWRカーブファイル名を表示させた状態で、画像ではSWR00044.CSVを選択している状態です。 この状態でワイドキーを押すと右上の画像のように、グラフデータをLCD上に表示します。 表示したデータは、前回セーブした14MHzのスカイドアアンテナの特性です。

Aa50_21m_mtu

左の画像は私の21MHz用アンテナを3つのMTUでそれぞれチューニングした時のSWR特性をグラフで表示させたものです。 SDカードにセーブして有りましたので、それを呼び出してLCD上に再表示させました。 この画像では、3本のSWRカーブが3色で描画されていますが、マイコンの仕様としては最大で7本のカーブを7色で描画できます。 また、読み込んだファイル名も表示させる事にしました。

ここまでの機能を入れ込んだ状態で、ROMエリアは91%、RAMエリアは85%となりました。まだ、バグや使い勝手の悪いところもありますので、それらの対策をして、ギリギリの容量かも知れません。

このアナライザーの場合、SDカードにセーブ出来るファイル数はSDカードの容量が上限を決めます。 しかし、検索出来るファイル数は、現在は20個までです。デバッグの進行状況を見ながら、RAMエリアに余裕があれば増やす事はできますが、それでもLCDの画面サイズの関係から最大50個くらいと思われます。 また、読み込み順序もFAT32のファイルシステムで記録された物理的なアドレス順になります。 通常は古いファイルから先に検索されますので、仮に50個以上のファイルをセーブしていても、新しいファイルは表示できなくなります。

Aa50_delete

このような条件から、SDカードのファイルをオープンしてLCDに表示した後、そのファイルを手動で削除する機能を追加しました。 グラフが表示された状態で左の画像のごとく、確認メッセージを出した上で、DOWNキーで削除できます。 この機能を追加した事により、削除する為にSDカードをいちいち抜いてPCに接続する必要も無くなります。

ファイル名が連番ですので、古い番号のファイルの中身が、どのアンテナのどのような条件でのSWRカーブであったかは、多分覚えていないでしょうから、必要なファイルはせっせとPCにコピーして置けば良く、その必要がないなら、古いファイルはせっせと削除すれば良い事になります。 RAM容量が限られているマイコンではやむを得ない処理でしょう。

10月31日追記

Aa50_max50

その後、2週間くらいデバッグを繰り返して、バグも収束してきましたので、表示可能なファイル名数を最大50まで増やす事にしました。 左の画像のごとく、LCD上でのディスプレーの都合でファイル名は連番の部分のみとしましたが、不便はないでしょう。  ファイル数が50を超えている場合、この画面上でなんらかの警告を出す事にしています。 常に50個以下にしておかないと、最新のファイルが検索できなくなります。  この状態で、ROMエリアは91%、RAMエリアは88%の使用となりました。

マイクロチップのMLAを使ったFILEIOアプリでファイル表示や、特定のファイルの読み込み方法は PICマイコンでSDカードのファイルを読み込む で紹介しています。

ここまでの基板の状況は以下のようになりました。 一番左の基板表側はスルーホールの部品だけが目立ちますが、真ん中のこの基板の裏側はチップ部品よりジャンパーワイヤーだけが目立ちます。 一応、高周波回路は最短で構成し、単純なDC電源やDC信号ラインはジャンパー線でまかなったので、発振回路としての動作は安定しております。 RF回路を横断しているいくつものジャンパ-線は、RF的にはすべてGNDレベルの線なので、写真では無造作に結線されているように見えますが、一応、元プロフェッショナルな作業は行っています。

Aa50_osc_f

Aa50_main_f

Aa50_mic_f

ソフトのバグも収束ぎみですので、これからケースに収納する為の検討をする事にします。

アンテナアナライザーの製作(ケース入れ) へ続く。

INDEXに戻る

2015年9月19日 (土)

SWRグラフをSDカードへセーブ

 

<カテゴリ:アンテナアナライザー>

PICマイコンでSDカードにテキストファイルを保存する事が出来るようになりましたので、この機能を使い、周波数対SWRのデータをCSV形式でSDカードに記録し、これをPCでエクセルファイルに取り込んだ後、自由にグラフデータをPC上に表示する事ができるようになります。  

SDカードとPICの通信はSPI1モジュールで行いますので、今までSPI1を使用していた、コントロールマイコンとの通信ラインをSPI2に引っ越しさせ、FAT32用モジュルールやドライバーなどを従来のアナライザー用ソースファイルと合成し、なんとかコンパイラーがエラーを出さなくなりました。 この状態で、128KあるROMエリアの約84%のが占有されました。 RAMは58%くらいの使用です。

Sd_ready

とりあえずコンパイル成功したプログラムは、アナライザーの機能とSDカードの機能は正常に動作しますが、両者の間でのやりとりはやっていません。 やっとSDカードの検出結果をLCDに表示する事だけ出来るようになりました。 ちなみにSDカードをソケットに差し込むとすぐにMEDIA READYになりますが、ライトプロテクトがONになっている場合、カードをロックするまで押し込んだ時点でNO MEDIAになります。 ちゃんとライトプロテクトは動作しますが、読み込みも出来ないという事ですから、ライトプロテクト機能は無効と考えるべきです。

カード有り無しの判定が出来るようになったので、アナライザーから引数を渡す方法でSDカードソフトと連結してみました。 

Sd_save1

しかし、そう簡単にはいきません。 コンパイルエラー続出で始まり、無限ループにはまったりで、何度も後退しながら、やっとアナライザーのキー操作で仮のテキストをセーブできるところまで出来ました。 下記の通りファイル名が連番でセーブされています。タイムスタンプは、リアルタイムではなく、PICKIT3でプログラムを書き込んだ時のPC側の時刻のようです。 

Sd_save0_2 

テキストファイルが連番でセーブ出来るようになりましたので、次は、いよいよ周波数対SWRデータのセーブにトライです。  しかし、これも私の非力の性で、コンパイルエラーの連続でした。 ここで、複数のソースファイルとヘッダーファイルの場合のコンパイラ動作をにわか勉強して、かろうじて、データのセーブが出来るようになりました。

セーブしたデータをエクセル上に展開し、これからグラフを作るのは手作業です。

まずは、7MHzの垂直ダイポールの例

Swr00040_2

Swr00040xls_2

 

左上がアナライザーのLCD上に表示されたSWRカーブ、右上はこのデータをSDカードに転送セーブし、PC上でそのデータをエクセルデータとして開き、そのデータから作成したSWRカーブです。 周波数は100Hzの位まで取得された値、SWRは実際値を100倍した値となっています。 Y軸(縦方向)の目盛間隔がLCDより拡大されていますので、急激に変化しているようですが、数値を見比べると同じである事がわかります。

次は、14MHzのCWバンドに合わせたスカイドアの特性です。

Swr00042_2

Swr00042xls_2

LCDのY軸目盛は良く見慣れたSWR計の目盛と同様にSWRが高くなると、目盛間隔が詰まっていきますが、エクセルのグラフは等間隔ですので、カーブの様子が異なります。 縦軸を対数目盛にすればLCD表示に近づくでしょう。 このへんはエクセル表現のワザの話になります。 SWR目盛も100で割った小数点値にし、周波数も10で割った小数点値にすれば見栄えも良くなるでしょうが、そこはPC上で処理する事に、このアナライザーはこのままです。

このアナライザーのSWRカーブの最大取り込み数は7本として作ってあります。従い、エクセルデータもSWR0からSWR6までの7本分のデータがセーブ出来るようにしました。

Swr00043

左の画像は、14MHzバンドでCWバンドにチューニングした青色のデータとSSBバンドにチューニングしたときの赤色のデータを重ねて表示したものですが、この状態でもエクセルデータとして取り込めるようにしてあります。

このデータを実際にエクセルで取り込み、グラフ加工したエクセルデータを添付しておきます。

SWR00044.xlsをダウンロード

ここまでの対応でLCDマイコンのROM使用量は88%、RAM使用量は81%になりました。 まだ、デバッグや操作性の改善も残っていますので、多少は増えると思われます。 XC16の無償版コンパイラはオプチマイズ機能が無いと聞いていますので、最悪有償版かROM容量を256Kまでアップする覚悟をしていましたが、その必要はなさそうです。

SWRカーブをPCに取り込むという目標は達成できました。 試に私のマルチバンドアンテナのSWRデータを取り、エクセルデータにしてセーブし、グラフをPC上に表示してみましたが、 苦労してプログラム開発したのに、私の場合、その利用価値は有りませんでした。 アンテナの解析などを行いたい場合、取り込んだデータが役立つかもしれませんが、アンテナを調整して、最適使用状態に設定するのが目的なら、このような機能は不要みたいです。 ただし、一度セーブした過去のデータを呼び出して、アナライザーのLCD上に再表示させる事ができれば、それはそれで、役立つかも知れません。 機会がありましたらその機能追加にトライしたいと思います。

ところで、時々マイコンが暴走します。 以前の検討でPICKIT3に接続するMCLR端子に、パスコンが必要となっていましたので、0.01μFを追加しました。 その後、異常が発生しなくなりました。

SDカード対応の配線図をダウンロード

過去のデータを再表示 へ続く

INDEXに戻る