HF ALL BAND CW TRANSCEIVER
2015/04/14
BY Bofu Hattori
またまた性懲りもなくトランシーバーの製作です。
今回はCW専用機とし1.8MHz-28MHzのHF ALL BAND仕様としました。
2008年にELECRAFT社のK2 というキットを購入して製作したものを所有していますがそれを超える性能に挑戦します。

仕様
K2は良くまとまったセットでしかもキットにして性能が実現できる優れものです。
元々はCW専用機として設計されたらしいのですがオプションでSSBも付加できるようになっています。
実は私もSSBオプションも追加したのですが一度も使ったことはありません。
量産機でキットというのは非常に素晴らしいです。でも、このようなものはできないので一台限りの自作限定版にします。
目標の仕様としてはK2を使っていて気になったところを改善することに重点をおきます。
それが自動的に仕様となります。

1:周波数安定度
K2の最大の難点がこれでしょう。VFOをPLLで5kHz STEPとしその間をVCXOで補間している関係上周波数安定度は今ひとつです。周波数を決定する発振器が複数存在する為にドリフトがバラバラな感じがします。そんなんで周囲温度が変化するとかなり動きます。CW専用として通信時間が短時間で使っている分にはあまり問題にはなりませんが非常に気になります。
原理的に複雑な周波数構成が気に入りません。SSBが兼用できるという利点がありますが送信をヘテロダインで持ち上げています。当時としてはこれ以外にやりようがなかったので仕方ないですが当然スプリアスも多くなります。
2:フィルタ切り替え時の周波数オフセット誤差が大きい
これもK2の問題点でしょう。水晶のラダーフィルタの帯域幅を切り替えると僅かですがオフセットが出ます。フィルタの中心周波数補正にVCXOをDACで制御しているので仕方ないのですが、考えによっては上手く制御されています。何しろ補完周波数の全てを10Hzごとに付属の周波数カウンタで計測してオフセットをデータとして保存しています。とはいえ原理的に長期間経てば誤差の発生する可能性が高いです。
3:送受の周波数オフセットがある。
これは完全に調整できなかった項目です、他にやり方があるのかもしれません。残念ながら各バンドごとに最大で数百Hzの送受オフセットが発生しています。受信のフィルタ帯域が広いと大丈夫な時もありますが、狭くなるとズレが問題となります。送信時にXITで補正して使っていますがバンドごとに違うので面倒です。
3:受信部
IF 4.195MHzのシングルコンバージョンのためBPFのオンパレードです。必要なものなのですが場所も食うし調整が結構大変です。このBPFは送受で兼用しているため微妙に最良点が異なります。
受信のIPが小さい。ダイオードDBMなのでこんなものでしょう。当時のディバイスとしてはグッドチョイスなんでしょうね。
1.8/1.9MHzバンドがオプションである。これも標準仕様でついていると嬉しいですがそうなっていません。CW専用機としてはマストかなと思います。
ハイバンドの感度が今ひとつという感が否めません。良く使う21MHzがあまり聞こえません。アンテナがしょぼいせいでしょうがそれにしてももうちょっと何とかならないものかと思っています。
4:大きさが大きい
当時としては小さくて非常に軽いリグだったはずです。確かに現在でも軽い機器の部類に入ると思います。ですがもう一回り以上小さくなると持ち運びが便利になります。移動運用には更に利便性が向上します。
このように問題点が整理できたところで目標仕様を決めておきます。
A:周波数構成
受信部は49.95MHzの第一中間周波数を使用したアップコンバージョン方式。
送信部はDDSから直接送信周波数を発生させる方式とする。
受信のMIXerにはN-MOS SD8901CYを使ったDBMを使い+19dBmの局発を使用する。カタログ上+37-38dBmのIPになるらしい。
簡略化のため受信のフロントエンドのBPFはLPFのみとする。このLPFは送信の高調波抑圧用のものを兼用。
CW FILTER は4MHzのHC49USの水晶振動子を8個使ったラダーフィルタですが、K2に倣いバリキャップを入れて可変帯域にします。
このとき帯域を変化させると中心周波数がずれますのでこれを第二ローカルの周波数を変えて補正します。
この補正値はDDS2で行います。設定値は0.62585Hz分解能です。又第二IFの中心周波数が変わりますので復調時に使うBFO周波数も変化させる必要があります。DDS3はこのための信号源でこれは0.062585Hz分解能で可変可能です。
ブロックダイヤグラムはこちら

回路図
1:FRONT END
2:2ndIF FILTER/IF AMP DET AF AMP
3:DDS1/LPF1/LPF2
4:LO1/VCO/PLL
5:DDS2/BPF/AMP/VCO2/PLL2
6:10W RF PA
7:MAIN MPU/LCD


B:製作
例によってプリント基板は起しません。面倒だからです。秋月のSMDプロトタイプ用基板を使います。
この基板を4枚集合させて一つのユニットにします。
これを2つ作って各々フロントエンド・IF&AF ユニットともう一つをDDSなどのローカル発振器ユニットにします。
ケースはタカチのYM180を2個背中合わせにして上下にユニットを収納します。
これでシールド効果も大分取れます。

ローカル発振器の全体

左上から2nd LOとそのPLL回路、さらにその下にLO1VCO/PLL,
右側は上からDDS2,DDS3制御用マイコン(ATTINY2313)。
その下側にDDS2/DDS3 さらにシールド板の下側にDDS1、左側にLPF群
一番上のパネルに張り付いているのがMAIN MPU LCD UNIT

FRONT END to AF側の全体

このユニットには当初設計したV-CAP同調フロントエンドのBPF部分が搭載されたままになっている。(上側左部分)
N-MOS DBMの性能が非常に良いので接続しなくてもその影響が確認できない。
試しに夜間大きなアンテナを使っても混変調らしいものは全く発生しない。
これに気を良くして1.8MHzバンド拡張をしたため現在はFRONT END BPFを使用していない。
右上部が49.95MHz IF2、中央の青い可変抵抗器がある変換基板がCALOGIC SD8901CY N-MOS DBM
右下部がラダークリスタルフィルタ部V-CAPを入れて可変帯域としている。
左下部はIFAMPとDET/AF AMPやサイドトーン回路が入っている。
電池はIF AMPのAGC電源をマイナスに引いているものだ。
しかし下手に作ったAGC回路の制御のアンダーシュートが大きく強信号時の頭で完全にカットオフしてしまう。
非常に聞き辛いためループ定数やゲインなど色々対策をしたが今ひとつ決定打に欠ける。
結局マイナスに引かなくてもCWでは復調音の歪がSSBほど気にならないので現在は撤去した。
まだ結構隙間がありますね。

受信 2nd IF 3.998MHz ラダーフィルタ
B/W=500Hz

1st IF 49.95MHz MCF
B/W=20kHz
手持ちのMCFを使ったのでちょっと広い感じがします。

LO1のスペクトラム 実際の出力は+18dBm位。

ローカル発振器の純度を何とか比較してみようと思いついたのがこれ。
まず10MHz水晶発振器(OCXO)の6逓倍出力を用意する。
スペアナのDISPLAY Aに画面のREFに合わせて逓倍出力(60MHz)を表示しDISPLAY BにLO1 OUTを表示した。
正確にCNRを計測する道具がないのでこんな方法でやってみた。比較にはなると思う。
画面上で近傍がやや上にあって重なっていないものがLO1 OUT
あとはスペアナの実力なのでよく判らないが6dB以上水晶発振器の方が良さそうだ。

まあ、これが本当ならこの第一局発も使えそう。実は、このLO1は大分近傍のノイズで苦労した。
当初、LOOP FILTERのカットオフを下に寄せて近傍ノイズを低減しようと目論んだが、見事に1000Hz位のところにピークが発生した。
ダンピングを効かせてもこのピークはあまり収まらず、ピークのあたりにはフロアノイズが持ち上がったようになる。
従って、この状態でLO1を受信MIXerに供給するとノイズモジュレーションが顕著となり非常にノイズっぽい受信状態となってしまった。
結局無理な帯域制限はやらないほうがいいということで、ループのシミュレーションを何度かやり直し現状のループフィルタの定数にした。
現状では自然角周波数値は50kHz程度で帯域は4kHz位からなだらかに降下している。

VCOは当初コルピッツ回路で試作したが発振停止してカバレージがとれず諦めた。
Vcont=5Vから6Vに変更してもコルピッツ回路ではうまくいかなかった。
暫く考えてハートレー回路で試してみたところ充分カバレージが取れることが判った。
出力も充分である。ハートレー方式はコイルからエミッタにリンクかタップを介して帰還させる必要がある。
このタップ、もしくはリンクコイルは発振条件的に比較的鈍感なのだが、使用するディバイスによっては異常発振する。
発振コイルはリングコアに巻いた関係でタップを出すのは難しい。したがってリンクコイルを2T巻いた。
特に低周波の発振に対しては要注意である。今回も低周波数で異常発振を起した。
対策はエミッタの抵抗とバイパスキャパシタをリンクコイルに直列に挿入し、バイパスキャパシタの値を220pFして対応した。
これで充分安定に動作している。リンクコイル1Tでは帰還量が小さく高周波数領域で発振停止してしまう。

LO3 DDS OUT
AD9833の出力の様子である。周波数は大分ずれた表示となっているがSPANが広いのでこんな風になってしまうらしい。
左側に見えるごちゃっとしたものはDDSを制御しているマイコンからのノイズ。
LO3はこの出力をそのまま使うのでBPFを通してなくしてやらないと駄目である。
何処かの経路で混入するらしいがやって見た範囲では判らなかった。
BPFで抜き取るのは本意ではないのだが止むを得ない。
この出力は200Hzずつオフセットさせてフィルタの帯域を切り替えた時に使う。

B/W=500Hz LO3=3.9989MHz LO2=53.9497MHz
B/W=300Hz LO3=3.9987MHz LO2=53.9495MHz
B/W=100Hz LO3=3.9985MHz LO2=53.9493MHz

このように制御すると受信信号はフィルタの帯域幅を切り替えても常に中心にあって受信トーンも変化しない。
当然ながら受信周波数表示も変化しない。DDS1を変化させていないので当然である。

組み立てと調整

2015/1/20からユニットを作り始めた。最初はFRONT END BPFだったが今では使用していない。
本当はこのV-CAP BPFが結構上手く動作するので始めたプロジェクトだったが大きく変更されてしまった。
このBPFを使うとALL BAND機が小さくできるな。と思ったのだ・・・・。
さて、その後、2日ほどでIF AMP DETと組み上げて部分的に確認した。
このときはまだ件のBPFを使っていた。進むに連れてだんだん様子が怪しくなる。

信号系はAF段を残して中断しローカル発振器群の製作に取り掛かった。
DDS 三個とVCO/PLL二箇所で済んでしまうから簡単かなと思ったのである。
そんなに簡単ではなかった。

最初に使ったIF1のMCFは42.93MHzだった。特性を測るとやけに帯域幅が広い、40kHzを超える。
それに帯域外に大きくハンプもあって使用するには抵抗があった。
とはいいつつ面倒さもあって何とか使えないものかかと考えていたが、思わぬ問題に突き当たった。
結果、現行の49.95MHz B/W=20kHzに変更したのだ。

問題というのはLO3の周波数とLO2/10の周波数が接近しているのだ。
こんな事は最初から判っていないといけないことだが気がつかなかった。
LO3は3.998MHz近辺でLO2/10は4.693MHz付近だ。
差は700kHzくらいなので40dB以上も減衰させることは簡便なLC BPF(アキシャルのチョークコイルを使ったBPF)では無理である。
生憎、LO2 DDSとLO3 DDSは同じ基板に搭載されているので、30dBを超えて減衰させることはできなかった。
万事休すである。他に方法があるのかもしれないがこの造作では無理そうな感じである。
ということもあって1stIFの周波数を変更する事になった。
結果、周波数差は1.3MHzとなって簡便なBPFでも50dB以上の減衰比が得られた。

LO1のVCOには毎回散々な目にあっているのだ。どうも固定した手法が見つからない。
上述したようにあれこれと手こずりながら完成したものを最終形にして組み込んだ。
だが、今回の回路方式が最善かと言うとそうでもないのでまた検討の必要があるだろう。
ただかなり再現性は高くなってきたことだけは確かである。

また、手持ちのフィルタをつかっているのでスプリアスに対して逃げ切れない周波数があることも確かでこればかりは仕方ない。
ただ、今のところ各CW BANDの周波数に絶望的なスプリアスはでていないようだ。

使い勝手
ダイアルのフィーリングもまあまあでチューニングは楽にできる。
ノイズも少なく受信音も比較的好みとなった。
フィルタの可変もスムーズでよく制限が掛かっているように聞こえる。
ハイバンドの感度はK2より数段よくなった。
IMはK2をしのぐ、夜間のローバンドでもびくともしない。
それでトップのBPFを外す事を思いついたのである。

それと10個のキーエントリー以外は音量調整とメモリーキーヤのセレクターノブしかなく、迷う事はない。
キーの表面に文字が大きく印刷されているのも年寄り向きである。
実はこれが目的で自作しているようなものだ。
既製品は操作がわからなくなってしまうので使う気にならない。
自作品の場合、MMIが気になったら自分でプログラムを修正すればいいだけだから。
まあ、他の人は絶対にやってくれないが・・。
送信出力は各バンドで10W以上出てくるので充分なレベルだ。
出力低減機能を設けたほうがいいと思っている。
そのうちFUC KEYを使った2nd FUNCTION機能で実現しよう。