SDR Feed

2022年2月13日 (日)

160m SSB 送信機 ケースイン

カテゴリ<SDR> [1.8MHz  自作  dsPIC]

200Wリニアアンプも完成しましたので、いよいよ、160m SSB送信機をケースに収納します。

手配しておりましたIDEALのケースが届きましたので、2月中旬の屋外で、ケース加工を行い、2日間で、組み立て完了しました。

160mssbtxfront

160mssbtxinsaide1

とりあえず、通電テストは完了しました。 ケースの高さの計算を間違い、ファイナルのコアが天板ぎりぎりです。 巻線があると、この巻線の直径分のみ天井が膨らみますので、コアが天板に近い部分の巻線をずらしました。 写真で青色のコアが直に見えているところがそれです。 出力3.5W以下なので、多分OK? これから詳細の確認にはいります。

200Wのリニアアンプに接続したところ、出力が出すぎますので、マイクボリューム最大及びCW送信時に200W出るようにVR7を調整してゲインを下げました。最終的なこのユニットでの出力は約3.2Wくらいになりました。

 

T4(終段の出力トランス)の1.8MHzに於ける1次側インピーダンスが60Ωくらいしか無く、ちょっと少ない気がしますので、コアをESD-R-18SDから、ESD-R-25L-Aへ変更しました。 これで1次側のインピーダンスは130Ωくらいになり、実際のインピーダンス12.5Ωの約10倍になりましたが、出力が若干落ちたものの、IMDはあまり変わりませんでした。

下が、その変更後の出力トランスです。

160mtxt4corechange_2

この状態で、実際にダイナミックマイクをつないで、交信のシュミレーションをしてみました。 マイクの出力インピーダンスを50KΩに設定してあったのですが、ゲインが不足します。マイクとの距離を20cmくらいにしたとき、マイクVR最大でも、ピークで30Wくらいしか出ません。 マイクアンプのゲイン設定を間違ったようです。 本来、ALCアンプの入力レベルは-40dBくらい必要なのですが、ALCが動作開始する入力レベルは-28dBしかなく、12dBの不足です。 やむなく、ALCアンプのゲイン設定を40dBから60dBに変更し、8dBのオーバー分はマイクVRを絞って使う事にしました。 

 

一応は使える状態になりましたので、これでTSSへ保証認定依頼する事にします。

 TSSへ送ったブロックダイヤグラム 160m_SDR_TX_BLOCK.pdfをダウンロード

TSSへ日曜日に送り、保証料の振り込みを月曜日の朝一に実行するように銀行へ依頼したら、月曜日の夕方には、保証認定する旨のメールが届き、正式認定書はその週の金曜日に届きました。 さらに次の月曜日の朝、総通へ変更申請を行うと、火曜日に審査終了し、免許状送付用の封筒を送れというメールが総通よりきましたので、水曜日に返信用封筒を送ると、翌週の月曜日に変更された免許状が届きました。 ただ、アンテナがまだ張られていない事。 200W送信機用のAC/DCコンバーターから約100KHzおきに発生するS9オーバーのノイズ対策が出来ていない事もあり、すぐにはON AIRできそうもありません。

AC/DCコンバーター電源からのノイズは対策できました。

アンテナが出来ました。

アンテナの動作確認出来た次の日、午後7時過ぎにこの送信機+200WリニアでCQを出しました。 香川県高松市からコール頂き、送信機も正常に動作している事を確認できました。 ただ、送信機の回路に不安定要素があるみたいで、電源ONしてもメインマイコンがSTOPしてしまう事があったり、マイクから変調がかからないと言う故障があります。 原因は、チップ部品のハンダ付け不良と、ジャンパー線の被覆が薄い事もあり、基板のビス締め等の外圧により、チップ部品のハンダや電極が割れたり、ショートする事があるみたいです。 ON AIR前に一通りは修理対応を行いましたが、その内、また発生するかも知れません。 

使い始めてから1か月たちましたが、同様な問題の発生はなくなりましたが、時々送信モードにしても電波が出ないという現象が出ます。多分、マイクスタンドのスタンバイSWのチャタリングだろうと、波形をチェックしてみました。 通常の操作ではなんともないのですが、たまに左下のような波形がマイコン端子に加わり、異常動作しているものでした。 対策として、マイコンの入力端子に接続してある0.1uFのコンデンサを1uFに変更しました。 右下がその波形で、何回かトライし、最悪状態での波形になります。 PTT Swが切り替わったかどうかの判断期間を50mSECに修正。

C_0r1_160mtx

C_1r0_160mtx


たまに、送信周波数とLCD表示が一致しないという問題が発生しました。 ロータリーエンコーダーのチェックは1m秒間隔で行っていますが、LCD表示の更新には約15m秒かかります。 15m秒の間に、DDSの周波数を変更し、次に周波数表示を変更しますが、DDSの周波数変更中に周波数の変更があった場合、この新しい周波数を表示してしまうというバグです。 対策としては、ロータリーエンコーダーのチェック間隔を4mSECに変更し、周波数変更があったら、DDSと表示の周波数変更を連続して行い、その間に周波数の変更が有っても、それは次のステップで処理するというプログラムに修正しました。 LCDの表示の追従がやや遅れますが、表示と送信周波数の不一致は無くなりました。 また、ラストメモリーの周波数がずれるというバグも修正しました。

音声信号の低域をカットしすぎでしたので、60HzまでFIRフィルターを伸ばしました。 ただしLSB用のフィルターで100Hzくらいまでしか対応できないので、実質は100Hz止まりです。

Send_swon

送信と受信を何回も繰り返していると、時々、送信モードには切り替わるけど。電波が送信されないというトラブルが出続けていました。 この現象は、ラグチューで交信時間が30分以上になるとき、特に頻繁に発生していました。 そこで、この現象が発生した時のSEND SWの信号ラインの電圧変化をモニターする事にしました。 そして、数十回の操作の結果、その症状が現れるときのSENDラインの異常波形をとらえる事に成功しました。 左上のデジタルオシロの波形の時、この送信されない現象が発生しました。 原因はわかりませんが、SENDにした途端、マイナス1.7Vくらいの電圧が発生し、このマイナス電圧で、システムマイコンがラッチアップしてしまう事がわかりました。 対策はこのラインにマイナス方向のパルスを吸収するダイオードを追加する事にしました。ダイオードを追加した結果、このマイナスパルスの先頭値は-0.3Vくらいに押さえられ、実験の最中では、異常現象は発生しません。 多分対策出来たと思えますので、しばらく様子を見る事にします。
 
 

最終配線図 160m_tx_5.pdfをダウンロード

最新のソフトウェアです。 2022年4月28日更新

SSB_generator_160m_2.cをダウンロード

160m_dspSSB_TX_2.cをダウンロード

float_TapFIR_AM_S36k_T301_BPF.hをダウンロード

float_TapFIR_B2R8k_S36k_T201_BPF.hをダウンロード

float_TapFIR_LSB2R8k_S36k_T401_BPF.hをダウンロード

 

INDEXへ戻る

2022年1月23日 (日)

160m SSB 200W リニアアンプ

カテゴリ<SDR> <RFパワーアンプ(リニアアンプ>  [1.8MHz  自作]

160mバンド用のQRP SSB送信機の基本機能が完成しましたので、次は、160mバンド用200Wリニアアンプの製作です。 製作と言っても、すでに完成状態にある40mバンド用200Wリニアアンプに1.8MHzのLPFを追加し、2バンド仕様に改造するものです。

回路図は以下のようになります。

40m160m_200w_amp

40m160m_lpf

いままでの40mバンド用LPFに160mバンドのLPFを追加し、これをリレーで選択します。

Lpf2mhz_200w

左のデータがこの160mバンド用LPFの単体特性です。 使用したカーボニルコアはT68-2で、1mmφ UEWを約30回巻いて、必要なインダクタになるように巻き数を調整しました。  一応アンプ部は広帯域設計ですので、160mバンドもまともに動作してくれるはずです。

この追加改造は終わりましたので、TS-930を信号源として、動作確認を行いました。 

 

その結果、1.85MHzでのリニアリティが全く取れません。 リニアリティが取れない最大の原因は、過去の例から、T2のインダクタンス不足とアンバランスが考えられますので、バイファイラ巻きのトランスT2を巻きなおし、なおかつ、コイルの極性も吟味した結果以下のようになりました。

160m_200w_data

左が、7MHzのリニアアンプの仕様のまま、LPFのみ2MHz用に切り替えた入出力特性です。130Wを過ぎたあたりから、リニアリティが悪くなっています。 

真ん中は、T2の巻線を従来の3.5Tから7.5Tに変更したもので、180Wくらいまではリニアリティを確保出来ています。 そして、200W出力時の入力は3.4Wくらいです。実際の1.85MHzの送信機の最大出力は3.3Wくらいに留めて置く事にします。

右端は、T2を変更した後の7MHzのデータでリニアリティは前回と同じくらいですが、ゲインと最大出力が少し落ち、5W入力でやっと200Wでています。 この原因は伝送線路トランスのインダクタを増やした事により生じたもので、伝送線路トランスの最適インダクタンスが7MHzと1.8MHzとは異なるようです。 その後、色々調整などを行った結果、7MHzも1.8MHzもゲインが下がり、7MHzではCWで7W入力で、1.8MHzは同じくCWにて5Wの入力で200W出る状態で落ち着いています。

この状態で、高調波レベルを確認してみました。 第2高調波が-44dBくらいしか取れません。 T2のバランスが崩れているかもと、巻線を1.5D2Vに代えてみましたが、芯線と外皮のDC抵抗の差により、かえって悪くなる始末。 念の為とT3のインダクタンスをチェックすると41uHくらいです。1.8MHzでは460Ωくらいのインピーダンスで、実際のインピーダンス50Ωに対して9倍です。 そこで、このインダクタンスを90uHくらいまで増やしてみましたが、高調波のレベルは変わらず、出力のみが落ちていきます。 従い、T3は現状のままとしました。 さらに、T2のバイファイラ巻線はバラツキが大きい為、2本のワイヤーを撚ったものではなく、AWG24ですが、平行コードに変更すると、若干の改善は見られましたが、ケーブルのDC抵抗により7MHzで180Wくらいしか出なくなりました。 T2の巻線を0.50SQに戻し、2本のワイヤーのより密度を1.5倍くらいにし、ターン数は7.5Tにもどすと、7MHzでも200Wをクリアし、やっと-50dBくらいになりました。

この検討の途中でT3がDC直結になっているのが問題かもと考え、0.1uFのコンデンサでDCカットをしてみましたが、第2高調波のレベルは全く変わりませんでした。 実はこの検討のさなかに、操作ミスや不注意によるFET破壊が2回もあり、現在はebayで手配したU$2.20の中華製偽ブランド品の2SK1530を使っていますが、この偽ブランド品は正規品の東芝製より特性が良いという情報がインターネット上に有りました。 そこで、改めて、高調波歪が最小となるアイドル電流を調整すると、なんと、100W出力時、第2高調波が10dBくらい下がるポイントがあります。 しかも、7MHzと1.8MHzでの高調波最小ポイントは一致しています。

結局、第2高調波が多いのは、東芝製に比べて、バイアス電流を少し少なくする事で解決する事が出来ました。

以下の写真は160mバンドを追加した最終状態です。

2band_riner_00

1r8mhz_200w

左のスペアナデータは、1.8MHzにて200W送信時の高調波データです。

第2高調波が-55dB程度で一番大きくなっていますが、新スプリアス規制に対して合格ラインです。

 

2Band化した配線図です。  

160m_PWR-AMP200W_2.pdfをダウンロード

 

 

次に気にしていたIMDの確認です。 700Hzと2300Hzの2-tone信号によります。

160m100pep

160m200pep


Imd_100w_005

Imd_200w_006

左上が100Wpep時、右上が200Wpep時の2-tone波形と3rd IMDです。 100Wpepで-29dBc程度、200Wpepで-23dBc程度。決して良くはありませんが、許容できる限界でしょう。 

200w時のIMDが悪いのは明らかにリニアリティ不足であり、まともに200Wが出力されていない事が原因です。 周波数が低くなればIMDも良くなるのかと思っていましたが、どうもそうではないようですね。 この問題は、少し時間をかけて解決策をさぐろうと思います。
 

160m SSB 送信機 ケースイン へ続く

 

INDEXへ戻る

2022年1月10日 (月)

160m SSB送信機 QRP パワーアンプ

カテゴリ<SDR> [1.8MHz  自作  dsPIC]

1.8MHz用SSB送信機から出力が得られるようになりましたので、これで200Wリニアアンプをドライブできる出力、約5Wが得られるQRPリニアアンプの製作です。

リニアアンプの製作にかかる前に2MHzのLPFを作ります。

2mhzlpfschema

2mhzlpfshumiratiton

インターネット上の計算で求めた2MHz LPFの各定数が左上の回路図です。 その時のシュミレーションデータが右上になります。 

1.9MHzまでフラットで、第2高調波となる3.6MHz付近で,-35dBくらいの7次LPFとしては一般的な特性です。

Im2mhz_lpf_2

Lpf2mhzdata

そして、実際に作られたLPFが上の写真で、その実測データが左の特性になります。

計算のままの定数で作ると、1.8MHz当たりで-2dBくらいになりますので、C2の2660Pを2100Pに変更してあります。 実物の写真でもC2を作る560Pのコンデンサのリードを半田付けせず宙に浮いているのが判ると思います。

この修正を行っても第2高調波付近の減衰は-35dBくらいを確保できていますので、このLPFで進行します。

使用しましたカーボニルコアはT50-2で、0.5UEWを約30回巻いて5uHをめざしましたが、ぴったり5uHになっていません。 また、7uHも実際は7.14uHになっていましたので、計算通りにはいかないようです。 LPFの各シールド壁を貫通する貫通コンデンサは100Pのものですので、それを加算してあります。

コイルのインダクタンスはこれで計測しました。

160mpwramp_sch

160m_5w_ampunit

そして、上の回路図が、5W QRP AMPの構想レベルです。

下の写真がそれを実際に組んだ状態です。

終段は7MHzと同じ、2SK2796Lのプッシュプルで、そのドライバーは手持ちの関係で2SK2382です。 当初ドライバーをトランジスターで検討したのですが、入力インピーダンスが低すぎて、前段のリニアリティが確保しにくい状態でしたので、ジャンク箱の中で眠っていたスィッチング用高出力のFETを使用する事にしました。  このFETはモールドパックの外観をしており、放熱板にビス止めし、無信号時の発熱を防止すると共に、ソースに0.33Ωの抵抗を挿入し、かつダイオードによる熱補正もかけて安定化を図っています。

次にファイナルにダミー抵抗を接続し、特性の確認をおこないました。 結果はNGでした。 最大出力は10Wくらいは得えられますが、とにかくリニアリティがものすごく悪い。 2トーン信号を加えて波形を見ていると、2Wくらいまではなんとか見られる波形をしていますが、それを超えたとたん波形がゆがんできます。 波形が左右で歪むので、原因はフェライトコアと思われます。

調査した結果、ドライバー段のトランスが原因でした。 このトランスのコアは、7MHzと同じものでしたが、今回のドライバーのFETは電流が多くなっている事に加えて、周波数が低いからと、7MHzのとき1次側が2Tであったものを4Tに替えた事が原因で、コアが磁気飽和したものでした。 そこで、磁気飽和がおこりにくくするため、コアサイズをツーランクアップしTDKのHF70BB9.5x10.4x4.9という品番の変更し、巻き数も2Tにもどしました。 しかし、2Tに戻した事により1.8MHzでのロスが生じますので、2次を4Tにするのではなく、6Tとし、かつ全巻線をバイファイラ巻きとしました。 これらの変更を行った結果2W以上でも歪は発生しなくなりましたが、10Wで歪始める状況でしたので、L3のコアをESD-R-28C-1に変更しました。 また、T4のコアは予定通りESD-R-18SDのままですが、1次側を4T、2次側8Tとしたバイファイラ巻きにした結果、クリップ開始は12Wくらいになり、最大出力は16Wとなりました。

160mpwramp2_sch

上の配線図がこれらの変更を加えた最終状態です。 その最終実装状態は下のようになりました。

10wampwtlpf

5wpep

10wpep


左上の波形が5Wpep、右上が10Wpepの波形で、一応まともな波形をしています。 実際に動作するのはMAX5Wの状態です。

5wpwroutwide

左は5W出力時の広帯域スプリアスデータです。 基本波の前後、百数十KHzの範囲にスプリアスが見えますが、問題ないレベルです。 また、高調波は完全に無視できます。

10Wの時も測定していますが、同じ状態でした。

ただ、リニアリティは、前回の7MHz用10Wアンプに比べ、良くありません。

5Wpepのとき、3次IMDが-28dBくらいでした。 このままでは、SDRの名が廃れますので、ON AIRする訳にはいきません。 

 

 

Imd5wpep_3

詳細調べたところ、ドライバーFETの入力インピーダンスがまだかなり低く、その前の2SC2712のアンプで歪んでいることがわかりました。 そこで、パワーアンプの前にマッチングトランスを置いて、インピーダンスマッチングを行った結果、ドライバー段入力部で3次IMDが-37dBとなりました。 しかし、7MHzアンプでは、この段のIMDは-50dBくらいありました。 そして、5Wpep出力時のIMDは左のデータのごとく-28dBしか有りません。 まず、ミキサーに問題がありそうです。 さらに、ドライバーFETに問題があると考え、手持ちの他のFETやトランジスターに変更してみましたが、どの条件でもあまり変化が無い事が判りました。 ただ、7MHzの時と同じようにドライバーをRF電力増幅用の素子に変えると若干の改善がみられます。 終段の2SK2796Lは7MHzのアンプで実績がありましたので、疑っていなかったのですが、試しに、片方のアイドリング電流を変化させると、IMDのデータが変わります。 どうも、7MHzのアンプは、たまたま特性のそろったFETを使用した為、すんなり好成績がえられましたが、プッシュプルで使用するFETの特性をペアでそろえる必要があるみたいです。 

160mimd

 

そこで、全回路を再点検する事にしました。 DSPの出力をOP-AMPでバッファリングしていますが、このアンプの出力ポイントでの3次IMDは、-60dB以上ありました。 従い、ミキサーに問題があるようです。 前回の7MHzミキサーと異なる部分がありますので、定数を7MHzミキサーに合わせました。 R49は7MHz版には無かったのですが、効果がありそうという事で、追加しました。 その結果、Q4の出力ポイントでの3次IMDは-44dBくらいまで改善しました。 

Pwramp02

Imd5wpep


次に、ドライバーのFETはCB用のトランジスター2SC2078に変更しました。 入力インピーダンスが下がりますが、 トランスを追加しましたので、問題なく動作します。 トランジスターにした事により、出力インピーダンスが変わりましたので、T3の巻き数比を2:6から2:4に変えました。 そして、ファイナルのアイドリング電流をIMDがベストになるように調整した結果、5Wpep時の3次IMDが-35dB、5次IMDが-40dBまで改善できました。
7MHzのようにはいきませんでしたが、一応納得できるレベルです。

  

 

 H3e100pct_2

気にしていました、H3Eの変調波形を確認してみました。 左の波形が100%変調のAMから片側のサイドバンドを削除した状態です。

この波形をエンベロープ検波すると、歪だらけになると思われ、実際に音楽を変調してTS-850にて聞いてみると、歪だらけの音でした。 しかし、音声だけならあまり気にならなく、SSBの時より了解度はアップします。 多分、歪んだ高調波のおかげで、サシスセソの音がはっきり聞こえる為に生じる現象と思われますので、キャリアレベルはSSBの最大振幅の半分(電力では1/4)に設定し、もし、QSOの相手局より歪が多いですと言われたら、H3Eであると言い訳する事にします。

 

これまでの全ての変更を網羅した配線図 160m_tx_4.pdfをダウンロード

 

次は200Wリニアアンプの検討になります。

 


160m SSB 200W リニアアンプ へ続く。
 

INDEXへ戻る

2021年12月31日 (金)

160m SSB送信機 組み立て開始

カテゴリ<SDR> [1.8MHz  自作  dsPIC]

dsPICによるSSBジェネレーターの構想がまとまりましたので、これをベースにブロックダイヤグラムを検討し、実際の送信機製作にかかります。

まず、ブロックダイヤグラムグラムです。

160mtx_block

 今回、製作するのは、上のブロックダイヤグラムの緑色の枠で囲った部分のみです。 リニアアンプは出力5Wくらいのアンプを想定し、この後にさらに200Wのアンプを繋ぎますが、まだ、どのような構想にするか白紙状態です。

構成は、前回の7MHz用トランシーバーと全く同じですが、受信が有りませんので、かなりすっきりとしたブロックになっております。変わったところは、マイクアンプのリミッターアンプとして、ONセミコンのSA2011の手持ちがありませんので、秋月で入手できるNJM2783に変更した事とと、DSPの出力バッファとして3V電源の使用が標準となるOP-AMP AD8352に変更したくらいです。 それに加えて、前回の記事で紹介した周波数関係に修正しました。

160tx_mainpcb

回路の実装は秋月で扱っているユニバーサル基板で一番安い95mm x 72mm片面基板上に行いますが、この実寸大の図面をJWW CADで作成し、それに個々の部品を配置して、全体の信号の配置を把握してから作業にかかります。

左がその図面で、これを作図するようになってから、基板配線の作り替えが無くなりました。

一応、部品の外形寸法は実物を実測したものを使っています。配置が悪くて部品を移動したいときは、JWWの選択機能を使い、移動もしくは、複写で対応します。 実際の配線に移る時に、配線のやりやすい配置が見つかり、このJWW図面の通り出来上がる事はありませんが、それでも最初に作図して置けば、最後に部品を収納できずに基板が2枚に別れるような問題は生じません。

160mtx_mainpcb_front

160mtx_mainpcb_back

160mtx_pwr_suppcb_

JWWの配置図をベースに実装した基板が上の状態です。左が、部品実装面、右が配線とチップ部品の実装面です。今回はdsPICとPICを乗せた基板にRF回路も実装しましたが、電源部分を収納できませんでしたので、左の基板のように、電源部のみ専用の小基板で作成しました。 電源と言っても、12Vの外部電源から5Vの電源を作る事と、受信機やリニアアンプの送受信切り替えなどのインターフェースのみ実装してあります。

これらの基板は、まだ組みあがったばかりで、一部アナログ回路のベース抵抗も未実装です。 これは、信号を加えながら、歪最良点を探した後、固定抵抗に置き換えます。 

これらの回路の仮の配線図です。 160m_tx_0.pdfをダウンロード

まだ、実働テストをしていませんので、この配線図の通りで動作する補償はないのですが、配線図が無ければ、試作もできませんので、とりあえず机上で作成された配線図になります。 リニアアンプ部は仮の状態で、まだ使用する石も決まっていません。

今後、通電テストやソフトのインストールを繰り返しながら完成度を上げていく事にします。

まず、マイクアンプから。 1石アンプの初段のベース抵抗を決めます。 当初の設定は5V電源で47Kでしたが、電源電圧を9V近くまで上げましたから、5V設定時の抵抗のままでは、予想通り波形の半分がクリップしていました。 ここは500KΩの可変抵抗をもってきて、最適値を探したところ、180KΩとでましたので、180Kの固定抵抗に決定。ちなみに、この時の電源電圧は8.5Vでした。 この1石アンプのゲインは計算上で29dBあります。

次に初めて使います、JRCのALCアンプです。 マイクVRの部分で-6dBのロスがありますので、このALCアンプのゲインを40dBに設定すれば、通常のマイクアンプゲイン約60dBになりますので、このALCアンプのゲイン設定は40dBとしました。 次に、出力レベルですが、dsPICのAD入力は3VppがMAXですから、ICとしての出力レベルは、この後に続く、CRによる3次LPFの通過損失をカバーできる4Vppくらいが必要です。 実測値は3Vppくらいいしか有りませんでしたので、ポストアンプで2.5dBくらいのゲインを確保しないといけません。 そこで、初期設定で0dBのゲインにしていたものを、約2.6dBのゲインが得られるよう回路変更しました。

下の配線図で、R13, R14, C5 の追加です。 

160mtx_alcampchange

次にCRによる3次LPFですが、CR LPFを多段接続した時のノウハウがアナデバの技術情報として公開されていましたので、これを利用しました。 公開されているのは2次まででしたが、この考え方で3次を作成したら、良好な結果が得られました。 基本的な考え方はCRによるターンオーバー周波数を一定にしながら、CとRを10倍単位で変化させる事です。 私の回路では、シリーズに入る抵抗の合計は9.9KΩでしたので、82+820+8.2Kの構成で良いのですが、最適なコンデンサの容量を手持ちしていませんでしたので75+750+7.5Kのシリーズ抵抗に0.33, 0.033, 0.0033uFのコンデンサで構成することにしました。 左上の回路図で、R75,R23,R22,C44,C43,C27が該当します。

160mtx_alcampinout

160mtx_alcampfreq

上のふたつのグラフが最終的なALCアンプのデータです。 左上は、外部入力端子から入力を加え、リミッターが動作した時の特性で、オーバーレベル30dBでも振幅を一定に保ち、歪もありません。 マイクアンプとしては、全く問題なしです。 右上のグラフは青の線がALCアンプの振幅制限がかかっていないレベルでの、周波数特性です。 高域は10KHzまでフラットになっています。 赤色のデータは3次のCR LPFを通過した後の、dsPICのAD入力に加わるレベルの周波数特性です。3KHzで約-3dB、10KHzで-20dBとなっています。 18KHz以上の信号が入力されるとエイリアシングノイズが発生しますが、信号源がマイクですので、問題は無いでしょう。 グラフ上では1KHzのレベル差は無しとなっていますが、実際はLPFの前後で2.5dBのゲイン差があります。 このCR定数を決めるのに丸1日かかっていますが、CR多段接続時のノウハウが取得出来た事で大きな成果となりました。 この多段接続の最大のノウハウはLPFへ出力するアンプの出力インピーダンスが、せめて初段の抵抗の半分以下で有る事、シリーズ抵抗の合計値は負荷となるアンプ及びバイアス供給回路からなる負荷インピーダンスの1/4以下である事でした。

ここまで出来たので、次はdsPICの中身になりますが、その前に、システムマイコンをまともに動作させることが先決です。 

以下2022年1月1日からの作業になります。

システムマイコンは、受信機能を廃止するだけで簡単にできると考えていましたが、いつものコネクターのPIN番号の逆順が発生し、1日、棒に振った後、なんとか動作を確認できました。 この確認の最中に、送信インジケーターが抜けていることに気づき、コネクタの変更も生じましたが下の写真のごとく、とりあえず、必要な機能は表面上は正常に動いています。

160mtx_micon

システムマイコンがOKとなりましたので、次はLO2とLO1の確認です。

Lo2_16mhz

Lo1_18mhz

左上がLO2、右上が1850KHz送信時のLO1です。 両方ともスペアナの校正は画面のセンター周波数のみで行われており、表示されている周波数は誤差がありますが、実際の周波数は標準電波で校正した周波数カウンターで、LO2は16003.937KHz付近に、LO1は17879.855KHzに合わせてあります。 LO2は2SC2712によるコルピッツ発振器、LO1はSi5351による可変周波数発振器からです。LO1の10.7MHz付近に-52dBくらいのスプリアスがありますが、これが問題になる事はないでしょう。 その他、高調波も問題になりません。

次は、dsPICによるSSBジェネレーターの確認です。

Lsbout

Cwout

Amout

上の3枚のスペクトルはWSにてPC上に表示させたdsPICの出力です。 dspPICの入力からホワイトノイズを加え、上から順にLSB,CW,AMモードです。 一応期待通りの出力が得られております。 AMはLSBにキャリアを加えただけのH3E形式です。   WSでモニターすると、DSPの中でデジタル的なオーバーフローがある場合、スペクトルがメチャメチャになりますので、適正レベルで動作しているかも一目瞭然です。

これらのレベルは、とりあえず、正常に動く範囲で設定しましたが、最終的には、スプリアスレベルやリニアアンプのリニアリティを見ながら再調整しますので、上の画像が最終状態ではありません。

さて、次は二つのダブルバランスミキサーとスプリアス確認となります。

1.8MHzに変換した後の、16MHzのキャリアリークとUSBイメージは-30dBから-40dBくらいで、全く話にならない状態でしたが、以下のように対策できました。

Tx_out_1r8m

Tx_out_16m_reak

160mmix

左上のスペクトルが1.8MHz LSB出力のワイドバンドです。高調波以外目立ったスプリアスはありません。 右上は、LSB信号の近傍の16MHzキャリアリークとイメージとなるUSB信号のスペクトルです。 キャリアもれは、-62.7dBで全く問題なし。  USBもれは、ノイズに埋まって見えません。(第1ミキサーで、LSB/USBが反転しますので、USBのイメージはキャリアの下(左側)に出ます。) これらの対策は、その下の配線図に赤枠で囲ったコンデンサ、C9及びC25の追加です。 手法は前回の7MHzトランシーバーと同じですが、容量が異なります。  

ここまで、確認した後、第1ローカルOSC(LO1)の周波数校正がまだ終わっていない事に気づきました。 そこで以下の手順でLO1の校正をおこないました。

①TS-930で10MHzのBPM(中国の標準電波)をAMモードで受信します。

②この送信機のLO1の周波数を10000.000KHzに設定し、ビート音を確認します。 そして、ビートの周期が1Hz以内になるように、LO1の設定周波数を変えていきます。 すると、9999.994KHzのとき、ビート音が約0.5Hz(2秒周期)で聞こえます。 この時の周波数と10MHzの比は1.0000006となります。

③この比を現在のSI5351の水晶発振周波数24999633Hzに掛け算すると、24999648Hzとなります。 この状態でLO1の周波数を10,000.000KHzに再設定し、ビート音を確認すると、2秒周期くらいでしたので、さらにSi5351の周波数を1Hz単位で変化させ、ビートの周期が一番ながくなる数値を探します。 結果は24999646Hzのとき4秒周期くらいになりましたので、LO1の校正終了です。 校正結果は10MHzに対して+/-0.25Hzの誤差です。

④次にCW送信状態にして、LO2の周波数を校正済み周波数カウンターで測定し、16003937Hzに合わせますが、トリーマーを調整して、ぴったり合わせるのは無理ですから、+/-100Hz以内に追い込めたら良しとします。 LCDの表示周波数を1850.000KHzに設定しておき、送信周波数を測定します。 そして、測定結果が1850.000KHzになるように、PCのプログラム上で設定した周波数を修正します。 今回は測定された送信周波数が1850.071KHzとでましたので、 LO2の周波数を16003937-71=16003866Hzに設定すると、送信周波数はLCD表示通り1850.000KHzとなりました。 

 

ここまでの配線図(ALCアンプのゲイン設定は60dBのまま) 160m_tx_1.pdfをダウンロード

SSBジェネレーターソフト SSB_generator_160m_0.cをダウンロード

システムマイコンソフト  160m_dspSSB_TX_0.cをダウンロード

SSBジェネレーターのCWとAMのキャリアレベル及びAMの信号レベルは仮の値です。 システムマイコンに追加したCW tone信号は正常に機能し、14KHzのサンプリング周波数で8bitのDAコンバーター(PWM)で出力されています。 トーンは約700Hzの正弦波ですが、トーンの開始及び終わりが必ずゼロレベルになるようにソフトを組み、キークリック音を防止しています。 下の写真は検討の為、仮組した送信機です。

スピーカーへのコネクタとRF OUTのコネクタがどちらもXHタイプの2pinで、このコネクターを間違い、入れ替えて接続してしまい、スピーカーアンプが煙を出して壊れました。 対策として、スピーカー側のコネクタをPHに変更しました。

160mtx_balack

 

以上で、SSBジェネレーターは完成しましたので、次の課題としてリニアアンプの検討を開始します。 その中で、最適なCWキャリアレベルやAMのキャリアレベルを決めていく事にします。

160m SSB送信機 QRP パワーアンプ   へ続く

 

INDEXへ戻る

2021年12月20日 (月)

160m SSB送信機 LO2の決定

カテゴリ<SDR> [1.8MHz  自作  dsPIC]

2020年に160mバンドでのSSB運用が解禁され、夜になると、ちらほらSSBの信号が聞こえます。 前回、7MHz用オールモードのトランシーバーを作成し、実用していますが、コンディションの悪化は一向に解消されす、さらにはレーダーパルスにつぶされる事が頻発して、ON AIRのチャンスが少なくなっていました。 特に夜は、ほとんど国内QSOのチャンスはありませんので、コロナでどうせ暇ですから、160mバンド用のSSBの送信機を作成する事にしました。

dsPICを使ったSSBジェネレーターはそのノウハウが判っていますので、前回のアプローチと異なる手法で送信機を構築する事にします。

まず、最初は2nd IFの周波数をクリスタルフィルターの特性を調べて決め、その周波数データを基に、dsPIcのFoscを決めるという逆のパターンで進めます。

Xtal16m_filter_2

16mhzlpf_schema_negate_2

 

 左上が、測定に使った治具。右上が治具の回路図です。

1st IF用に選んだクリスタルフィルターの周波数は16MHz。 このフィルターの並列共振周波数でイメージを抑圧出来るようにLO2の周波数を割り出せば、自動的にdsPICの中でミキシングするサブキャリアの周波数が決まります。 以下のスペアナの画面は実際に作成したクリスタル3個による実測データです。 通過帯域のリップルが大きいですが、ここをフラットにすると、イメージ信号の抑圧が-50dBくらいしか取れなくなりますので、この状態で我慢する事にします。

Sdr_160mtx_lo2_config1

クリスタルフィルターの直列共振による、ほぼフラットな部分が15994.855KHzから15997.802KHzまでの約3KHzありますので、これをベースにキャリアポイントとして15994.855KHzを選択します。 この時のSSB信号はUSBモードです。 そして、並列共振により、約-59dB以上の減衰を確保出来る周波数帯は、D3の16009.441KHzから、D2の16013.537KHとなります。 そして、イメージとなるLSBのキャリア周波数はこのD2が最高値となります。この周波数関係で成立する為の2nd ローカルOSC(以後LO2)の周波数は16004.196KHzとなります。 ここで、D2とD3の間には4.096KHzの幅がありますので、LSBのキャリア周波数は、後1KHzくらいは低くなってもOKです。 仮に1KHz低くなった場合のLO2の周波数は、500Hz低くなった、16003.696KHzまで、下げて良い事になります。 これらの条件からdsPIC内でミキシングするサブキャリアの周波数は9.341KHzから8.841KHzの範囲にあればOKとなります。 従って、dsPICのクロック条件を設定する場合、この中央値、9.091KHzをターゲットに検討する事にします。  1st IFの帯域の左端にキャリアポイントを置きましたので、AMは単側波帯、全搬送波(H3E)になります。

(注:ここでは、16MHz帯を1st IF  9KHz帯を2nd IFと呼んでいます。)

以上の周波数データからdsPICのクロックを詰めていくと、一番近い周波数の関係は以下のようになります。

160mtx_osc_config

Foscが74.4MHzですから、Fcyはこの1/2の37.2MHz。  ADCのクロックはFcyを1/1024とすると、36.328KHzとなり、サブキャリアはこの1/4ですから、9.082KHz。クリスタルフィルターの特性から導き出されたターゲット周波数は9.091KHzですから、差は9Hz。 従い、サブキャリアを9.082KHに修正し、実際のLO2は16003.937KHzとします。

このようにして作られた第1IFは可変発振器(LO1)とMIXして、送信周波数(TXFreq)へ変換されます。 これらの関係式は以下のようになります。

LO1 = LO2 - Sub Catrr + TXFreq

TXFreqが1800KHzの場合、LO1は17794.855KHzとなります。

dsPICの中でサブキャリアでミキシングしたDSB信号の内、LSB信号をBPFで選択出力し、LO2とMIXした時、USBに変わり、さらにLO1とMIXした時、LSBに戻ります。

これらの数値を使い、dsPICのソフトを開発していきますが、その中身は、前回の7MHzトランシーバーのソフトからOSC関連の数値を変える事と、受信機やその他の不要な機能を廃止する事で完成します。

dsPICの中での処理は以下のブロックが実現出来るように構成しますが、基本は7MHzのトランシーバーと同じです。

160mtx_dsp_block

 

160m SS送信機 組み立て開始へ続く。

 

INDEXへ戻る

2021年11月21日 (日)

dsPICでバンドスコープ 1 

dsPICを使った自作のSSBトランシーバーにバンドスコープを追加しようと、トライしましたが、2nd IFの帯域幅が6KHzしかなく、全く役に立ちませんでしたので、帯域幅をせめて50KHz以上確保できるバンドスコープを一から検討する事にしました。

せっかく作るなら、ダイレクトコンバージョン受信機にして、SSBの復調も出来るものをと、欲張った結果、これが失敗で、2か月も棒に振ることなってしまいました。 その断片はここで紹介しています。

採用したDSPは、2ch同時AD変換可能なdsPIC33CH64MP202、秋月で400円でしたが、前回製作したSSBトランシーバーのようにはいかず、SSBの復調音を出す事にこだわったのがいけなかったようです。 そして、+/-50KHzのバンドスコープとSSB受信機は、400円のdsPICでは両立しないという事を悟る事になってしまいました。

PCを使用したバンドスコープの帯域幅は使用されているサウンドカードの中に有る、ADコンバーターのサンプリング周波数にほぼ等しく、沢山あるインターネット上の解説でもナイキスト周波数以下のプラス周波数とマイナス周波数を使えるから実用可能な帯域幅はナイキスト周波数の2倍、すなわち、サンプリング周波数と同数の帯域幅が得られると説明されています。

また、ダイレクトコンバージョン式の受信機の場合、ADC前のアンチエイリアシングフィルターを簡単にする為、オーバーサンプリングを行い、デジタル処理の中で、デシメーション処理を行い、デジタルフィルターを有効活用すると解説されています。

これらの、情報から、バンドスコープも、オーバーサンプリングやデシメーションが有効であろうと、勝手に判断して、下のブロックのようなバンドスコープを、ああでもない、こうでもないと、さらに1か月もつぶしてしまいました。

Bscopr_block_1

構想は、XC16でFFTの記事で紹介したfft4g.c によるFFTが緑色の部分になりますが、ダイレクトコンバージョン受信機のIQミキサーで作成されたI信号をFFTの入力配列である a[k*2] に渡し、 Q信号を a[k*2+1]に渡して、FFTを実行させ、出てきた実数と虚数のデータをそれぞれ2乗した後加算し、これをLCD Displayで表示するというものです。

左下のLCD画面は、上のブロック図の緑で示すFFTブロックとその後ろに繋がるブロックのみにして、(左側の全てのブロックが無い状態) FFTの実数枠にsin信号を、虚数枠に0.0の数字を入れたもので、出ているスペクトルは+/-15.625KHzの信号です。 右下のスペクトルは、実数枠にはsin信号を、虚数枠にcos信号を加えたもので、-15.625KHzのスペクトルが消えています。 この実験では、サンプリング周波数を50KHzとしましたので、ナイキスト周波数以下の、+/-25KHz、合計50KHzの帯域のバンドスコープが実現できる事を示しています。

256ポイントのFFT結果をLCD上に表示するに当たり FFTが出力した a[] の配列の0から255までが、0KHzから25KHzを表し、256から511までが-25KHzから0KHzを表しますので、グラフ化する時点でデータを並べ替えてあります。

Fftwithimage

Fftnoimage

for (k=0;k<256;k++) {
     a[k*2]=sin(2.0*PI*k*15625.0/50000.0);//spot周波数/サンプリング周波数
     a[k*2+1]=cos(2.0*PI*k*15625.0/50000.0);
//  a[k*2+1]=0.0;
}

FFTexec();//FFT実行

実験に使ったsin cos信号は上記のようなもので、FFTの a[] 配列に代入した後、FFTを実行させています。 a[k*2+1]=0.0; は左側の画面が得られる時の代入式です。 窓関数をかけていませんので、スペクトルが細くなるスポット周波数を選んで実験しました。

また、写真はありませんが、サイン信号とコサイン信号を入れ替えて負の周波数にしてやれば、-15.625KHzのところにスペクトルが現れ、+15.625KHzのスペクトルは消えます。

 

以上の確認が終えた後、実際にブロック図のごとくデジタル処理を行ったのですが、どうしてもイメージが消えません。キャリア周波数から1~3KHzくらいなら-10dBくらいのレベル差はつきますが、それ以上の周波数ではだんだん差がなくなり、25KHzも離れるとほとんどレベル差は無くなってしまいます。 また、正の周波数も負の周波数もそのスペクトルの位置は同じで、グラフ上の右半分しか機能しません。 まる3日、弄り回して、結局判らず、あきらめました。

dsPIcのメモリー容量が許す限り最大のTAP数でフィルターを構成したのですが、ダメでした。 固定小数点が使えないので、極性付き整数計算をしている事が原因かもと考え、FFT単体のテストの時、FFTの入力に加えるサイン、コサイン信号を12bitの極性付き整数とし、これを浮動小数点に変換したもので行っても正常に動作しておりました。

本当の原因は判らないままですが、これでバンドスコープをあきらめたくないので、サンプリング周波数100KHzで正の周波数しか使わないバンドスコープを作る事にします。

Bs_block_2

上がそのブロック図でFFTの虚数枠に加えていたQ信号を切断し、ここには0.0を代入し、かつデシメーション後のサンプリング周波数を100KHzとして、帯域を50KHz確保します。

 

Fft7172a

Fft7172b

上の2枚の画像は7150KHzから7200KHz間の50KHzスパンのバンドスペクトルです。 画面上には50KHzサンプリイングと表示していますが、実際は100KHzです。  ちょうど、レーダーパルスが7100KHzくらいでパタパタと激しく出ており、そのあおりで、イメージ混信だらけになっている状態です。左がパルス有り、右が一瞬パルスが無いときの状態です。

やはりイメージ対策をちゃんとやらないと実用化できないという見本になりました。

半分諦めていたdsPICによるバンドスコープでしたが、サンプリング周波数と同じ帯域幅を確保できるバンドスコープを諦めきれず、何か思いつけば、実験を続けてきました。 そのなかで、以下のように、100KHzのサンプリング周波数で100KHzのバンド幅を確保できる条件を見つける事ができました。

Bs20k

Bs20k_2

左上が7120KHzの信号を受けた状態、右上が7080KHzの信号を受けた状態です。 左の+20KHzのイメージは-30dBくらいを確保して、グラフ上では見えていません。 右の-20KHzでは、-17dBくらいしか確保出来ていませんが、トータルで100KHzのバンド幅を確保出来ています。

この状態を作る条件は以下のブロック構成で実現できました。

Bs_block3

 ダイレクトコンバージョン受信機で、アナログによるIQミキシングを実施した後、OPアンプ2段によるアンプ兼3次のCRフィルターを経由して、dsPICへ加え、ここで100KHzのサンプリング周波数でAD変換した後、いきなり、FFTに接続しました。ADCのデジタル出力には一切手を加えていません。 その結果、イメージの完全除去は出来ませんでしたが、そこそこのスペクトル表示が可能になったものです。 もちろん、IQミキサーとその後段のフィルターがアナログですので、全帯域で90度の位相差とレベル差ゼロを確保するのは難しく、キャリアの位相調整の為に、トリーマーを追加したり、レベル調整の為に半固定抵抗を追加したりして、調整した結果です。 また、0KHzのところに立つスペクトルはDCオフセットが出ているもので、これも半固定抵抗を追加し、オフセットを最小に調整できるようにしました。

色々調整した結果、プラスとマイナスの周波数でレベルが一致しなく、片方をベストに調整すると、反対側のイメージが増加するとい繰り返しで、どこかで妥協するしかありません。 一応20dBくらいあれば、外来ノイズでイメージが判らなくなりますので、実用的には、使えるかも知れません。 実力を見ようと、7MHzをワッチしましたが、いつも以上の強さでレーダーパルスが発生しており、写真に撮るのはまたの機会にします。

この構成の配線図は以下です。 DAC出力は一応オーディオアンプ経由でスピーカーへつながっていますが、実際には使用していません。 この音声出力はイメージ処理をしていませんので、隣のチャンネルの音声がUSBモードで混信します。

dsPIC_Bandscorp_2.pdfをダウンロード 

MCLR端子にあるC24 103Kは時々、ICのIDを返さない原因でしたので、廃止しました。

ソースファイルを以下に示しますが、不要な関数や変数などが含まれています。

Config_BandScorp.hをダウンロード

MAS_Bandscorp_2.cをダウンロード

SLA_Bandscorp_2.cをダウンロード

float_TapFIR_B3k_S200k_T125_BPF.hをダウンロード

Font12.hをダウンロード

FFT関係とその他のフォントはこちらを参照ください。

 

Wf2

左は、64行のウォーターフォールを追加した画面です。

レベルによる色の階調は4bit 16階調とし、1バイトの中に、2ピクセル分のデータを収納し、データメモリー98%の使用状態でなんとか実現できました。

真ん中の赤のラインはDCオフセットの漏れで、右側のレベルの高い信号が本信号で左側の低いレベルがイメージ信号です。 この状態はSSGからATT経由で信号を入れていますので、ノイズレベルが少なく、イメージ信号が、はっきりと見えていますが、実際のアンテナに繋ぐと、外来ノイズによりイメージ信号はわからなくなります。 

実際の7MHzのバンドスコープは下の画像になります。 左下は午後8時ごろの7150+/-50KHzのスペクトルです。この時はレーダーパルスは有りませんでした。 50KHz以上離れた信号によるエイリアシングノイズは取り切れていなく、いくつか表示されています。 右下は、7150KHz付近にレーダーパルスが出ていましたが、低い周波数では、あまり影響がなく、午前10時くらいのスペクトルです。 +/-0KHzのDCオフセットのスペクトルは強制的に表示しないようにしました。

Bandscorp3

Wf12051

このウォーターフォールを実現する為にはMasterのソフトだけを、前述のソフトと交換すれば可能です。

ウォーターフォール付きマスター用ソフト

MAS_Bandscorp_WF.cをダウンロード

 

これらのスペクトルは、AD変換したデータをいきなり、FFTへ渡したもので、例えば、一度、未使用のワーキングレジスタや、グローバル定義した変数に移し、これを元のワーキングレジスタに戻した後、FFTへ渡すと、90度の位相差が崩れてしまい、実質位相差なしとなり、イメージのスペクトルが発生します。 なにが原因なのか判りません。

そこで、バンドスコープはここまでにして、dsPICの正しい使い方を勉強する為に、dsPICの実験に戻る事にしました。 そして、ここに書いたような問題の為、このDual Core dsPIC33CHはSDR向きではない(Microchipはデジタル電源やモーター制御用と言っている)という事が判りましたので、これ以上の検討は中止しました。

 

INDEXへ戻る

2021年5月 4日 (火)

dsPICでSSBトランシーバー(AGCの改善)

カテゴリ<SDR> [SSB 7MHz トランシーバー 自作]

dsPICにてSSBジェネレーターを作り、送信はLSB,USB,AM,CWすべてが思った以上の完成度で動作するのですが、受信機が、今ひとつです。 その原因は、AGCの動作レンジが狭く、強い信号の頭で波形がクリップし、歪音が発生します。 特に、強力な信号強度で入感するローカル局は、この頻度が高く、せっかくゆっくりラグチューを楽しもうと思っても、気になって仕方がありませんでした。

ちょうど、Step ATTを作ったので、AGCの応答特性を調べてみました。

 

Dsp_agc

左(画1)の一番上が、2nd IFのDSP前のアナログ信号です。 Step ATTにより途中で、信号強度を10dBアップした時の波形になります。

10dBアップする前に信号がなくなっていますが、これはATTが切り替わるときに一瞬オープン状態になる為に起こる現象です。

そして、10dBアップした後、約4msec間、レベルを維持した後、AGCのフィードバックがかかりだし、レベルがダウン始めますが、ダウンしすぎて、アップする前の信号より小さくなってしまいます。 この状態は次第に解消して、本来安定すべきレベルに復帰します。 この現象を実際にスピーカーで聞くと、最初の大きな振幅の状態では、波形がクリップし、歪んだ後、急に音量が下がり、ひどい時は無音になって、3秒くらいすると、正常音量に復帰します。

この原因は、AGC用の直流出力を復調前のFIRフィルターの後から拾っている為、約4msecの遅れがあるという事です。 2番目のラインはそのdsPICのPWM出力で、3番目のラインはRFアンプのデュアルゲートFETのG2の電圧波形です。 この出力が、dsPIC内部処理の遅れにより、同様に遅れている為であり、dsPICの内部信号を使ったAGCの場合、避ける事が出来ない現象で有る事を、やっと理解できました。 FIRフィルターによる遅延は直線遅延(全帯域が一応に遅延)で、その時間はTAP数/2をADCのサンプリング周期に乗算した値になるという解説をインターネットで見つけました。 このdsPICで行っているFIRフィルターの場合、301TAPであり、ADCのサンプリング周期25.6usecで計算すると、約3.9msecになります。 実測では4msecくらいとなっていますので、ほぼ合っています。

Dspagconly

左(画2)は、AGC用の信号をADCの直後で取り出したものです。 2番目のラインがIF信号のアップに同期して立ち上がり始めていますので、デジタルディレーの時間は、最小になり、約100usecくらいです。 ところが、出力されたDC電圧のリカバリタイムを3秒くらいまで確保する為に挿入したコンデンサ容量とdsPICのPWM出力回路の出力インピーダンスの為、実際にゲインを絞り始めるのは、4msecくらい経過してからです。 

 

そこで、第2IFをダイオードで整流し、得られた直流で2重にAGCをかける事にしました。 

Dspanalog

左のデータがアナログ検出した電圧とADCの後で検出したデジタル信号を同時にAGC回路へ加えたときのものです。 アナログ検出のAGC回路のリカバリ時間は50msecくらいにしましたので、信号がアップしてから1.5msecくらいからAGCがかかるようになりました。

大きな信号が来るたびに1.5msecくらいは歪むことになりますが、マニュアルのRF ATTと併用して、頭の歪と、強入力時、音量が一瞬下がるという現象はなくなりました。

 

 

 

このAGCの調整は、実際に交信を聞きながらカットアンドトライした方が良いようです。

Step ATTを使い、こうあるべきだと設定しても、聴感上は満足できませんでした。

 

何度か調整をやり直したり、ハード的にアタック、リカバリタイムを変更している内に、以前のAGCの状態と異なってきました。 昨日までの最良調整状態がくるってしまい、同じように調整しようとしても、同じ状態を再現できません。 原因を調べる事3日間。 dsPICのi/oポートが壊れていました。 壊れた原因は、AGCのアタックタイムを速くするためにPWM出力ポートにいきなり0.1uFのコンデンサを繋いだ事、その端子をPIC16F1983の入力端子へダイレクトに接続した事のようです。 改めて、このdsPICの電気的特性をチェックしてみました。 i/oポートの最大出力電流は、ポートによって若干異なりますが、一番厳しいポートは最大8mAとなっています。 この端子に直接コンデンサを接続すると、i/oポートの出力インピーダンスが100Ωと仮定した場合、ピークで33mA流れる事になり、完全にスペックオーバーです。 また、dsPICやPICのプログラムを書き換える時に、PICKIT3を繋ぎますが、この時のi/o条件は不定であり、端子によっては、Hを出力している事があり、これが接続された相手のPICの出力がLの場合、同様に33mAの電流が流れる事になります。 結局この繰り返しの為、今までPWM出力に設定していたRB5端子が壊れてしまい、まともにPWM出力を出さなくなって、この症状に陥ってしまったようです。

そこで、壊れたRB5は未使用とし、PWM出力端子をRB2へ移し、かつ、端子に直列に470Ωを入れ、ラッシュ電流を8mA以下に抑えて、時定数決定のコンデンサへ接続する事にしました。 また、メインマイコンへPWM出力を渡す回路にもシリーズに10KΩを入れ、dsPICを保護する事にしました。

これらの対策で、AGC回路が正常に動作するようになりましたので、2nd IFから直接取り出したAGC信号とdsPIC内のFIRフィルターを通過した後のAGC信号をMIXして、RFアンプへAGCをかける事にしました。 アナログ2nd IFから検出したリアルタイムのAGC電圧を軽くRF段へフィードバックさせ、FIRフィルターにより遅れたAGC電圧で、さらに強くAGCをかける事により、アタックタイム時の頭の歪と帯域外の信号による空振りのAGCの影響を最小にするように、動作レベルを調整した結果、強入力時の頭信号の歪もかなり改善し、RF ATTをいちいち調整する手間がかなり少なくなりました。

0tos9

0to10db

0to20db

0to30db

上のAGCデータは一番左が、無信号からいきなりS9の信号を加えた時の2nd IF波形と、AGC用DC電圧の変化です。そして、順に、いきなり+10dB、+20dB、+30dBを加えたときの波形になります。 2nd IFの振幅は+10dBでも+30dBでもほとんど変化がなく、AGCがうまくかかっていることになります。

後は、実際にSSB信号を聞きながら、アナログAGCとデジタルAGCのレベルを調整して最適状態を探る事にします。

土日の2日間、AGCの動作ポイントの調整を行いましたが、アナログ検出のAGCはルーフィングフィルターとなるBW=6KHzのクリスタルフィルターしか利用できないので、2nd IFのFIRフィルターを通過した信号は、6KHzのバンド内にある信号で制御され、つねに音量がフワフワして、非常に聞きにくい状態です。 最終的には、アナログ検出のAGCは、2ndIFが飽和しない程度に弱くかけ、デジタル検出のAGCでたとえ+40dBの信号でも歪まないように深くかける事にしました。 この為、急激な強入力があった場合、頭で一瞬歪みますが、それは1回限りの歪ですので、我慢する事にしました。 さらに大きな信号や、話し方で強弱の激しいSSBの場合、RFゲインを絞る事にしました。

2021年IARU Foneに参加してみました。 送信は全く問題ないのですが、受信がダメですねエ。 送信から受信に切り替えた時、タイミングによってAGCがかかりっぱなしになり、頭の部分が聞こえません。 通常の交信では、大きな声を連続して出す事は少なく、AGC回路の時定数コンデンサの電圧は、次第に低くなりますが、コンテストの場合、つい大きな声で叫んで、即送信終了となる為、受信時より時定数コンデンサの電圧が高くなり、受信に切り替えたとき、音量が下がってしまうのが原因見たいです。 対策として、アナログ検出のAGC入力は、受信信号しかピックアップしないように結線を変更し、かつ、送受信の切り替え時に行うdsPICリセットに同期して、時定数コンデンサを強制放電させることにしました。 また、アナログ検出のAGCループは、時定数を長くして、スローコントロールにすると、聞きやすくなる事が判りましたので、この時定数を決めるコンデンサC52を3.3uFから33uFに変更しました。

  

FIRフィルターのディレー時間を短くしたら、AGCのアタックタイムも短くなり、もっと使いやすいAGCが実現できるかも知れないと、Tap数を49まで削減し、ディレー時間を1msec以下にしたもので実験しましたが、選択度を犠牲にした見返りに得られる改善度合いはかなり低く、また、従来のFIRフィルターにもどしました。

Newagcampadd

左は、アナログ検出のAGC回路を追加したdsPIC側の基板です。 なんとか、隙間を見つけマウントできました。

このアナログAGCを追加してから、この自作トランシーバーの了解度がTS-930やTS-850より良いという事もあり、7MHzのワッチはSSBもAMも、このトランシーバーしか使わなくなりました。

アナログによるAGCループがスローで動くと、信号強度に関係するDCレベルは、このアナログ回路のAGC電圧がほとんどとなり、dspの中で検出したデジタル信号のレベルだけで表示しているSメーターは実体と全く異なる数値を表示するようになりました。 Sメーターの為のDC信号はアナログ、デジタルの合成されたAGC信号を使用しないと、まともにSメーターは動作しません。 そこで、Sメーターの信号を合成信号から取り、かつSメーターテーブルをTS-850Sと同じ表示になるように校正しました。 また、従来有った送信時の信号強度表示は廃止しました。

 

時々、LCD表示と送信周波数が一致しないというバグを修正しました。

オーディオ周波数特性の低音を切りすぎていましたので、FIRフィルターを若干修正しました。 SSBではあまり効果はありませんが、AMモード時は70Hzくらいまで伸びました。

しばらく使っていると、出力波形が振幅変調を受けたように歪ます。原因を調べたところ、電源のSWingに使ったQ7の発振でした。 対策として、C23を0.47uFから10uFに変更しました。

これらの変更を網羅した配線図とマイコンソフトは以下の通りです。

 

最終更新日2022年4月30日

SSB_generator11.pdfをダウンロード

7MHz_SDR-TRX11.pdfをダウンロード

7MHz_dspSSB_TRX_11.cをダウンロード

SSB_generator_11.cをダウンロード

float_TapAUDIOwide201_BPF_BL.hをダウンロード

float_TapUSBwide401_BPF_BL.hをダウンロード

float_TapLSB301_BPF_BL.hをダウンロード

float_TapCW301_BPF_HM.hをダウンロード

float_TapAM301_BPF_BL.hをダウンロード

float_Tap950_BPF.hをダウンロード

elekey_950HzMonitor.cをダウンロード

  

160m SSB送信機の記事はこちら

INDEXへ戻る

2020年8月30日 (日)

dsPICでSSBトランシーバー(ケースイン)

 

カテゴリ<SDR> [SSB 7MHz トランシーバー 自作]

各ブロックやリニアアンプが完成したので、これをケースに収納し、最終仕上げします。 受信時のシステムからのノイズや、リニアアンプ出力における不要輻射の確認など、ケースインしないと確認が出来ませんので、やっと、ここまでたどり着いたという状況です。

まずは、トランシーバーの外観と、中の構造のみ紹介です。 動作テストや確認結果は随時書き足していきます。

Dsp_trx_comp1

今回は、中古の測定器ではなく、アイデアルの汎用ケースを買い、これに詰め込みました。 このトランシーバーは電池で動作させ、屋外で使う事を前提に設計してきましたが、それにしては、少し大き過ぎました。 しかし、リュックに入らないサイズではないので、我慢する事にします。

Dsp_trx_comp6

Dsp_trx_comp2

パネルレイアウトで失敗があります。 TUNEダイアルの左側にSPAN切り替えのSWが有り、そのインジケーターとして、黄色のLEDを付けたのですが、斜め上から見えません。 正面からなら見えるのですが、使いにくい。 対策として、LED用の穴を良く見える位置に、もう1個明け、新たにLEDを追加する事にします。

Dsp_trx_comp5

Dsp_trx_comp4_2

全ての回路を収納し、天面にビス止めされたスピーカーで7MHzを聞いてみました。 すると、スピーカーBOXの条件が良くなったのか、低音が良く出るようになった為、全体として、こもるような音質になってしまいました。 これは、了解度の面で非常に不利で、音量を上げないと良く聞き取れない音質になっていました。

Normal

Box

左上がこもった音のスペクトルです。右は、バラックの検討段階で、聞いていたミニスピーカーBOX(プラスチック製)の時のスペクトルです。 ソースは同じではありませんが、右側の方の500Hz付近はかなり落ち込んでいます。 Hi-Fi音を追求するには、左上の特性が必要ですが、了解度を確保するには、500Hz以下の成分を、適当に落とす必要がありそうです。 そこで、スピーカーの周波数特性だけを落とす為、C10を4.7uFから0.022uFに変更しました。 バラックの時は、ゲインが20dBほど低い状態でしたので、高S/Nの了解度でしたが、ノイズが増えた現状では、バラックの状態の了解度までには到達しませんが、かなり聞きやすくなりました。

 

10W出力時の消費電流が4Aを少し超える状態で、移動運用に使う予定のリチウムイオン電池に対して、負荷が重すぎます。 そこで、QRPモードを追加する事にします。 方法は、送信時のdsPICのDA出力をアナログアンプで増幅しますが、この途中でレベルを3dB落とす事にします。 このゲインダウンで、最大出力が5Wになりますので、消費電流を3A以下に抑えられる見込みです。

全体の回路を接続し、未調整の状態で、出力は16Wくらい出ていますので、これを最大10Wとになるようにドライバーのアイドル電流を調整した状態で4Aの消費電流となり、QRPモードの5Wの時は2.8Aくらいの消費電流となりました。

Dspictrx_cw_splias

次に、気にしていたスプリアスの確認です。

左のスペクトルは、CWを送信した時のリニアアンプ入力部分のスプリアスです。4MHz付近に-30dB、6MHz付近に-37dBくらいの大きなスプリアスがあります。 このスプリアスの原因は、DDS Si5351Aが出しているもので、完全に不適合です。

もっと早い時点で見ておけば良かったのですが、前回のダイレクトコンバーショントランシーバーでは全く問題が無かったので、安心していたのがいけなかったようです。

Dspout24mhz

Dspout17mhz

左上が、Si5351Aの24MHz出力、右上が17MHzの出力です。 本信号の近傍に、-46dBくらい、さらに広範囲に渡り、-50dBより大きなスプリアスが連立しています。このキャリアを使い、ミキサーを構成する為、最終的に取り出された7MHzの信号は、前述のごとく、全く許容できない状態になってしまいました。 DDSの出力端子として、CLK0とCLK1を使っていますので、CLK0とCLK2を使ったり、周波数割り当てを逆にしたりしてみましたが、結果は同じでした。

前回のダイレクトコンバーショントランシーバーと何が違うのか確認してみると、前回は28MHzのみを出力し、かつ1/4に分周して利用するものでしたが、今回は2つの周波数を同時に発生させます。 そこで、24MHzと17MHzを単独で発生させてみました。

24mhzonly

17mhzonly

上の画像は24MHzと17MHzを単独で発生させた時のスプリアスデータです。 スペクトルの数が極端に少なくなりました。 24MHzのスプリアスレベルは、2波同時発生時と同等です。 一方17MHzは、スプリアスを-60dB以下に抑えています。 ただし、インターネットで紹介されているスプリアスデータは30MHz付近では-70dBくらいのものが多く、今回の回路では、平均より10dB以上悪化しているのが現状です。 また、Si5351Aで送信機のLOを構成する場合は、マルチ出力(2波または3波の同時出力)は使用できないというレポートが多い事に気づきます。

Lsbfnosignal

Lsbfullpower

左上はLSB無信号送信時のリニアアンプ出力でのスプリアス、右上は、同じくLSBフルパワー出力時のスプリアスです。無信号時に発生するスプリアスは、LO1とLO2のスプリアスがMIXしただけのスプリアスですが、フルパワー時は、このスプリアスにLO2とサブキャリアをMIXした時のLO2のスプリアスが加わります。 即ち、LO2のスプリアスは2重に効いてくる事になります。 

Cwfullpower

Lsbfullpower

CWとLSBそれぞれフルパワー時のスプリアスを比較してみました。レベルに若干の差はありますが、発生している周波数は、どちらも同じでした。 この比較は、LSBは、マイクアンプからDSPの入力までのアナログ回路が動作するのに対して、CWはDSPのADCの出力がカットされており、アナログ回路の信号は一切使っていない状態です。 すなわち、スプリアスの原因のほとんどがddsのスプリアスであり、送信出力が、アナログ前段に回り込んだものでは無いという事が言えます。

この問題の対策として、SDR-3は、Si5351Aのクリスタル周波数を27MHzにしたり、アンプ出力に通常置くLPFをBPFにしたりして、切り抜けているのではと推測します。 私の基板では、基本のスプリアスが多く、特に、周波数を可変すると、キャリア近傍の200KHz以内に、不適合のスプリアスが見え、BPFだけでは対策不可能です。 また、あいにく27MHzのクリスタルも持ち合わせていません。

 

24mhz_lo2_xtalosc

Xtalosc24mhz

 

そこで、24MHzのクリスタルを使い、コルピッツ発振回路を組んでみました。

左上がその回路図。右上のスペクトルが、24006348Hzを発振させた時のもので、さすがクリスタル。 高調波以外、余計なスプリアスは一切ありません。 発振周波数が、クリスタルフィルターの特性から決められた 24006766Hzに対して、418Hzほど足りませんが、クリスタルに直列に入るコンデンサをトリーマに変えて、ぴたりと合わせる事にします。 また、CW時に、LO2を950Hz低い方へシフトするのは止めて、CW受信時のみ、LO1の周波数を950Hzだけずらす事にします。 ただ、今回実験したのは、オープンの回路状態で、実際にアナログ基板に実装したわけではありません。 最終状態で、確認が必要です。 これで、LO2のスプリアスは目途が立ちました。

クリスタル発振回路の中で、最大面積を占有するのは、クリスタルそのものです。 基板上で、これを収納するスペースを確保するために、ミキサーに使っていた74LVC2G66とキャリアの反転に利用していた74LVC1G00を廃止し、手配したけど使い道が無かった、74LVC1G3157に変更し、スペースを確保する事にしました。

Dds_onlylo1

Newmixer0909

24MHzのLO2の周波数は20Pのトリマーを追加し、24006766Hzに調整しました。 上のコルピッツ回路で、2000くらいから8000くらいまで可変できます。 ここでも自作の周波数カウンターは大活躍です。 そして、左の画像のごとく、Si5351Aをずらして、クリスタル発振回路を収容できました。

多分、ミキサーの変換効率などが変わってしまいましたので、送信モードの各モードに於けるレベル設定はやり直しとなる事でしょうが、それらは、スプリアスの確認が終わった後にします。

左下のスペクトルがLO1(17MHz)を50MHzスパンで見たスペクトルです。右は同じ周波数を10MHzスパンでみたものです。 Si5351Aの出力を1波だけにし、かつ、ICの表面に銅箔を張り付け、バイパスコンデンサを最短で配線した結果、17MHzの両端に並んでいた沢山のスプリアスも数がかなり少なくなりました。残念ながら、最大レベルは-60dBくらいで変わらずです。

Lo1_50mspan

Lo1_10mspan

Lsb_ampin

Lsb_ampout

Lsb_50mhzspan

左上のスペクトルは、リニアアンプ入力部のスプリアス、右上がリニアアンプ出力のスプリアスです。 入力に4.5MHz付近の高いスプリアスがあり、それがそのまま出力にも出ていますが、リニアアンプの4.5MHzのゲインが高い為、レベルが3dBくらい上昇しています。 また、9MHz付近のスプリアスは、入力では-60dBくらいですが、出力部では-50dBくらいまで増加しています。 これもリニアアンプの周波数特性だろうと思われますが、後6dBくらいは落としたいところです。 左の1枚は50MHzスパンのスペクトルです。 4.5と9それに14MHzのスプリアスがNGです。 対策を考える事にします。

第1ミクサーの出力をQ6で増幅した後、広帯域のまま、リニアアンプへ出力していました。 このコレクタの負荷を7MHzの共振回路にして、スプリアスを落とそうとしましたが、ゲインが上がり過ぎて発振してしまい、抵抗でダンプすると、発振は止まりますが、フィルター効果は無くなってしまいます。 結局、また元の広帯域アンプに戻しました。  代わりに、DSPの出力バッファであるIC4の送信側出力ラインを0.047uFにてGNDへ落とす対策が有効でした。 4.5MHzと9MHz両方が-50dB以下に収まりました。 4.5Mと9MはSi5351Aが出しているのでは無く、dsPICが出しているものでした。  14MHzは終段のLPFの回路定数を見直し、これも-50dB以下にできました。

7mhzlpf_data

Sprias_taisaku0913

上が、定数変更したLPFの定数と、その特性です。

左が、これらの対策を実施した後のスプリアスデータです。 4.5MHzは-58dBくらいまで、9MHzは-70dBくらいまで、14MHzの第2高調波は-56dBくらいまで落ちました。 第3高調波以上は-60dB以下に抑えています。

LPFの計算は以下のURLで行いました。

https://keisan.casio.jp/exec/user/1257655844

ここまでの状態で、TSSへ保証認定依頼を出す事にします。

 

dsPICが時々動作しなくなる問題が出続けていました。 そこで、怪しい設定や、メモリーの設定などを見直しました。

dsPIC側で取った修正

・MPLAB X IDEに設定していました固定小数点オプションの指定は削除しました。

・configの記述が間違っていましたので、修正しました。

・TAP_Numのメモリーをstaticからconstに修正。

・メモリーの配置をリンカーに任せていますが、関連するメモリーの並びを整然となるように、記述順序を変更。

・CW及びAMのキャリアレベルの見直し。

・TAP係数の編集時に置いていたディレーやCAST変数の中継を廃止。

・AGC、TXoutの信号強度を16bitから10bitに圧縮して出力

 

PIC16F側で取った修正

・AGCカーブ補間処理の廃止、Sメーターカーブの見直し。

・TXoutのLCD表示レベルを拡大。

・CW受信時のオフセット周波数設定をLO2からLO1に変更。

・電源電圧をLCDに表示。これに伴い、i/o割り当て変更。電圧表示の更新は、2秒間隔とします。

・AGCのリカバリタイムをソフトでもカバー出来るようにしました。 しかし、アタックタイムの遅れによる応答特性の悪さの改善には不足で、これは今後の課題となりました。

・RIT ON状態で送信した時、周波数がずれるバグを修正。

 

Elekeyのモニター音の周波数を950Hzから700Hzに変更。 これは、CRフィルター2段による高調波除去でも、音の濁りがひどい為、モニター音のみ聞きやすい周波数に変更したもの。

ハード的には、以下の修正を行いました。

・クリスタルフィルターの周りのミキサーを含めて、シールドケースで覆いました。

・電池運用時の電圧監視機能を追加。 このハード対応の為、AN端子を使う必要が生じましたので、i/oポートが壊れて未使用となっていたRC1ポートの出力ポートを調べた結果、生きていました。 そこで、LCDのE端子をRA2からRC1に移し、AN2を電源電圧測定用に変更しました。

・アナログ回路とDSPICのレベル配分の最適化を行った結果、パワーが出すぎます。 よって、リニアアンプのコレクタからベースへ設けた負帰還回路の抵抗を220から100Ωに変更。 

 

Dspictrx_front_2

Dspicssbtrxtop_2

Dspicssbtrxleft

Dspicssbtrxright

Lsbcarusb

左は、リニアアンプ出力に於ける1KHz変調のLSBスペクトルです。 キャリア漏れや、USB漏れが出ていますが、いずれも新スプリアス規制をクリアしています。 もう少し、トライしたら、すべて-60dB以下にできそうですが、 実運用上では大差ありませんので、これで良しとします。

下に2信号特性を示します。一番左が、6.6Wpep、真ん中が8Wpep、右が10Wpepの出力の時です。 2信号特性を論議する定格出力の1/3の出力で、IMD-30dBくらいです。 良くはありませんが、悪くもないという状態ですので、これも良しとします。 この波形データはリニアアンプのTRがMRF477の時のデータで、2SK2796Lに交換した後は、この波形が10Wリニアアンプの記事のごとく、大幅に改善しております。

2tone3w

2tone4w

2tone5w

 

TSSへ提出したブロックダイアグラム5_dspic_sdr_trx_block.pdfをダウンロード

TSSの審査が5日間で終了し、即、総通へ変更申請を行い、こちらも1週間で審査終了となり、晴れてON AIR出来る事になりました。

いざ、ON AIRしようとしても、先日の台風通過で垂直DPは半分たたんだまま。 台風シーズンが過ぎるまで、伸ばす気は有りませんので、臨時にツェップアンテナを張ってトライする事にしました。

このツェップをリグに接続したら、軒並み+30dBくらいのS表示となり、RF ATTをONしても時々歪みます。 今まで、半分たたんだ垂直DPで受信し、RFゲインやAGCを合わせていたのですが、フルサイズの水平系ツェップを張った途端、受信信号が強力に上昇したものでした。 結局、このツェップをベースに再度RFゲインやAGC特性を再調整する事にしましたが、 解決手段を見いだせず、Q15のゲインを手動で可変する事にしました。 

9月下旬の土曜日、10Wの出力と、ツェップアンテナで、念願の1st SSB QSOに成功。音質も、メーカー製と変わらないとのリポートをいただきました。 さらに、CWによる1st QSOも成功し、残りはAMだけになりました。 AMはSSBのレベル設定に合わせ、オーバー変調にならないように、キャリアレベルを決めた結果、無変調で2.6W出力になっていました。 

次の日の日曜日、AMによるQSOが成功し、一応全モードによる交信が出来ました。 ただ、時々、送信から受信に切り替えた時、音が出なくなるというトラブルが継続していまして、この現象が発生したら、電源をOFF/ONして正常になります。対策が必要ですが、まだアイデアは有りません。

もしかしたら、PTT SWのチャタリング ?   データを取ってみました。

Rxtotx_noc

Txtorx_noc

予想通り、ひどいチャタリングです。 マイクに付属したSW、本体のトグルSWいずれも、あきれるくらいチャタリングしていました。

以下、0.1uFのコンデンサをマイコンのi/o端子とGND間に接続したものです。

Rxtotx_addc

Txtorx_addc

この対策で、しばらく運用してましたが、たまに送信から受信に切り替わったとき、無音になるとか、受信から送信に切り替えた時、送信音声が大きく歪んで、全く了解できなくなるなどの異常が起こっていました。 いずれの異常状態も、dsPICをresetすると、正常になります。 PTTswのチャタリング対策はマイコン入力端子にコンデンサを追加しただけでは不十分なのかも知れません。 そこで、PTTswのチャタリングを吸収できるソフト変更を実施しました。 また、この不安定なPTTswを割り込みルーチンの中で参照する記述も見つかりましたので、SENDflg参照に変更しました。 

Idspictrxfront8

 しばらく、QSOに使っていますと、AGCの効きに不満が出てきます。 アタックタイムが長いのが災いして、少し強い局の音声の頭が歪ます。 これが最初の1回だけなら我慢できるのですが、数秒ごとに歪んで聞こえます。 ふたつのマイコンのDAとAD、DAを繋いだ信号処理では、ダメなようです。 そこで、現在の方法に見切りを付け、dsPICのPWMによるDAの出力をそのままアナログ回路で、カット&トライする事にしました。 この変更で、頭の歪は大幅に改善されましたが、AGCで音量が一定になる範囲(AGCレンジ)が狭いのは、改善さされませんでした。 

この最大の原因は、信号強度を表すデータは16bitですが、DACのデータは10bitしかなく、上位のbitデータがPWM出力されていない事でした。 PWM方式のDACは16bitのデータでも出力可能ですが、bit数を上げるほど、PWMの出力周期が長くなり、AGCのアタックタイムが長くなって、音声の頭で歪むという問題がありますので、PWM DACのbitは10bitに設定して、PWM出力用にレジスタへデータを送る前に信号強度を表す16bitデータを6回右シフトして10bitに圧縮してやると、AGCレンジが飛躍的に改善しました。 その上で、RF ATTを連続可変出来、かつこれをフロントパネル面で操作できるようにし、歪が発生する信号に対しては、マニュアルで可変する事にしました。 これに伴い、20dB ATTもRF3段目に置いた可変ATTも廃止しました。 AGCのループ内にPIC16Fのマイコンが入らなくなりましたので、PIC16Fに有った、AGC電圧の変化カーブを調整する、補間機能は廃止しました。 その上で、Sメーター用の補間機能を見直し、TS-850とほぼ同等のS表示が出来るように再設定しました。

強入力信号の頭で音声が歪むという問題に対して、AGCをかける回路をRF初段の1石のみとし、RF2段目、IF段のAGCは廃止しました。そして、外部ATTの可変が急峻過ぎるので、ゲインの変化がブロードになるように、ATT用可変抵抗の可変範囲を狭くしまた。 また、強入力が急に加わったとき、一瞬音量が下がる事を防止する為に、AGCアタックタイムを遅らせる目的でdsPICのPWM出力に入れてあった560Ωと1mHのコイルはショートしました。 送信時に受信のRFやIF段が生きているのは、都合が悪いので、2段のRFアンプと2nd IFアンプの初段のFETにミューティングを追加しました。 これらの対策でも、音声の先頭で歪むという現象は完全には対策出来ませんでしたが、+40dB以下の信号の場合、歪は気にならなくなりました。 +40dBを超えるローカル局の場合、ATTを絞る事によりOKとなりました。 (強入力が有った時、一瞬音が消える原因は、FIRフィルターによるデータの遅延でした。対策はここで行っています。)

しばらく実際に使用した感じは、了解度がTS-930SやTS-850Sより良い事に気づきました。 その理由は、感度が市販モデルよりやや低い事と、スピーカーの特性に合わせた、スピーカーアンプの周波数特性にあるようです。 特に、AMはTS850Sを受信機とした100W PWM機と交互に使う機会があるのですが、その聞きやすさは、断然、この自作機の方に軍配があがります。

 

メンテ中にDC電源が壊れ、いきなり57Vが印加され、リニアアンプのファイナルが壊れてしまいました。幸い壊れたのは、リニアアンプだけで、受信部やDSP周りは生きていました。 この壊れたDC電源は自作品ですが、過去にも、何度も壊れて57Vが出力される事故を起こしていますので、またいつ壊れるか判りません。 そこで、5.6Vのツェナーダイオードを3本直列にし、16.8Vのツェナーを作り、この電圧以上の電圧が印加されたら、5Aのヒューズが飛ぶようにプロテクタを入れました。 壊れたリニアアンプのTRは2SK2796LというFETに交換し、MRF477より、リニアリティが向上しました。

 

これらを網羅した、配線図とソースファイルは以下です。 QRP SWによるレベル設定を半固定抵抗に変え、かつdsPIC内で定義したCWとAMのキャリアレベルを修正しました。 SSBの定格出力が10Wのとき、AMの出力は、SSB出力の1/4である2.5Wに設定する必要がありますが、dsPICの中で、簡単にレベル変更出来るのはデータシフトによる+6dBか-6dBで、それ以外のレベルにしようとすると、計算をして、丸めるという操作が必要となり、面倒です。 その事もあり、アンプのリニアリティが向上した為、レベルをシフトだけで調整可能な、3Wに設定しました。

100Wのリニアアンプ接続時は問題無かったのですが、200Wのリニアアンプを繋ぐと、マイクアンプへRFの回り込みが発生しましたので、マイクアンプの入力にCRのフィルターを入れ、かつ、コネクタのHOTとGNDの接続が間違っていましたので、修正しました。

7000KHzと7200KHzの送信出力に大きな差があり、電力比で1.7倍くらいで、7000KHz側が大きくなっていました。 これは、7195KHzでMAX10Wに調整した後、周波数を7000KHzにすると、17Wを出る計算になりますが、実際には、7100KHz付近で10Wに調整しており、7195KHzで予想する出力が出ないと悩んでいた原因がこれでした。 出力差が生じるのは、Mixerで7MHzを作った後、7MHzのLPFを通しますが、最大ピークを示す周波数が7000KHz以下になっていたことでした。 この対策として、C24 680Pを490P(390P+100P)に変更し、バンド内でほぼフラットになるように修正しました。

 

前回作成したHDSDRダイレクトコンバーショントランシーバーでIMDや占有帯域幅を確認してみました。 これで測定する場合、必ずHDSDRの受信のAGCをOFFにして測定します。 AGCがONのままだと、受信強度に関係なく IMDが20dBくらいに固定されてしまいます。

Sc4wpep7002300

Sc04wpepnoise  

左は4Wpep時の2tone特性です。 変調周波数は700Hzと2300Hzです。 帯域内に発生した2次IMDは42dBくらいを示していますが、帯域外になる3次IMDは50dBくらいを示しています。

右はホワイトノイズによる変調です。 赤のラインがキャリア周波数になります。一応、きれいに3KHzの帯域内に収まっています。 この測定を最初行った時、200Hz-2800Hzのフィルターでしたが、3000Hz以上に若干の漏れが認められましたので、SSB用のFIR BPFの遮断周波数を250Hz-2750Hzに変更しました。 下のファイルもこの新しいBPFに修正してあります。

dsPICのRA4が過電流により壊れました。 従い、KYEinの入力はRB4に変更しました。

AGC回路の変更に伴い、3.3Vの電源ラインを変更しましたら、7193KHz付近で強力なビートが出るようになりました。 ミキサーとローカルオシレターと2nd IFアンプが結合して、発振を起こしたみたいです。 対策として、各電源ラインに個別にフェライトビーズを挿入しました。 この自作品の中で使っているビーズは、すべて村田S/SのBLM18タイプで100MHz 1KΩと言われるものです。

2ndif_lpf_data


夜になると、7200KHz以上のAM放送局が混信する原因が判りました。クリスタルフィルターを通過した後、9.8KHz台の2nd IFに変換された信号は、dsPICのADコンバーターへ入力されますが、この入力成分の中には、クリスタルフィルターで十分に減衰量を確保出来なかった、AM放送局の信号も含まれており、これが、ナイキスト周波数以上の成分であることから、エイリアシングノイズを発生させ、放送内容は判らないものの、混変調のような音で、混入しているものでした。 そこで、左に示すようなLPFを2nd IFアンプの前に追加し、この妨害を軽減させる事にしました。エイリアシングが発生する周波数は19KHz以上の成分になりますが、13KHzまでは有効な成分ですので、10KHz±3KHzを出来るだけフラットで通過させた後、19KHz以上を急激に減衰させるため、かなり複雑なLCフィルターになりました。

2ngif_lpf_unit_2

左の写真がそのフィルターユニットですが、3.3mHのチップインダクタとCH特性のチップコンデンサで構成し、基板の空いているところに実装し、配線しました。 2nd IFアンプの位置とかなり離れましたが、周波数が100KHz以下の範疇ですので、弊害はないようです。

以下のファイルの最終更新日 2021年12月26日 

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

配線図 SDR-TRX10.pdfをダウンロード

SSB_generator_10.cをダウンロード

7MHz_dspSSB_TRX_10.cをダウンロード

float_TapUSB301_BPF_BL.hをダウンロード

float_TapLSB301_BPF_BL.hをダウンロード

float_TapCW301_BPF_HM.hをダウンロード

float_TapAM301_BPF_BL.hをダウンロード

float_TapAUDIO201_BPF_BL.hをダウンロード

float_Tap950_BPF.hをダウンロード

elekey_950HzMonitor.cをダウンロード

 

これらのテキストファイルを編集する場合、MPLAB X上でデバッグする時は、MPLAB内蔵のエディタを使いますが、それ以外の通常編集では、サクラエディタを常用しております。 日本語仕様のこのエディタは直感的に分かり易く、もう10年近くも使っており、他のエディタへ変更できませんね。 IEをEdgeに変更したら、Edgeが勝手にテキストファイルとして開いてしまい、見にくいのなんの。 Edge側の言い訳は、セキュリティ対策で、外部アプリを起動してファイルを開く機能を制限した結果との事で、一度、PCのどこかに保存した後でなければ、サクラエディターでは開けないとの事。 不便になりました。

 

移動運用をする為に、リチウムイオン電池パックを作りました。

 

配線図や最新のソフトは以下のページからダウンロードできます。 

dsPICでSSBトランシーバー(AGCの改善)へ続く。

 

200Wのリニアアンプが完成し、200Wの出力が得られる時の、このトランシーバーの出力は4Wとなりました。 そこで、QRPモードにおけるCWやSSBのピーク出力を5Wから4Wに修正しました。

リニアアンプを2band化したところ、7MHzのリニアの感度が下がり、最終的にはCWで7Wの出力に修正しました。

このトランシーバーの後に繋ぐ予定の200Wリニアアンプの記事はこちら。

 

同じような構成で160mバンド用SSB送信機を作成しています。(2021年12月スタート)

INDEXへ戻る

2020年8月11日 (火)

dsPICでSSBトランシーバー(10Wリニアアンプ)

カテゴリ<SDR> [7MHz 自作]

dsPICをSSBジェネレーターとしたトランシーバーが、ほぼ期待通りに動き始めましたので、次は、これに接続するリニアアンプの検討です。 以前、HDSDR用のトランシーバーを製作したとき、MOS-FET IRFI510による10Wアンプを作っていますが、この時の電源電圧は18Vでした。 今回は、DC12Vで10Wの出力が得られるリニアアンプの検討です。

前回の経験から、MOS-FETによるリニアアンプのノウハウは理解していますので、まず、2SK2796Lにてトライしてみました。

2sk2796_vg_id

Tk2q60d_vg_id

2SK2796LのVgs対Idsの特性は左上のグラフデータのごとく、かなり急峻に立ち上がっています。 これは、100Wリニアアンプを検討した時のFKI10531と似た特性ですが、前回は35Vの電源でしたが、今回は12V電源です。 もしかしたらいけるかな?とトライしましたが、アイドル電流を調整中に熱暴走してあっけなく壊れました。 (この2SK2796Lは後述しますが、MRF477より良い結果が得られました。) 次に、このVgs対IdsがかなりなだらかなTK2Q60Dでトライしました。 熱暴走は起こりませんが、最大出力は3.5Wでした。 Rds 3.2Ωが効いて、出力はターゲットに届きませんでした。

MOS-FETによるリニアアンプは電源電圧を高くしないと、効率よくパワーが出てくれないようです。 そこで、トランジスタによるリニアアンプにトライする事にします。

ジャンク箱をかき回すと、3種類のトランジスタが見つかりました。 2SC1969  2SC1791  MRF477  いずれも、2石ペアです。 この中で、2SC1969だけは、放熱フィンがコレクタとなっており、放熱板に取り付けるとき、絶縁する必要があります。他の2品種はフィンがエミッタとなっており、放熱板にビス止めするとき、絶縁が不要です。 そこで、まず、2SC1791でトライします。

この2SC1791は175MHzで6W出せるVHF用のパワーTRです。 放熱板に取り付け、バイアス電流を1石当たり100mAに調整すべく、1mAから次第に大きくしていったのですが、50mAくらいになった途端、異常発振が起こり、Icは3Aくらいまで上昇し、DC電源のプロテクタが働いてしまいました。 結局、一度も増幅することなく、2石ともショート状態で壊れてしまいました。

1時間くらい落ち込んだ後、気を取り直して、 トランジスタをMRF477に変更しました。

10w_power_amp0

当初、2SC1792用のバイアス回路で、トライしたのですが、半固定抵抗を最大にしてもアイドル電流が2Aを超えてしまいます。 そこで、D2のRB521Sをショートして、再度電源ONすると、バイアス電流を可変する事が出来るようになりました。 このTRのデータシートによると、アイドル電流は1石当たり50mAと有りましたので、2石で100mAに調整した後、TS930Sから7MHzの入力を加えてみました。

最初に、5MHz、10MHz付近での異常発振です。 コレクタからベースへ,、お決まりのCRによる負帰還をかけて、発振はとまりましたが、7MHzを中心に+/-2MHzくらいで、ノイズフロアが異常に上昇します。 そのレベルは-30dBくらいです。 このTRのデータシートでは、ベースGND間に10Ωの抵抗を挿入し、入力をダンプしていますので、同様に、入力トランスの出力端を10Ωでダンプし、入力にコモンモードチョークを挿入すると、-50dBくらいまで改善しました。 このノイズフロアはTS-930Sでは-60dBくらいありますので、そこまでは減衰させる必要があります。 

10w_power_amp1

 そこで、ベースにシリーズ抵抗を挿入し、改善具合を調べてみました。

Rb10ohrm

Rb5ohrm_2

左上が10Ω、右上が5Ωのデータになります。この抵抗を大きくすると、ゲインが下がりますので、その分、このアンプのドライバー段に負荷がかかる事になりますが、明らかに10Ωの方が良好です。 動作は安定しましたが、ゲインが落ちてしまいましたので、コレクタからベースへ戻す負帰還抵抗を100Ωから220Ωに変更しました。 すると、また、ノイズフロアの上昇が発生しますので、10Ωはさらに22Ωへ変更しました。 そして、入力トランスの2次側に挿入した10Ωのダンプ抵抗を外してみたところ、ノイズフロアの増加はなくゲインが2dBくらいアップしました。 10Wの出力時の入力は0.5Wとなり、ドライバーの検討がやりやすくなりました。

上のスペアナデータでは、高調波が多く発生しておりますが、これは、LPFやシールド構造を検討して、対策可能ですので、後で対応する事にします。

10w_pa01_2

上の写真が、とりあえず安定に動作したリニアアンプのファイナル部分です。 これから、出力が1W程度のドライバーアンプを検討します。

Dspic_power_amp2

上の回路図が、1Wクラスのドライバーを追加したパワーアンプユニットです。 ドライバーの石はRD16HHF1 一石で構成しています。 このFETは12Vの電源で10W以上の実力がありますが、リニアリティを確保するために軽く使っています。 アイドル電流は、データシートより少し少ない400mAに合わせてあります。 AB級で動作していますが、最大出力状態でも0.65Wくらいの出力しかなく、通常はA級増幅です。 この状態で、ファイナルの出力は13W有ります。 少し出すぎですが、そのままです。

ドライバーの出力トランスは、受信部分で使用したTDKのコア2個を、ビニールテープで固定し、1次:2T 2次:3Tで自作しました。

Power_ampunit2

RD16HHF1には、銅板による放熱板を付けてあり、かつ、温度補償用のダイオードをシリコングリスでくっつけてあります。 ただ、1分くらいの13W出力テストで、あっちっちですから、ドライバーの構造を大幅変更し、ファイナルと同じ放熱板を使う事にしました。 二つの放熱板の間に、30mm角のファンが取り付けられています。

Idsp_pwr_unit2

Idsp_pwr_unit1

バラックの基板状態で、動作テストすると、スプリアスがかなり多く、最悪値で-45dBくらいになっています。 これは、各ブロックをシールドBOXで囲んだり、電源ラインのフィルターなどを検討する必要がありますが、それらは、ケースを確保し、実装設計の時、考える事にします。

13W出力時の全消費電流は4Aくらいです。 MRF477のデータシートには、40%の高効率と書いてありますが、ドライバー段や、30mm角のファンの電流を差し引いたとしても33%くらいの効率です。 多分、40%の効率は、最大PEP出力40Wの時なのでしょう。 電池運用で4Aはきついですから、QRPモードを設定する必要があるかもしれません。

 

2021年3月

メンテの為、パワーアンプをいじっていましたら、DC電源が壊れて、いきなり57Vが印加されました。 この事故の為、リニアアンプのMRF477がオープン状態で壊れてしまいました。 せっかく、使いこなしたTRでしたが、もう有りません。 そこで、このアンプの最初に実験した、2SK2796Lで、再トライする事にしました。 このFETのVg対Id特性は、最初に示したように、素晴らしいリニアリティを確保しています。 そしてCiss=180PF、Td-off=35ns、Rds=0.12Ωと、HFのアンプにも十分使えるSpecです。 前回諦めた理由は熱暴走でしたので、熱暴走が起こりにくくするため、ソースに0.1Ωの抵抗を追加する事にしました。 すると、12Vの電源でアイドリング電流を各0.15A(合計0.3A)にした後、入力を加えると、18Wの出力が得られ、14W出力までは、リニアリティを確保した範囲に収まります。 かつ、ゲインが6dBくらいアップしました。 ゲインはドライバー段のRD16HHF1のアイドリング電流を減らして合わせこみました。

MICアンプのリミッターが働いたレベルで10WのSSB信号が出るようにし、CWやAMはキャリアレベルを調整して、10Wと3W出力に設定しました。QRPの場合、CWにて4Wになるようゲインを調整してあります。

2sk2796amp_1

Sdr10wpep

10w_pa_2sk2796l_sp

ソースに追加した0.1Ωの抵抗は200Wアンプに使った3W品の為、FETより大きくなりましたが、なんとか実装できました。FETは11x16mm t=1mmの銅板に半田付けし、温度補償用ダイオードと一緒に、プラスチックビスで放熱板に止めてあります。 銅板と放熱板の絶縁はマイカ板とシリコングリスで処理しました。

下の2信号特性とスペクトルは10Wpep出力時のデータです。ピークがつぶれだすのは14Wを過ぎた出力からで、それ以下の出力で良好なリニアリティを確保しています。また、スプリアスは第3高調波が規定値ぎりぎりですが、一応スペック内です。

入力トランスの2次側センタータップのGND接続はなしとしました。 終段のFETゲートに加わるRF電圧のレベルの差が小さくなります。 この結果、T7は不要になるのですが、改造が面倒なので、そのままです。  また、リニアアンプ側の電源に挿入されていたラインフィルターは、この部分で1.5Vも電圧ダウンを起こしていましたので、廃止しました。 受信回路の電源に挿入されたラインフイルターはSWing電源を使用した時のノイズ除去に効果がありましたので、残しています。

温度の変化でパワーが増減しますので、ドライバーのソースに1Ωの抵抗を追加し、安定度の改善を行っています。 この抵抗追加に伴い、RD16HHF1のソースも放熱板からマイカとシリコングリスで絶縁しました。

変更された配線図は以下です。

10wpa_2sk2796

この2SK2796Lをプッシュプルで使う時は、特性が揃ったものを使用しないと、この記事のようなデータは得られない事が後日判りました。

dsPICでSSBトランシーバー(ケースイン) へ続く。

 INDEXに戻る

2020年7月26日 (日)

dsPICでSSBトランシーバー(CW,AMモード追加)

カテゴリ<SDR>

dsPICを使い、SSBジェネレーターと、周辺の回路を検討し、リニアアンプ以外、目標の機能が動作するようになりました。 動作確認できたのは、LSBとUSBの送受信機能だけで、当初の構想である、CWとAMのモードはまだ実装されていませんでした。(前回の記事

次は、CWとAMモードをdsPICの中に追加します。

Modelist_2

上の表は、dsPICの中に組み込まれた、Pre BPF、MIXER、Post BPFがモードにより、どのような動作をするかまとめたものです。 例えば、LSB送信モードの時は、200-2800HzのBPFを通った後、サブキャリアとのミキサーを経て、第2IFのUSBバンドのみを通過させ、LO2(24MHz)との第2ミキサーへ供給されます。 LSB受信モードの場合、PreとPostのBPFが逆になって音声信号を復調します。

CW受信時は、SSBのときと全く同じ動作ですが、Pre及びPostのBPFがCW用の狭帯域となります。 そして、受信の時だけ、LO2の周波数を950Hz低い方へシフトします。 CW送信時は、ADCの出力は使用しませんので、Pre BPFをスキップした後、サブキャリアと直流を掛け算して、約9.8KHzのキャリアのみをミキサーで作り、Keyでon/off出来るようにした後、これをAM用のPost BPFを通して、第2ミキサーへ供給します。 CWのトーン周波数は、当初、750Hzに設定していましたが、ちょうど、スピーカーの周波数特性のディップポイントにはまり、音量が伸びません。 そこで、低周波を手でスイープさせて調べたところ、950Hz付近が一番音量が大きくなる事がわかりましたので、950Hzに変更しました。 このスピーカーの特性も一種のフィルターですから、有効活用です。

Dsp110pctmod

AMの場合、ADCの出力にDC成分を加算して、サブキャリアとミックスすれば、AM信号が得られますので、ADCのレベルとDC加算レベルを調整して、ピークがSSBのピークを越えないAM信号を作り、AM用のBPF(LSB.USB全帯域をカバーするBPF)を通した後、第2ミキサーへ供給します。 この様にしてDSPの中で計算により作られたAM信号は、後段のリニアアンプが飽和しない範囲ならオーバー変調しても帯域幅が広がらない(スプラッタが発生しない)というメリットが有り、例え包絡線検波による復調でも、歪感が少ないという特徴があります。 左上の波形は約110%の変調波形です。 オーバー変調したAM波を聞いても、モガモガ音が少しづつ増えるだけです。  一方、AM受信は、Pre BPFのAM BPFを通した後、その出力のマイナス信号をゼロにします。 ダイオードによるAM検波と同じ理屈で、キャリアの正電圧のみを取り出し、この後にあるミキサーはスキップさせます。 当然、この信号には、キャリアのエンベロープ以外に多くの高調波を含みますが、これらは、Post BPFで除去され、音声信号のみが取り出せます。 この検波方式は、理屈では判っていましたが、はたして、ダイオードによる半波整流をソフトウェアで実行して、ほんとに音声信号が得られるのか不安でした。しかし、dsPICにその仕掛けをすると、ちゃんと音声信号を復調できました。 dsPICに入力された信号の1/2の振幅しか使いませんので、SSB復調時より音量が約半分になります。 よって、AMの時だけ、DACの前でデジタル信号の振幅を2倍にしています。


各モードの送信時のdsPIC出力のスペクトルは以下のようになりました。 上から順に、LSB、USB,CW,AMです。 出力レベルは、dsPICのDACが飽和しない安全なピークレベルに合わせてあります。 これらの確認をする上で、Wave Spectraは大変有効です。

Lsb_tx1

Usb_tx1

Cw_tx1

Am_tx1

CW以外、すべて1KHzでの変調ですが、1KHzのレベルはマイクアンプのリミッターレベルより1dBくらい低いところに設定してあります。 リミッターが動作するレベルでは、歪が3%くらいになりますので、その影響が出ないようにして測定しました。 リミッターIC SA2011の歪特性は、あまり良くなく、これよりさらにレベルを下げても、1%以下にはなりません。 このリミッターICが無い時は、0.3%以下の歪になります。

 

LSBとUSBのデータから、逆サイドバンドの減衰量は-70dB以上ありますので、問題なしです。 また、サブキャリアの漏れは、USBよりLSBの方が悪いですが、それでも-70dBくらいはありますので、これも問題なしです。 最初、このSSBのPost BPFはPre BPFと同じ251タップで設定していましたが、 モードを切り替える時、dsPICをresetする事にしましたので、PreとPost BPFのTAP数を合わせる必要がなくなりました。 よって、音声帯域の BPFを201TAP、サブキャリア帯域の BPFを301TAPに変更しました。

CWは、余計な信号が全くないきれいなスペクトルです。

AMは、100%変調した時のピークレベルがSSBのピークと一致するように、キャリアレベルと変調信号のレベルを調整しました。 この状態は、SSBの最大出力が10Wの場合、AM時のキャリア出力は2.5Wになる事を意味します。

Txout_lsb

Txout_usb

Txout_am

上の波形は、7MHz RF出力で、左からLSB、USB、AMです。振幅は、オシロスコープの入力ATT値が異なりますので、無視してください。

Image_lsb左は、7MHz LSB出力時の24MHz第2ミキサーで生じた24MHz LO2のキャリア漏れと、約20KHz離れたイメージ信号です。クリスタルフィルターのDipポイントに合わせこんだイメージ信号は、約-58dBくらいのレベルになっています。 一方、LO2漏れと表示してあるスプリアスは、第2IFを作る為に加えた約24MHzのキャリアLO2の漏れです。 このミキサーは、アナログ回路によるダブルバランスドミキサーとして、動作しますが、アナログ式によるバラツキの為、-48dBくらいしか減衰していません。 クリスタルフィルターにより、LO2の減衰は-30dBくらい確保していますので、ミキサーのバランス効果は-18dBくらいしかないという事です。 これは、必ず-50dB以下にしないと新スプリアス規制に合致しませんので、対策が必要です。 対策案と実施が出来たら、追記します。

 

対策出来ました。 下は、対策したクリスタルフィルター周りの配線図です。

Counterloreak_schema

Loreaklsb

クリスタルが3個つながる回路のGNDを全体のGNDから浮かし、33PでGNDへ接続。 配線図には有りませんが、T4とT5の間にシールドの仕切りをいれました。 そして、T4とT5のバランス巻線の中点は、10Kの抵抗を介して完全独立としました。 さらに、T5のアンバランスを補正する為に100Pを追加した結果、左のスペアナのごとく、LSB(逆サイド)は-62dB程度まで、24MHzのLO漏れは-57dBくらいまで改善し、新スプリアス規制をクリアしました。  この問題は、アナログSWの2G66周りの配線が、SDR-3で使っていいるアナログSW 1G3157と違うのが原因かもしれないと、昨日、アマゾンで10個311円のこのICを発注したばかりでしたが、不要となりました。

 

当初、dsPIC33FJで不足なら、dsPIC33CHに乗り換えるつもりでしたが、その心配は全くなくなりました。

次は、この回路の中に、エレキーを追加します。 昔作った、PIC12F675をそのまま基板上に載せますが、モニタートーンの周波数は、950Hzに変更します。

Pic12f675add

モニター周波数を変更する事と、Hi-tech CのソースをXC8に置き換える為、新規にプロジェクトを作って、コンパイル、プログラム書き込みをやったのですが、ベリファイの結果、0番地のデータが違うというコメントが付いてエラーになります。 2時間くらい悩んで、判った事は、電源電圧でした。 今回のトランシーバーのメイン電圧は3.3Vです。PIC12F675も3.3Vで動作しますので、PICkit3から3.275Vを供給して書き込みをしたのがいけなかったようです。 プログラム時は5Vの電圧で行い、実際の動作は3.3Vでやれば問題なしでした。 このプログラム書き込み中に他の回路へ5Vが逆流しないように、逆流防止のダイオードを追加しました。 なにせ、前回のエレキー製作は6年前の事であり、すっかり忘れていました。  そして、このドサクサの間に、バグも発見され、それを修復しました。 しかし、バグが有りながら、どうしてまともに動いていたのか不思議です。 このオリジナルソフトはスリープモードが有りましたが、トランシーバー内蔵という事で、少しでも応答を早くする為に削除しました。 この弊害か判りませんが、電源をONした時、一瞬、トーンが聞こえます。 対策として、電源やi/o条件が安定するまで、1秒間のディレーを入れ割り込み開始を遅らせました。 また、950Hzのトーン信号がダッシュとドットで少し違うというバグも修正しました。

CWのセミブレークインを検討する為、dsPICにresetをかけた後、ADCの割り込みが発生するまでの時間を調べてみたところ、約8mSでした。従い、キーdownしてから送信状態になるまで、最低8mSはかかる為、CWの信号は、余裕を見て、11mS遅らせます。 これは、送信信号が11mS遅れるのみで、モニター音や受信音にはミリセックレベルの遅れは有りません。

Cw50ps

Cw150ps_o

Cw150ps_4

上の波形は、CWによるセミブレークイン時の最初の信号の頭切れを観測したものです。 一番上のラインがPIC12F675からのキーイング波形です。 上から3番目が、キーイング開始に伴い、モードを即送信状態にしています。 そして、上から2番目のラインが、ディレーさせたキーイング信号です。 一番下が、実際に送信される7MHzのCW信号になります。 左が、約50字/分の送信時の単点で始まる符号です。 真ん中の波形は150文字/分のコンテストスピードで長点で始まる符号、一番右は、同じく150文字/分の短点で開始した符号です。波形で見る限り、先頭の符号で頭切れを起こしている形跡は有りません。

 

送信時のミキサー出力は、Q6バッファーアンプの出力にて、3Vppあります。ここは、電源電圧11Vで動作していますので、8Vppくらいまでは、アップできますが、そこまで上げるかどうかは、後段のリニアアンプ次第です。 このアンプの動作確認を夜やっていましたら、SSBの入力信号がゼロなのに、この出力が8Vppくらいあります。 

7mhzbpf_1k

しかも、かなり変動しています。 原因を調べると、7200KHz以上にあるAM放送局のキャリアがQSBを伴いながら、漏れてきているものでした。 クリスタルフィルター前のアナログSWの受信出力が、送信側へ漏れています。 対策として、RF段のFETのAGC制御電圧をゼロにすると、トータル100dB以上の減衰が得られますので、送信時、このAGC制御電圧をFETでGNDへ落す事にしました。 

左は、このRFアンプの前にあるBPFの特性です。 配線図の中で、コイルのインダクタンスが1uHとなっていますが、1.5uHの間違いです。 この状態で、夜になると、7200KHz以上のAM放送局のQRMを受けます。 これを少しでも改善する為に、共振回路のQをもう少し上げる事にしました。 コイルインダクタンスは4.7uHか5.6uH当たりがよさそうなのですが、あいにく、Qを管理したチップインダクタは2.7uHか12uHしか手持ちしていません。 帯域が狭くなり過ぎるかもしれませんが、12uHで作り直す事にしました。

Frontend_1

7mhz_bpf BPF部分の各定数は上の回路図のようになりました。 そして、このBPFの通過特性を自作のSGとオシロで実測した結果が上のグラフです。BPFのセンター周波数が7120KH付近で、-3dBの周波数が約7000KHzと7300KHzとなっています。あと50KHzくらい低い方へシフトしたかったのですが、ここでコン尽きて諦めました。

MODEセレクタのボタンを何回か押すと、受信音が聞こえなくなるトラブルが発生し続けていました。 dsPICのソフトの問題か?、コントローラーのタイミングの問題か? と丸1日検討した結果、原因はMODEスィッチのチャタリングでした。 このチャタリングの状況をデジタルオシロでモニターすると、4個あるプッシュSWの内、MODE SWだけが、極端にチャタリングがひどい状態でした。 原因が判ると、対策は簡単で、スィッチの両端に0.47uFのコンデンサを入れ、振動を抑制して解決しました。

前回の記事で、AGCの状況は確認していたのですが、何時間も7MHzをワッチしていると、局により、最初の言葉が歪んだり、音量が急に下がり、無音になるような現象が生じます。 さらに、最大感度が低い為、音量の強弱の差が大きく、特にS7くらいの信号はS/Nは良好なのに、ボリュームを一ぱいに上げても、聞き取れないという問題もありました。 そこで、2nd IF段に約20dBのゲインのあるAGC付きアンプを追加し、弱入力時の音量をアップさせる対策を行いました。 また、AGCのアタックタイムを調整する為に半固定抵抗VR7を追加しました。

2ndif_agcamp

Addvr_agcamp

左上が2nd IFに追加したAGC付きアンプ、右上が、アタックタイム調整用のVR7を追加した回路図です。 このハード変更をした上で、デュアルゲートFETのG2の電圧を変化させた時のATT量を調べ、AGC制御電圧が最適になるようにソフトで、加工しました。

Bf1211_agc

Agcv_curve

 

左上が、FETのG2の電圧を可変した時のデータで、G2電圧をリニアに変化させると、ATT量は対数で変化する事を示しています。 このため、急に信号が大きくなると、必要以上のATTをかける為、音量が消えるという現象が現れる事が判りました。 (これは、間違いで、本当の原因はFIRフィルターによる遅延時間の為、リアルタイムでAGCがかからないのが原因でした。) 言葉の頭が歪むのは、マイコンで処理する遅延時間が影響しているようで、実際に信号が大きくなってからAGCが効き始めるまで20mSくらいの遅れが有る事によるようです。アタックタイムの改善は、現状では無理ですので、せめてATTの効き過ぎによる過渡応答を改善する為に、検出した2nd IFのレベルを圧縮する事にしました。 

S4to30dbin

右上のグラフが2nd IFのレベルをAGCアンプへ出力する間に、レベル変換するカーブです。 このカーブはソフトで、補間して作ってありますが、実際にSSB信号を聞きながら、実験的に合わせこみました。 この対策で、+30dBくらいまでの信号は自然に聞けるようになりました。 左のデータは、S4のノイズ状態から、いきなり+30dB程度の信号が入ったときのデータですが、一番上の2nd IFの信号は、クリップなしです。 しかし、+30dBを超えるような信号の場合、頭で歪ますので、その対策として、アンテナ入力に20dBのATTを追加し、これを必要によりON/OFFする事にしました。

このAGCの問題は、トランシーバーとして完成度が上がるに従い、最大の問題点となって行きました。 そして、AGCの補間処理や、追加したFETへのAGCは廃止されました。 詳細は後述します。

ここまでで、気が付いた問題点は、対策完了しました。 このトランシーバーの受信時の消費電流は、12V電源で180mAです。 これは、移動運用を電池で行う時、役立ちます。 今まで、車で行けない、山頂や電波の飛びそうな場所へ、持っていけるSSBトランシーバーが有りませんでしたので、期待が持てそうです。

ここまでできますと、次は、リニアアンプです。 すでにHDSDR用のダイレクトコンバーショントランシーバーで10Wのアンプは作っていますが、これとは別に新たに作ります。 もちろん、すでに自作した100Wリニアアンプも使えるようにします。

SSBジェネレーター回路図 SSB_generator5.pdfをダウンロード

アナログ回路図 DSP-TRX5.pdfをダウンロード

ここまでのソフトです。 以下のファイルは全て開発途中のものであり、必要により更新されます。

SSB_generator_5.cをダウンロード

float_Tap950_BPF.hをダウンロード

float_TapAUDIO201_BPF_BL.hをダウンロード

float_TapAM301_BPF_BL.hをダウンロード

float_TapCW301_BPF_HM.hをダウンロード

float_TapLSB301_BPF_BL.hをダウンロード

float_TapUSB301_BPF_BL.hをダウンロード

7MHz_dspSSB_TRX_5.cをダウンロード

elekey_950HzMonitor.cをダウンロード  

 

dsPICでSSBトランシーバー(10Wリニアアンプ)へ続く 

 

INDEXに戻る

2020年7月18日 (土)

dsPICでSSBトランシーバー(製作開始)

カテゴリ<SDR>

dsPICの、基本機能が完成しましたので、トランシーバー全体の構成を、システムコントローラーとDSPがメインのデジタルブロックと、アナログブロックのふたつに分割した回路基板として製作を開始する事にします。

システムコントローラーの役目は、送受信周波数の選択とモード設定、送受信切り替え、その他付属機能をマイコンで実現するものです。

この回路の範囲は、dsPICによるSSBジェネレーターを中心に、システムコントロールマイコン、LCD表示部、受信時のオーディオ増幅部及びAGC制御回路から構成され、トランシーバーとしてのすべてのコントロール機能を受け持ちます。対応するのはPIC16F1938 8bitマイコンです。

HDSDR用のダイレクトコンバージョントランシーバーに使った同じLCDを使いますが、このLCDに使用されているICのスペックを詳細に調べたところ、LCDは5V電源でないと動きませんが、これを制御するマイコンは3.3Vでも、正常にH/Lの制御ができる事が判りました。ただし、条件があり、LCD側へマイコンからの一方通行の制御に限られますが、LCDからの読出しは行わないので、問題なしです。

dsPIC33Fのi/oをPIC16Fメインマイコンで制御する訳ですが、片方のPICへPICKit3を接続しただけのとき、及び、メインマイコンからdsPICへResetをかけたときなど、二つのマイコンのI/Oの状態が不明の為、Lの出力端子にHの電圧が接続され過大電流が流れるのを防止する目的で、必要な端子には、通常動作で邪魔にならない程度のシリーズ抵抗を挿入し、保護してあります。 最初、この保護なしで接続した為、配線ミスも加わり、RC1の入力回路を壊してしまい、その反省からです。 従い、当初RC1に設定してあった、PTT入力は、RC5に移しました。

dsPICの出力は、DACLが受信時のオーディオ出力で、ボリュームを経由してスピーカーを鳴らします。 DACRは送信時の出力で、9.8KHzのサブキャリアで変調された信号を、次段の24MHzミキサーへ出力します。 こうする事により、アナログSWを1回路省略できます。

一方、アナログ回路は、RF回路、クリスタルフィルターを挟んだ、ふたつのミキサー回路、およびマイクアンプ、送信用バッファアンプ等で構成し、下の回路図のようにまとめました。

7mhz_dsp_trx4

Filterkit

この回路を構成するフィルター部分はブロックとして作成し、簡単な特性のチェックも行っています。

24MHzのクリスタルフィルターは前回の記事で取り上げたように、スペアナで実測したものを、左の写真のように組み替えました。 使った4個のフェライトコアはTDK HF70BB 6.4X5X3.2で、巻き数は4:4:8ですが、バイファイラの巻き線仕様はSDR-3と同じです。

受信のRFアンプの先頭に置く7MHzのBPFもブロック化し、あらかじめ、特性を確認してあります。 7MHz LPFはミキサーの前に置くものです。  

Micampf

青いコイルは40mHのインダクタですが、マイクアンプの出力に置き、3KHzのLPFを構成させます。このLPFは、この後、ADコンバーターへつながる事になりますが、ADコンバターで発生するエイリアシングを防止する為、エイリアシングが発生始める19.5KHz以上で、-50dB以上の減衰を確保します。 このフィルターとマイクアンプ全体の周波数特性は、左のグラフの青色の線になります。 そして、SSBジェネレーター内のBPFにより、実際に送信される周波数特性は、赤色のグラフになります。 700Hzより1800Hzのレベルを2dBアップさせ、少しでも了解度が向上するように細工しています。

約24MHzのLO2と約17MHzのLO1はdds IC Si5351Aで作ります。 このプログラムは、以前HDSDR用のダイレクトコンバージョントランシーバー用として作った事がありましたので、それをアレンジして、可変のLO1と固定のLO2を同時に発生させています。 この出力をそれぞれ、位相反転させ、高速アナログSW 2G66をスィッチングし、ダブルバランスドミキサーを構成しました。

ここまでの回路図には、まだリニアアンプは含まれていません。

そして、この回路図状態で、配線完了した2枚の基板が以下です。

Dsp_trx_pcb_top

Dsp_trx_pcb_back

まだ、配線が完了しただけで、配線チェックも、通電テストもやっていませんが、まず、システムマイコンを動作状態にし、DSP部分、LO、ミキサー部と、順にチェックとカット&トライを繰り返しながら仕上げていく事にします。

 

そのシステムマイコンの動作確認を行いました。 かなりの配線ミスや、配線図自身の間違いがありましたが、とりあえず、動き出しました。

Idspictop0左は、LCDとロータリーエンコーダーを接続して、動作チェック中のシステムマイコンです。 周波数表示とモード表示、RIT表示、Sメーターの数値による表示など、機能しております。 

今後、DSP部分、Si5351AによるLO回路、ミキサー回路、MICアンプなどの動作確認を少しずつ進めていく事にします。 すべての回路機能を確認できるまでは、仮のシャーシとパネルを用意し、回路の改修が簡単にできるようにしておき、完成した時点で、どのようなケースに収めるか考える事にします。

7mhz_ssb_trx1

木製の板の側面にアルミ板をねじ止めし、仮組の回路ができましたので、dsPICとSi5351Aが正常に動作できるまで確認できました。 回路図の間違いもありますが、それ以上にコネクタの1番ピンの位置が間違っているのが多いです。 幸い、基板から煙が出るほどではありませんでしたが、この間違いを修正するのは、一度挿入したコネクタのリード線を引っこ抜き、正しい順序に挿入しなおすだけなので、手間はかかりませんでした。

DDSのSi5351Aの発振周波数を周波数カウンターで確認したところ、第2LOの周波数は、24006766Hzでないとダメなところが、24006416Hzとなっていました。 そこで、ソフトの中で定義した SI5351_XTAL_FREQを 24999633Hzに修正し、ぴったり一致させました。 この校正で、第1LOの周波数も校正されますので、+/-0.1ppmの周波数誤差で、運用できます。

アナログSWの2G66の半田付けのトラブルや、1番ピンと8番ピンの逆付けなどのトラブルがありましたが、自作のSGを使い、アンテナからスピーカーまでの受信回路に信号を通す事ができました。 日を改めて、7MHzのアンテナに接続して、受信テストです。

Agc_amp

最大感度が市販のトランシーバーより悪いですから、雑音の大きさは、断然小さいのですが、とにかく聞きにくいのなんの。

原因はAGCの調整がうまくいっていないようです。 当初、AGCのアタックタイムとリカバリタイム、AGCレベルなど、すべてソフトで対応しようと意気込みましたが、半日でギブアップ。 昔ながらのアナログ回路で作ると、これが、いとも簡単に、TS930レベルの聞きやすさになりました。 左が、そのAGCアンプですが、教科書に出てくる回路と少し違います。通常は、高速に充電して、ゆっくり放電させますが、この回路は逆です。高速に放電して、ゆっくる充電させます。 ICはグランドセンスタイプのLM358ですが、レールtoレールタイプのOP-AMPではないので、出力レベルを5V確保しようとすると、電源電圧は、最低6.5V必要になります。 そこで、78L05の3端子レギュレーターのGND端子にLEDをシリーズに入れ、約1.8V電圧をかさ上げし、6.8Vの電源を作って解決しました。 

Agcv_output

しばらく、受信テストを行っていると、+40dBくらいの強い局を受信すると、音声のピークで歪ます。 原因を調べると、時定数セット用に導入したダイオード両端の0.6VのVfの為、OP-AMPがフルスイングせず、AGC電圧が2.5V以下にならない事でした。 対策として、OP-AMPにオフセット電圧を加えるようにオフセット調整用の半固定抵抗を追加しました。 

左のデータは、上から順に、dsPICの入力となる第2IFのレベル、その下がdsPICのDA出力、その下が、コントロールマイコンのDA出力です。 dsPICの出力と、コントロールマイコンの出力は、同じアナログ信号ですが、極性が180度ことなります。 そして、一番下が、デュアルゲートFETのG2をコントロールするAGC電圧となります。 このAGC電圧は0Vから5.5Vくらいまでフルスイングできるようになりましたので、実際にSSB信号を聞きながら、一番聞きやすい状態になるよう、オフセット電圧調整用のVR4を調整する事にしました。  このオフセット最適状態で、電源ONすると、音声が出始めるまで5秒以上かかります。 原因は、OP-AMPの電源がONされてから、出力が5Vになるまで、ゆっくりと上昇する事によります。 対策すると大げさな回路追加が必要ですので、そのままです。

Uew_short

トラブル発生です。電源ラインがショートして、5V 3端子レギュレーターがあっちっちです。 最初どこがショートしたのか判らず、焦りましたが、原因はRFアンプのトランスにまかれた、UEW線の被覆が破れ、これが基板に張り付けた銅箔にタッチしたものでした。 このUEW線はルーターで強力によりを入れた為、ウレタン被服に傷がついていたようで、コイルが銅箔に密着したとき、ショートしたみたいです。 対策として、トランスと銅箔の間に絶縁テープを挟み込みました。 これで、強く押し付けてもショートしなくなりました。 最初から、この部分のみ、銅箔をカットしておけば良かったと、後悔しています。

1日中、7MHzのSSBをワッチしてみましたが、HDSDRの時の了解度と、この回路の了解度は、比較にならないほど、この回路が良い事が判りました。 ただ、トータルゲインが不足しますので、ノイズと同等レベルの信号は、音量ボリュームを一ぱいに上げないと良く聞き取れません。しかし、聞こえたら、ちゃんと了解できます。

とりあえず、受信はこれくらいにして、送信の確認に入ります。

Lsb_txout

マイクアンプのベースバイアス抵抗を決定し、次の、リミッターアンプの動作確認を行い、LCRの3KHz LPFの実測による定数見直しを行った結果、リミッターが動作した時の最大値は2Vppとなり、これがそのままdsPICのADCへ印加されます。 そして、DSP内部でサブキャリアとMIXされ、第2IF、第1IFを経て、取り出された7MHzのLSB信号が左のスペアナデータです。 外部に20dBのATTが入っていますが、それでも-22dBmくらいの出力レベルが得られました。  この信号をTS930で受信してみると、きれいなSSB信号として復調されます。

送信モードに於いて、dsPICの出力をチェックすると、dsPICの入力の1/4しか有りません。 せめて、入力と出力レベルが同じにする為、DACに入力する前に、データを左シフトを1回行い、データを2倍にして、出力させ、dsPICのDAC出力につながっているOP-AMPで2倍し、元のレベルに戻す事にしました。 これは、受信時でも効果がありますので、受信時の音量不足対策にもなります。

 

このように、送信ブロックは意外とあっさりと完成してしまいました。

これから、使用頻度を上げていくと、改良事項も出てくると考えますので、出てきたら、アップデートする事にします。

以下の配線図は、いままでの対策を盛り込んだ最新バージョンです。

システムコントローラーとDSPブロック回路図 SSB_generator4.pdfをダウンロード

アナログ部分の配線図 DSP-TRX4.pdfをダウンロード

 クリスタルフィルター前後のトランスT4,T5の巻き数が間違っています。 正しくは8:4:4及び4:4:8です。

 

dsPICのソースファイルです。

SSB_generator_4.cをダウンロード

float_Tap10kAM_BPF.hをダウンロード

float_Tap10kLSB_BPF.hをダウンロード

float_Tap10kUSB_BPF.hをダウンロード

float_Tap2800BPF.hをダウンロード

コントローラーのソースファイルです。

7MHz_dspSSB_TRX_4.cをダウンロード

これらのソースは開発始めたばかりの状態ですから、完成度は低いです。

 

dsPICでSSBトランシーバー(CW,AMモード追加)へ続く

  

INDEXに戻る

2020年6月13日 (土)

dsPICでSSBトランシーバー(SSBミキサー)

カテゴリ<SDR>

dsPIC33FJにて、AD変換、デジタルLPF、DA変換の基本動作が出来るようになりましたので、このデジタルLPFを音声源信号のBPFに変え、その後ろにサブキャリアによるミキサーを追加する事にします。

サブキャリアの周波数は自由に決められる訳ではなく、ADCのサンプリング周波数に依存します。 サブキャリアの最高周波数は、サンプリング周波数の1/4で、これより1/2づつ低い周波数、1/8とか、1/16の周波数になります。

今回のADCのサンプリング周波数は39.0625KHzですから、サブキャリアは、その1/4の9.765625KHzとなります。 サブキャリアとしては、10KHzとか12KHzのようなキリの良い周波数にしたくても、dsPICのクロック条件などにより、このような半端な周波数になってしまいます。 しかし、今では、Hz単位で任意の周波数を発振させられるDDSがありますので、中途半端なサブキャリアでも、高周波IFに変換する際、キリの良い周波数に変換できますから、支障は生じません。

まず、ミキサーの前に、SSB信号として必要な音声帯域のフィルターを用意します。 今回は61TAPの200-2800HzのBPFを用意しました。

Bpf2002800

上は、ホワイトノイズを入力した時の、BPFの様子です。低域のキレが良くありませんが、最終的に、SSB信号を取り出せるようになったら、TAP数や遮断周波数をトリミングしてみるつもりです。

この後に、ミキサーを繋ぎますが、まず、サブキャリアの信号を作らねばなりません。 サブキャリアはADCのサンプリング周波数の1/4としますので、Timer3のタイミングでADCが出力するたびに、1/4サイクル分のサイン信号をADC出力に掛け算してやれば良い訳です。

一番簡単な4分割のサイン信号は{sin0度、sin90度、 sin180度、sin270度}で、これを順番に掛け算する事になります。 この数値を実数で表すと{0, 1, 0, -1}であり、HEXで表すと{0x0000, 0x7FFF、0x0000, 0x8000}となります。 この4つのデータをリング状にして、ADCがデータ出力する都度、順番に掛け算をさせる為に、リングメモリーが必要になります。 dsPIC33Fの中には、リングメモリーを2つ作る事ができますが、これは、ミキサーの前のBPFと、ミキサー後にUSBもしくはLSBを切り取るBPFで使いますので、ミキサーでは使えません。 そこで、このリングメモリはアセンブラで直接作っています。

1khz_mixing_2

1khz_mixing_wave

上のスペクトルは、1KHzの音声信号とサブキャリアをミキシングした時の、ものです。 本来はサブキャリのレベルはゼロにならなければなりませんが、ADCに直流成分が含まれており、これが為に、キャリア漏れの現象が生じているものです。 ADC入力に与える直流バイアスを調整する、多回転可変抵抗で、これをキャンセルするポイントを見つける事はできますが、かなりクリチカルです。 デジタル処理だから、調整箇所は無いと思っていましたが、これは誤算でした。 DSB信号から一方のサイドバンドだけを切り取るとき、サブキャリアは、問題ないレベルまで減少することを期待する事にします。

左上の波形は、上が、ADCの入力である1KHzです。下はサブキャリアで変調されたDSB信号です。

10khz_mixing

上のスペクトルは、ホワイトノイズを変調した時のDSB信号です。 ミキサーの前にある61TAPのBPF(ファイル名はLPFですが、実体はBPFです)の特性が、サブキャリアを中心に両サイドに広がっています。

ここまでのソフトは以下です。

SSB_generator_1.cをダウンロード

float_Tap2800LPF.hをダウンロード

FIRフィルターのDSPアセンブラの意味を以下に示します。

//FIR LPF処理
asm("mov _repeat3k_Num,W11"); //リピート回数をW11にセット
asm("mov _Tap_coef3k_adr,W10");//TAP係数格納の先頭番地をW10に格納
asm("mov W0,[W8++]");//W0のデータをW8が示すアドレスにコピーした後W8を+2する。

asm("clr A, [W8]+=2,W4,[W10]+=2,W5");//アキュムレーターAをクリアし、
          //W8が示すアドレスのデータをW4にコピー後、W8を+2する。
          //W10が示すアドレスのデータをW5にコピー後、W10を+2する。
asm("repeat W11");//次の行をW11の回数分繰り返す。
asm("mac W4 * W5, A, [W8]+=2, W4,[W10]+=2,W5");//W4とW5 を掛け算し、結果をアキュムレータ―Aに加算
           //W8が示すアドレスのデータをW4にコピー後、W8を+2する。
           //W10が示すアドレスのデータをW5にコピー後、W10を+2する。
asm("mac W4 * W5,A");//W4とW5 を掛け算し、結果をアキュムレータ―Aに加算
asm("sac A,W0");//アキュムレーターAのデータをまるめ処理してW0にコピー

asm("mov W0,W4");//W0のデータをW4にコピー

 

プログラム上は、このミキサーの後に、281 TAPのBPFを挿入し、新スプリアス対応可能なSSB信号を取り出します。 追加するBPFはPre BPFのTAP数とTAP係数が異なるだけで、そのプログラムの構成は同じですから、Pre BPFの部分をコピペして、必要な修正を行うだけで、楽勝と思っていましたが、落とし穴にはまり、一日棒に振った後、なんとか解決して出てきた出力のスペクトルは以下です。

10khlsbspectra1

約9.8KHzのキャリア周波数を持つ、LSB信号のみを取り出し成功です。 後は、Pre BPFとPost BPFの設定値を見直し、送信に耐える特性にした後、不動在庫の24MHzクリスタルを使い、クリスタルフィルターを作り、24MHzの中間周波数を作ります。

ここで、今回遭遇した落とし穴を紹介して置きます。  結論は、リングメモリーを制御するワーキングレジスタを指定した後は、そのレジスタを、他の用途に使ってはいけないという事でした。 今回、Xメモリー域とYメモリー域に、各1組、合計2組のリングメモリーを設定し、Xリングメモリーのコントロール用にW8を指定しました。 この時、Yメモリー域に配置した、TAP係数の読み出しの為にW10を使いました。 ここまでは良かったのですが、 Yメモリー域に配置したリングメモリーのコントロール用にW10を指定したら、Post BPFが動かなくなってしまいました。 結局、YリングメモリーのコントロールレジスタはW11とし、かつ、Xメモリーに配置したTAP係数の読み出しはW9を当てる事で解決しました。 (参考:W8,9はXメモリーのアドレス用、W10,11はYメモリーのアドレス用として設定されている)

今やろうとしている、この方法は、昔、リング変調器と455KHzのメカニカルフィルターでSSB信号を取り出していた時の構成を、最新のデジタル技術で出来るようにしたもので、この基本形は1999年くらいから提唱されていたようです。 「おじさん工房」が提案した、第4の方法のSSBジェネレーターの考え方も、これと同じですが、IFに変換した時のもう一方のイメージを、ラフなクリスタルフィルターでカットするというアイデアが振るっています。 そこで、次はこのクリスタルフィルターの検討になります。

LSB信号を取り出すまでのソフトは以下です。

SSB_generator_2.cをダウンロード

float_Tap-151_2800BPF.hをダウンロード

float_Tap8000BPF.hをダウンロード

このプログラムで、DSP処理にかかるFcYは463サイクルでした。 ただし、このインラインアセンブラの前後で、Cによる割り込み処理と、復帰処理がありますので、実際はこのサイクルより多くなっているはずです。 許容可能な最大サイクルは1024ですが、どのくらい余裕が有るかわ判りません。 従い、PREとPOSTのFIRフィルターのTAP数は合計で500くらいを目途に進める事にします。

 

中間周波数は25MHz付近とする事は決まっていますが、あいにく、25MHzのXtalが有りません。そこで、手持ちのXtalを使って、特性を取ってみる事にしました。

下は、特性測定用に用意したテスト回路図と、テスト治具です。

Xtal_filter_schema

Xtal_filter_testjig

そして、手動でSSGをスイープさせ、それをスペアナでMAX Holdした時のデータが以下の4枚です。 左上から順番に、16MHz, 20MHz,  24MHz  26MHzのデータとなります。

_re16mhz

_re20mhz

_re24mhz

_re26mhz

Act_re_24mhz

4つの周波数で一番適した特性は24MHzです。 そこで、このXtal Filterの特性に合致するように、第2局発(LO2)の周波数を決めたのが、左の画像です。

DSP内で作ったSSB信号のサブキャリアは9.766KHzでしたので、これを中心にして、LSB またはUSBの信号がフィルターの先頭のフラット部分にくるように配置すると、LO2の周波数は、24006.766KHzとなります。 そして、LO2により生じたイメージ信号は、グラフ右側の特性がディップした帯域にはまります。

この特性から、DSPは、LSB及びUSBを選択的に出力して、第1可変局発(LO1)とIFキャリア周波数23997KHzをMIXし、7MHz帯でLSBもしくはUSBのSSB信号を作り出す事ができます。

従い、DSPの機能は以下のブロックのような動作が実現できれば良いのですが、これが、トラブルの連続で、まだ実現出来ていません。 なんとか目途がついたら、紹介します。

Dsp_block

約1週間、格闘した結果、なんとか使えるSSBジェネレーターが出来ました。

PRE BPFもPOST BPFも251TAPとして、送信/受信の切り替え時、同じリングメモリーが使えるようにしました。 この状態で、USB信号を取り出した時のスペクトルは以下です。

Usbnoise251tapx2

Lsbout_tx

Usbout_tx

左上は、送信モードで1KHz変調のLSBを、右上は同じく1KHz変調のUSBを取り出した時のスペクトルです。

Lsbin_rx

Usbin_rx

左上は、サブキャリアに1KHzで変調されたLSBを復調した状態、右上は、同じくUSBを復調した状態です。

これまでで、一番、苦労したところは、送信/受信 および LSB/USBモードの切り替えでした。 切り替えSWを追加し、ソフトを弄り回しましたが、うまく動作しません。 結局、取った手段は、送信/受信とLSB/USBの初期設定をした上で、RESETをかけるという荒業で、なんとか使えるようになりました。 トランシーバーを構成するには、Si5351AのDDSを制御したり、周波数を表示したりするために、dsPICとは別に、メインのマイコンが必要です。 このメインマイコンからdsPICにRESETをかける事にします。  私の技量では、動作中のモード切替は不可と悟るまで1週間かかったというのが実態です。

モード切替以外にAGC電圧の取り出しを仕込みました。 出力されるDC信号は、高入力のとき、3Vが出力され、信号が次第に小さくなると、ゼロVに近づくというもので、DUALゲートのFETを使ったAGCアンプの制御電圧とは逆になります。 この電圧を利用して、Sメーター表示やAGC電圧を作るには、dsPIC側では荷が重すぎますので、これをPWMにてDA変換し、システムコントローラー側に送り、システムコントローラーは再度これをAD変換するという面倒な事を行いますが、Sメーターの振れ具合や、AGCのかかり具合を細かく調整するには、必要な処理になります。

また、システムコントローラーとなるPIC16F1938には、PWMの極性を反転する機能がありますので、処理が簡単です。ただし、以下の回路図にはまだ反映されていません。

以上の回路図 SSB_generator_3.pdfをダウンロード

ここまでのソフトです。

SSB_generator_3.cをダウンロード

float_Tap10kUSB_BPF.hをダウンロード

float_Tap10kLSB_BPF.hをダウンロード

float_Tap2800BPF.hをダウンロード

 

SSBジェネレーターが完成したので、今回のSSBトランシーバーの全体構想を練ってみました。 24MHzのクリスタルフィルターとその前後のミキサーはSDR-3を真似て、双方向回路にしてあります。 今後これをベースに少しづつ、開発を進めていく事にします。

Ssb_trx_dspic_1

 dsPICでSSBトランシーバー(制作開始)へ続く

INDEXに戻る

2020年6月 6日 (土)

dsPICでSSBトランシーバー(SSBジェネレーター)

カテゴリ<SDR> [DSP 自作 7MHz ]

HDSDRというフリーのSDRソフトを使った、SSBトランシーバーは完成しましたが、いざ完成すると、それはそれで、色々と不満も出てきます。  HDSDRの+/-48KHzのバンドスコープは、ワッチする場合、大変便利ですが、交信するにははなはだ、不便でなりませんでした。 とにかく了解度が悪く、交信相手に、こちらの信号は59で届いているのに、相手の信号は29から39でしかありません。 この同じ信号をTS-930で受信すると、59です。 この原因は、広帯域の受信バンドの為、S/Nが悪化していること、強レベルの隣接局によるAGCの為、ノイズフロアが常に上下している事などが考えられます。 HDSDRの機能の中に、ノイズリダクションやノイズブランカ―、オーディオ帯の周波数可変可能なBPFやノッチフィルターなど、了解度を改善する機能が満載されている理由が判るような気がします。 そして、これらの機能を駆使しても、通常の会話は了解出来ても、コールサインの確認に手間取る状態でした。

これを改善するには、多くのメーカー製トランシーバーが採用しているように、バンドスコープ用IFと復調用IFを完全に分離するしかないようです。 一方、バンドスコープ用IFと復調用IFを共用しながら、バンドスコーブの幅を必要最小限に狭めたSDRトランシーバー SDR-3 が、「おじさん工房」から商品化されております。 多分ここまで、狭めたら、受信能力の悪化は小さいと予想されますので、今度はこれを手本として、どこまで自作できるかトライする事にします。

Fir31tapgraf

このプロジェクトを開始するに当たり、そのノウハウをパクってきた元はJA1QVM OMのブログです。 これから、SDRの勉強をしようとインターネットを検索していましたら、探していた情報がそのまま出ていました。 OM Very TKS.

左のグラフは、OMの記事を真似て作った、31TAPのFIR LPFの実測データです。 ここまでできると、SSBジェネレーターに必要な300-500TAPのフィルターは簡単にできてしまうと考えましたが、300や500のTAP係数をどうやって入力するのかが最大の課題となりました。  また、メモリーの配置はリンカー任せにしないと、トラブルの連続でしたので、そこも解決しなければなりません。

Ssb_genarator_0_2

まずは、OMに習って、ハードの回路図からです。

 dsPICはdsPIC33Fj64GP802です。 これを始めた2020年6月の時点では、dsPIC33CHがメインとなっている状況ですが、この最新のdsPICに対する情報は少なく、ひと昔前の33Fで勉強し、最終的には33CHに乗せ換えるという魂胆です。 

後日、dsPIC33CHも使いましたが、SSBジェネレーター用としては使いにくく、このdsPIC33FJが最適なようです。

この回路図もOMのプログからのパクリですが、最初、VR1を固定抵抗で済ませていたところ、いざADCが動き出すと、片側からサチってしまうので、オリジナル通り、半固定抵抗に変えました。 しかし、後日、ミキサーを実装したところ、この半固定抵抗の合わせ次第で、サブキャリア漏れが大幅に悪化する事が判りました。 結局、この半固定抵抗は多回転タイプに変更し、かなりクリチカルな調整が必要なようです。  また、DACはL/R出力となっていますが、R-chはまだ配線されておりません。

dsPICでSDRを構築する、あるいは、その要素技術を公開するインターネットサイトは、沢山ある訳では無く、限られた情報を基に、自分で考えないとダメみたいです。 そして、その数少ないサイトのなかから、XC16によるプログラム例を探して、それを、今回の目的に合うようにアレンジしていくわけですが、コンパイルすると、エラーになったり、ものすごい数のワーニングが出たりします。 そこで、今まで読んだ事が無かった、XC16コンパイラのマニュアルを一通り読んでみました。 その中で、興味が沸いたのは、CCI という構文です。 これから、何年か、プログラムのコピペに耐えられようにしようとすると、従来の構文では、不都合が生じる可能性があり、後日、困るのは本人ですから、このSSBジェネレーターは、CCI 構文で進行する事にしました。 以前のXC16の構文を理解していない事が幸いし、以外と楽に乗り換えが出来ました。

まずは、CCI 準拠ですが、XC16-GCCの Option categorise:の中にあるPreprocessing and messagesを開き、その中にある、Use CCI syntaxにチェックマークを入れます。

Xc16_cci

次に、XC16(Global Options)を開き、Additonal options:の枠に -menable-fixed の文字を追加し、最後に下の方にある [Apply]を押します。 これはCCI とは関係ありませんが、 固定小数点形式の数値を使う為の処置です。  後日判明した事ですが、XC16(Global Options)ではなく、XC16-gccのOptionに記述するのが正しいようです。ただし、記事の中でも出てきますが、結局、固定小数点は使いませんでした。

Xc16_add_option

今回、構想するSSBトランシーバーの原型は、「おじさん工房」のSDR-3にあることに触れましたが、使おうとしているdsPICは、SDR-3を構成するハードやソフトにはとても及びませんので、せめて、SDR-3の構成は維持したまま、基本部分を慣れ親しんだPICで実現しようともくろみます。 従い、SSBの発生も「おじさん工房」が提案した第4の方法とします。 

まず、ADCやDACのサンプリングレートですが、ADCとDACのレートを一緒にし、余計な処理が生じないようにしようとすると、サンプリング周波数は、限られた周波数しか使用できません。

ADCのサンプリングレートはFcy=40MHzを80くらいから65535までの任意の整数で割った周波数に設定できます。 一方DACのクロックレートはfvco=160MHzから、1,2,4,8,16,32,64,128,256の8種類の数字のどれかで割り算した周波数(ACLK)をさらに256で割った周波数になります。 この条件から、DSP内部で作るミキサーのサブキャリア周波数を8KHz以上にしようとすると、ADCのクロックレートは40MHz/1024の39.0625KHzしか有りません。 これより低い周波数は、この1/2の19KHz台となり、ミキシングして得られたUSB信号がナイキスト周波数以上になってしまいます。 この39KHz台の場合、dspの処理時間は1024サイクル以下でなければならず、十分な特性のフィルターを作れない可能性がありますが、その限界が見えたら、さっさと、33CHに乗り換える事にします。

一方、DACも同じく39.0625KHzにするには、DACのクロック(ACLK)は39.0625 x 256=10MHzであれば良いので、Fvco(160MHz)を1/16に設定すれば良い事が判ります。

従い、Xtal OSCの周波数は、不動在庫している24MHzとして、これからPLL周波数の160MHzを作る事にしました。

SSB_generator_0.cをダウンロード

float_Tap.hをダウンロード

このCファイルは、後述のクロック条件の下で、ADCから入力された信号をFIRフィルター処理して、DACから出力するまでのプログラムです。 Hファイルは、TAP係数を羅列したファイルです。

実装されているTAP係数は15TAPのFIR LPF用ですが、この実装方法は後程、詳しく説明いたします。

dsPICはそのクロック周波数を高くする必要から、PLLを使いますが、この設定です。

Xtal=24MHzを1/3に分周し、8MHzにします。  この時の分周比 3がデータシートに出てくるN1となります。 そして、PLLPREの設定値は3-2=1です。

また8MHzを20倍して160MHzのPLL VCO周波数をつくりますが、20がデータシートのMとなります。 そして、PLLDIVの設定値は20-2=18です。

160MHzを2分周して80MHzのfoscを作りますが、このときの分周比 2がN2となります。 そして、PLLPOSTの設定値は2-2=0です。

foscが80MHzとなると、PIC内のシステムクロックはその1/2の40MHzとなり、これで、このdsPICは最高速度で動作する事になります。

DACのACLKはfvcoを1/16しますので、APSTSCLRの設定値は 3 になります。

dsp部分で積和演算を行うために、リングメモリが必要となりますが、その設定をX_MODset()という関数で作っています。 ここは、理屈抜きで、このように記述すればOKですが、ここで、TAP数により設定値を変える必要があります。 リングメモリーの先頭番地は、リンカーで決められますので、それをベースに計算する事にしています。従い、プログラム上からは、判りません。

initmain()のなかで、各種初期設定をおこないますが、各設定の順序は、試行錯誤した結果です。 コメントのみ変更して再コンパイルしたら、動かないとか、訳の分からないトラブルを軽減(完全になくすではありません)出来ました。 また、CAST変換がうまくいかずに、時々動かないという問題を少なくするために、デイレーを何か所かに入れてあります。 うまく動かないときは、このディレーを長くしたり、場所を変えたり、時にはPICkit3を外してみたりして、現在の状態に落ち着いています。

後日判明した事ですが、プログラムが動かなかったり、単純な再コンパイルで動作不調になる原因の一つが、リングメモリーの制御用に指定したワーキングレジスタをリンカーが勝手に他の用途に使ってしまう事にあるようです。 リングメモリーを使う時は、リンカーが勝手にワーキングレジスタを使わないようにユーザーが設定しなければならないとコンパイラの説明書に書いてありました。 具体的な方法はこちらを参照して下さい。dsPIC33CHの記事ですがdsPIC33FJも同じです。

Timer3からの割り込みの中に、DSP処理が全部はいりますが、今回は、FIR LPFを動作させるだけのプログラムがインラインアセンブラで記述されています。 ここまでは、JA1QVM OMの記事の通りです。 ただ、絶対アドレスをリンカー任せにしていますので、その記述が異なります。

XC16内で定義した変数は、その先頭にアンダバーをつけると(XC16で定義した変数がabcの場合、_abcとする)、アセンブラでも同じ変数として認識してくれますので、この手法で、XC16で得た各変数の絶対アドレスをアセンブラの中に埋め込んで、絶対アドレスの問題は解決しました。

main()処理は、main()が回っているインジケーターとしてLEDの点滅だけです。 このLEDの点滅を割り込み処理の中にいれ、DSPの速度測定をしようとすると、ADCが動かなったり、ソフトが止まったりしますので、DSPの処理時間を調べる別の方法を考えねばなりません。

次に、このプログラムにFIR係数を実装する方法を説明します。

FIRフィルターの係数計算は、色々な方法がありますが、私はここで計算した値を使っています。

Fir_tap_make0_2

TAP数や、遮断周波数の係数を入力して、出てきた数値の後ろに[,]がつくようにチェックマークを入れておきます。 

まず、必要とする遮断周波数を正規化値として入れる必要があります。この正規化値は次のようにして求めます。

求めたい遮断周波数 / ADCのサンプリング周波数

求めたい遮断周波数が3000Hz、サンプリング周波数(ADCのクロック周波数)が39.0625KHzの場合、正規化値は3/39.0625=0.0768となります。 この係数の最大値は0.5です。

Fir_tap_make1 

これで計算した結果が上のPC画面ショットのごとく、左側に縦に羅列されますので、これをすべてコピーします。 そして、float_Tap.hというファイルの中にペーストしておきます。 また、最初の行に、TAP数(Tap_Num)を記入して置きます。

 

このようにすることで、後程、TAP数や遮断周波数を変えたTAP係数の作成が簡単に行えます。

ここに示した、プログラムファイルは、ADCのデータをとりあえず3KHzのLPFを通しただけのものです。 このプログラムを作成する上で、一番トラブったのは、CASTでした。  TAP係数はdouble形式で提供されますので、XC16の中の変数に代入するとき、floatに変換し、これを固定小数点形式に変換する必要があります。  XC16 で固定小数点は _Fract と明示する事になっていますが、いくらやってもうまくいきません。 結局、float形式を16bitのsigned intに変換する事で、DACの出力が出るようになりました。 後日、判った事ですが、極性付き整数は、極性付き固定小数点の一形式と同じで、かつこの逆も言えるという事でした。

今後、これにサブキャリアによるミキサーと、USBのみ取り出すBPFを仕込み、約10KHzのサブキャリアで変調したUSBジェネレーターを完成させることにしますが、どうやって実装するかは、全く白紙状態です。 いつになることやら!

下のスペクトルは1KHz信号を加え、DACの出力をWave Spectraで表示させたものです。

Spectra_with_15tap_lpf

dsPICでSSBトランシーバー(SSBミキサー)へ続く。

INDEXに戻る

2020年3月 7日 (土)

SDR用 7MHz 100Wリニアアンプ

カテゴリ<SDR>

ダイレクトコンバージョン式SDRトランシーバーが完成しましたが、このトランシーバーに内蔵されているRFパワーアンプは10W出力です。 昨今のコンディションでは、QSOのチャンスもかなり低くなりますので、ストレスが生じない、100W出力まで増幅するリニアアンプを作る事にします。 条件として、電源電圧は48V以下としますが、まだ有りません。 有るのは30V10Aと12V30Aの固定電圧電源だけです。

まずは、予備検討です。

100wpaunit

上の写真は以前50WのAM送信機を作った時のPCのCPU用放熱板にマウントしたリニアアンプです。 AM50W出力アンプのピーク出力は200W有り、今回はSSBでピーク出力100Wですから、余裕で行けるだろうと踏んでトライします。 まだ強制空冷ができていませんので、1mW入力で60mW出力が得られる事を確認しただけですが、ちゃんとAB級で動作していることは確認済みです。

使用したファイナルはサンケンのN-MOS FET、FKI10531のプッシュプルで、将来200Wに対応できるように、基板は2パラ-プッシュプルに設計していますが、現在はシングルプッシュプルとなっています。 このサンケンのFETは、秋月にて、1石40円で売っている電源用で、入力容量が1530PFくらいあるにも関わらず、30MHzくらいまでスイッチング可能、Rdsが35mオーム位と、定電圧、高出力を狙うには、都合の良いスペックをもっています。

7MHz_100W_PA.pdfをダウンロード

回路図では、電源やバイアス回路、ファンドライブ回路の方が複雑になっていますが、リニアアンプ部は、簡単そのものです。 このRF入力端子から見たSWRは1.5以下です。

ファンを回しながら、検討する必要から、今回もジャンク測定器を入手し、ちゃんとケースに収めます。 用意したケースは、KEYENCEのマイクロスコープコントローラーです。 さすがに医療機器だけあって、シャーシがステンレスでできており、そのため、ステンレス用ドリルまで購入して工作する必要がありました。

100wrfamp2

真ん中で白く光っているのは、ブリキで作成した7MHzのLPFです。 すべてのユニットを並べたら隙間だらけです。 この隙間は将来200WまでQROするためにとっておきます。

電源電圧を24Vにして、終段FETのゲートバイアスを調整し、アイドル電流を100mAに合わせようとすると、いきなりドレイン電流が流れ、FETがショートモードで壊れてしまいます。 FETを交換して、慎重にゲート電圧を上げていっても、途中で電流が3A以上になり、また壊れました。 バイアス電圧を2Vに固定し、ドレイン電流が流れない状態で、キャリアのレベルを上げていくと、C級動作になります。 この場合、一応出力が得られますが、歪だらけです。 この状態から、歪がでないように少しづつバイアス電圧を上げていくと、歪は改善されますが、歪がなくなった途端、暴走が始まり、FETが壊れます。

Sdr2_fki10531_idle

手配したFKI10531はすでに3石壊してしまい、残りは2石のみです。 ここで、改めてこのFETのデータシートを見直してみました。 その中で、左のグラフデータを見つけ、今回のトラブルの原因が判りました。

このグラフデータは、VGSを変化させた時のIdの変化を示しています。

Tc25度の時に、0.1Aにアイドル電流を設定すると、すぐにジャンクション温度は上昇し始め、あっという間に75度を過ぎてしまい、Idは数Aレベルまで増加する事をを示しています。 このFETはC級やE級で使うときは問題ありませんが、AB級ではまったく使用できないFETで有る事が判った次第です。

結局、上辺のデータだけで選んだFETではAB級増幅は不可と判りましたので、FETの選定をやり直す事になりました。

5wout手持ちのMOS FETで2SK3234が有りましたので、これを実装して、終段のトランスの2次側を3ターンとして、テストしてみました。 Rdsが0.65Ωというスペックですが、アイドル電流を初期値で1石当たり、200mAに調整し、RFパワーを加えると、SSBの信号が左の波形のごとく、飽和しかかりの状態で5Wの出力となりました。この時の電源電圧は12.1V、電流は3.3A。 数秒間入力最大にすると、出力が20W を超えますが、リニアリティはあまり良くないようです。 リニアリティを改善する為に、電源電圧を30Vに変えてテストする事にしました。

30Vの電源でアイドル電流を1石当たり100mAに調整し、SDRを送信状態にした途端、電源が壊れてしまいました。 FETはドレイン ソース間ショート状態で壊れています。

SDRをSENDにした時のショックノイズでFETが壊れたみたいです。

この原因を調べないと先へ進めなくなりましたので、しばらく休止します。 この原因を確かめるには、電源電圧を12Vから徐々に上げていけるDC電源が必要ですが、手元にあるのはMax18V、Max3AのKenwood の電源か、自作のMax20V、Max1Aの電源、6Vから14Vまで可変できる30AのFT991用電源と、30V、12V固定電圧の電源しかありません。 今回は12V電源でうまく動作していたアンプをいきなり30Vに繋いだら、あっけなく壊れてしまったものでしたので、12Vから30Vまで徐々に上げていける電源が必要です。

そんな訳から、リニアアンプは一時休止し、リニア電源を作る事にします。

 

リニア電源が出来ましたので、終段のFET選定からやり直しです。

 

すでに3月の最終weekになってしまいましたが、本日、IRFP250Nを6石入手しました。 アマゾンで販売されている、中華リニアアンプに使用されているFETです。 今回はRSから1石261円+送料450円で入手しました。6石注文しましたので、336円/石になりました。

New_bias1

前回の熱暴走の反省から、バイアス回路の熱安定化回路を再検討する為、先にバイアス回路の再設計を行います。

今まで、温度検出ダイオードは1個で、全体の温度補償を行っていましたが、今までにFETが壊れた状況を思い出すと、この検出ダイオードの取り付けられていないFETが壊れる確率が高い事に気づきました。 そこで、今回は、それぞれのFETにダイオードを取り付け、それぞれのバイアス電圧が、独立して温度補償と調整ができるように変更します。 左上が、その回路図です。 また、新しいFETのゲートON電圧が高い方へ、少しずれましたので、5Vの3端子レギュレーターはダイオード2本でかさ上げを行い、6V出力としました。 このかさ上げのダイオードも周囲の温度補償としても動作します。

修正した全体の回路図 PWR-AMP100W_2.pdfをダウンロード

FETの入力容量が2000PFを超えましたので、周波数特性の補正を行う為、入力トランスの出力側に設けた22Ωの抵抗は2本パラにして、11Ωにしてあります。 下の写真は、FETを乗せ換えて、バイアス回路の変更が完了したパワーアンプ基板です。

100wamp_2

ファンやDCバイアス電源用の3端子レギュレーターは、電源電圧がMax48Vになった事より、耐圧オーバーで使えませんので、12Vの電源をディスクリート回路で作り、バイアス用6Vの電源は、この12V電源から供給するように変更しました。

 

電源電圧を20Vにしておき、アイドリング電流を片チャンネル当たり200mA(トータル400mA)として、入力にアンテナアナライザを接続すると、SWRは1.3くらいです。 出力は18mW出ています。 この時の入力は0.8mWでした。 前回はこのテストまでは良かったのですが、次に実際のSDRトランシーバーを接続したら、FETが壊れてしまいましたので、この調整状態から一度、電源電圧を10V以下まで下げて、入力レベルを上げてみる事にします。

10V電源で1Wの出力がでました。そこから、次第に電源電圧を上げていき、15Vまで上げたとき、2.5Wとなり、さらに18Vにした時、電源がパチと音がして、電圧が50V以上に。 すぐに、またパチと音がして、出力なしに。 RFが電源に回り込み、電源のFETが壊れ、その為、アンプの2石のFETも壊れてしまいました。 リニア電源をやり直しです

1weging2

リニア電源用のトランジスターは全て使い果たし、手配待ちの状態ですので、その間に、従来の電源で実験です。電圧を18Vに固定して、出力が1W になるように入力レベルも固定して、電流と出力の変化を見てみました。

 温度補償用ダイオードが従来の1N4148の場合、アイドル電流は2石合計で、100mAです。このデータを見る限り、明らかに熱暴走し始めています。 そこで、温度対Vfの変化が2倍くらいある1SS133に変えてみました。 1SS133のアイドル電流はより暴走が起こりやすい、2石合計で200mAです。 結果は、3分経過した時点で電流も出力も増加が止まりました。 

電源電圧18Vのままで、2石のプッシュプル回路のドレイン間に1000PFを追加したり、出力トランスの後に、LC共振回路を挿入したりして、18W連続出力が得られる状態になりました。 この状態での入力は0.8Wで、以前アンテナアナライザーでテストした時と同じゲインが得られています。

電源の電流制限が3Aでかかる為、この電源での最大出力は25Wでした。 そこで、30V 10Aの容量のある電源に、接続し、アイドル電流を2石合計で200mAにしておき、出力を上げていくと、30W出力になったとき、熱暴走が起こり、ファイナルのFETがまたしてもショートしてしまいました。 バイアス回路はまだ不十分でした。

しばらく、放熱板ではなく、頭を冷やす事にします。

WEB検索をしていると、電源用のFETを使ってリニアアンプを制作しているJE3PRM OMのノウハウ紹介の記事が見つかりました。OMの製作アンプと、私のアンプの構成は異なりますが、かなりのノウハウを生かす事ができそうです。 そこで、電源電圧を20V(12V20Aの電源と8V30Aの電源を直列に使った)の電源を使い、下の回路図で、5W入力時、40Wの出力を得る事ができました。(Very TKS OM)

Pa_20v_40w

この回路は、バラックに近い状態で仮組したものでした。 20Vの電源で、5.2Aの電流が流れ、40Wでしたので、約38%の効率です。100Wの目標には、まだ遠いですが、足がかりが出来た感じです。 この回路を実験する途中で、またFETが破損し、今度は楽天にて1石135円で売りが出ていたIRFP250Nを10石購入し、1石だけ交換したのですが、バイアス電圧の差が2V近くあり、PP回路がうまく動作しません。 どうやらロットのバラツキみたいです。 電源用のFETでアナログ動作をさせる場合、この問題はついて回るようです。 誰かの製作例を見ながら、そっくり同じものを作っても、性能が出ないのは、このロットのバラツキによる影響が一番かもしれません。 今回、2石とも楽天から購入したFETに交換したら、アンバランスの問題は解決しました。 

今後、さらに電源電圧を上げられるようにバイアス回路を検討する事にします。

Pwramp36w_bias

左が変更したバイアス回路です。

変更内容は、温度検出用のダイオードを2個直列に接続し、温度変化による、電圧変化が2倍になるようにしました。

そして、このバイアス供給回路を実装した上で、電源電圧を26Vまで上げて、36Wの出力が得られたのが、下の回路です。

この回路では、入力4Wのとき、4.2A流れ、36Wが連続で得られていました。 ただし、この出力が、限界で、いくら入力を増やしても、出力は増えませんでした。

Pwramp36w_tx この回路で、アイドリング電流は、両方合わせて、80mAくらい。 入力側のSWRは1.3以下。

電源電圧は22Vで出力は35Wくらいで、以降、電圧を上げても入力を上げてもほぼ飽和状態でした。

出力が飽和する原因を確かめようと通電を続けていると、3分も経過しないうちに、5Aのヒューズが切れてしまいました。 そして、AMPの片方のFETが全端子ショート状態で破壊していました。 この原因は、またしてもFETの熱暴走です。アイドリング状態では、問題ないのですが、パワーを大きくすると、例え、ソースに0.1Ωの抵抗を挿入していても、熱暴走を起こしてしまいます。 バイアス回路の再検討が必要です。

現在の1SS133を直列に接続した、バイアス回路で、1SS133がそれぞれ0.1V、2個直列で0.2V変化した時の、FETゲート電圧の変化を計算してみました。 結果は、なんと0.08Vくらいしか変化しない事が判りました。 ここは、少なくとも、1SS133が0.1V変化したら、FETゲート電圧も0.1V変化してほしいので、バイアス回路を以下のOP-AMPを使った回路に変更する事にしました。

Pa100w_bias5

 

Pa100w_bias5up

この回路のOP-AMPのゲインは6dBあり、1SS133が0.1V変化すると、出力は0.2V変化します。 多少効き過ぎかもしれませんが、この回路を実装してみました。

左が実装したときの写真です。 パワーアンプと同じ基板の上に配置されますので、高周波の回り込み対策はこれでもかというレベルで実施しました。 18Vの電源で実際に動作させた場合、問題は有りませんでした。

最初、この新バイアス回路に変更し、ソースにあった0.1Ωの抵抗はショート状態で、電源電圧26Vでトライしました。 アイドル電流は各FET50mA、合計100mAに調整しました。 残念ながら、出力トランスの2次側を2ターンの時、12Wしか出ません。 3ターンにしたら、5W出しか出ず、熱暴走が起こり、FETが壊れました。 熱暴走する前に2次側を1ターンしてみましたが、5Wしか出ませんでした。

Pa100w_amp5

そこで、ソース抵抗の0.1Ωは元に戻し、AMP部分の回路を上の回路図に変更したうえで、出力が飽和する原因を探す事にしました。 オシロで各FETのゲートやドレインの電圧波形を確認すると、PP回路のゲートやドレインの波形がかなり異なります。 どうも、同じアイドル電流では、B級動作の最適状態にならず、出力波形を見ながら、アイドル電流を決め、かつ、ドレインとGND間に挿入するコンデンサの値をアンバランスにすると、まともなプッシュプル動作に近づける事が判りました。この最良状態で、電源電圧18Vにしておき、出力が飽和する直前まで、入力を上げると、0.3W入力で16Wの出力となりました。

ドレインの電圧波形は、ピークは24Vくらいですが、min.は4Vです。この4Vはソースの0.1Ωの両端の電圧と一致します。 すなわち、プッシュプルの片方の振幅は20Vしかなく、これを出力トランスで2倍しますので、出力のピークは40Vです。これを実効値に直し、50Ωの負荷で計算すると、16Wの出力になります。 要するに、この回路では、電源電圧で、出力が決まり、少なくとも、コンベンショナルトランスの巻き数は最良状態であることが判りました。

Transdata2004

そのコンベンショナルトランスのコアについて、特性を取ってみました。

左のグラフでロスが多いとコメントしているコアが今まで使用していました、NECトーキンのコアで、赤色のテープで巻いていました。

最適候補とコメントしているコアは、北川工業のGTFC-25-15-12を6個使ったもので、全体のインピーダンスが少し低めですが、このコアに変更する事にします。

このコアは黄色のテープで巻いてあります。

100wpa_gtfccore  

出力を上げるには、電源電圧を上げて、かつ、その電圧でも熱暴走が起こらない回路を作るしかありません。 

入力のSWRが3くらいあるので、トランスの1次巻線を2ターンとして、かつ、トランスの出力抵抗を22Ωにした状態で、SWRが2くらいになりましたので、電源電圧を少しづつ上げてみました。

Amp5_vccadj25v

左の表は、その時のデータです。電源電圧は最大で26Vまで上げられますが、電源から送信機入り口までの電線による電圧降下で、最大25.1Vしか上げる事が出来ません。 それでも、40Wの出力が得られました。そして、この40W出力中でも、電流は次第に減少し、1分で10mA近くのペースで少なくなります。 熱暴走が起こっていない証拠です。ただし、3分もすると、出力は38Wくらいまで落ちます。 

2020年ゴールデンウィークに突入しました、今年は新型コロナウィルスでどこえも行けません。

ここから、フの字タイプの保護回路付きの安定化電源を使えるようになりました。

 

Fet_data

少し気になる問題があります。 上の表を作成するとき、回路が最大出力を出す為には、片方のFETのドレイン-GND間に1390PFのコンデンサを接続し、もう一方のFETのドレイン-GND間にはコンデンサは有りませんでした。 そこで、この二つのFETのゲート電圧対ドレイン電流のデータを取ってみました。No.1のFETにはコンデンサは接続されず、No.2のFETのみ1390PFが接続されています。 見ての通り、ふたつのFETの特性は大幅に異なります。 また、ゲインと表示してある数値はドレイン電流が10mAから1Aまで変化する場合のゲート電圧の差を見たものですが、No.1と2では2倍以上の差があります。

これらのFETは一括して楽天から購入したものでしたが、スィッチング用FETとしては、全く管理されていない項目ですので、この種のFETをリニアアンプに使う場合、このデータを確認して、そろったもの同士を使わないと、期待する出力は出ないという事のようです。 買ったのは全部で10石でしたが、すでに3石壊してしまいました。 残りは7石ですが、1石は不良品で、ゲート電圧を7Vまで上げても、ドレイン電流は流れませんでした。

リニア電源が出来ましたので、アンプの検討を再開しますが、まず、No.1のFETを取り外し、No.2のFETに一番近い、No.4のFETに交換する事にします。

電源電圧18Vにて、最大出力が出るように、回路定数をいじった結果、入力1Wで18W出ました。 以後、すこしづつ電源電圧を上げ、32Vでアイドル電流各0.1Aとして、入力3Wを加えた結果、32Wしか出ません。流れている電流は3.91A。 1分くらい通電すると、電源の保護回路が働き、電圧がダウン。 調べてみると、No.4のFETがドレイン、ソース間ショート状態で壊れていました。 電流は、減少方向にドリフトしている最中で、死んでしまったものです。 原因が判らないまま、No.5のFETに交換しました。

フの字特性の電源は高周波の回り込みもなく大丈夫でした。

前回、25Vの電源で40W出ていました。 今回、電源電圧を33Vまで上げましたが、30W以上出ません。 やる度に、最大パワーが下がっています。 ソースに挿入されている0.1Ωの性かもと、この抵抗をショートしてみましたが、ゲインは少し上がりましたが、最大パワーは変わりません。 考えられる原因は後ひとつ、コアです。 コアを変更してみる事にします。

Avr40v7a_2

そこで、TS-930Sに使用されていたメガネコアのインピーダンス特性を、先に測定した各コアのデータに重ねてみました。 左のグラフに示しますが、今まで検討してきたコアとは、全く異なるデータを示します。

このTS-930S用のコアは昨年作った、6m用AM送信機のパワーアンプに使っていたものですが、6mリグには戻さずに、この7MHz用リニアアンプで使ってみる事にします。

 

 

Powe_v_ts930score

左のデータは、コンベンショナルトランスのコアをTS930S用に変更し、トランスとLPFの間に、整合用のLC回路を挿入し、ソースの0.1Ωも廃止して、最大出力が得られるようにした状態で、各電源電圧ごとに、アイドル電流が各100mAになるように再調整した時の出力と効率です。 少なくとも、コアによるロスは最小となっているはずであり、かつこのコアは7MHzで180Wくらいを出力する実力があります。 従い、電源電圧を上げても、出力が上がらない原因は、FETしか考えられません。

このFETは18V前後の電源で使ったとき、最大効率が出せるけど、それ以上の電圧では、どんどん効率が落ちるのではないかと推測します。 

このリニアアンプを検討を始めて、すでに4か月以上経過しましたが、この場に及んで、FETの選択からやり直す事にします。

JE3PRM OMが紹介している、FETは、スーパージャンクションと言われるMOS FETで、従来のFETより、高耐圧で、ON抵抗が低く、Cissもかなり小さい、最新のFETのようです。 国産のFETで、同様なFETを探すと、東芝がDTMOS構造のFETとして、かなり前から製品化し、一部は秋月でも取り扱っています。 そこで、TK8Q60Wという品番のFET(1石 60円)を10石入手し、これでリニアアンプを作ってみる事にしました。

Tk8q60wdata

IRFP250Nの事も有りましたので、購入した10石のVgs対Idのデータを取ってみる事にしました。

左が、その10石のデータです。 さすがに東芝製ですね。バラツキのレベルがIRとは全く違います。 これだと、どの組み合わせでも、PP増幅のペアを作る事ができます。 ただし、Pd=80Wにしては、かなり小さなパッケージで、このデータを取る為に、0.5AのIdを流すと、あっと言う間に、触れないくらい熱くなります。 放熱板にしっかりと密着させる方法を考えなければなりません。

100wpa6_2

Itk8q60wmount

最初は、シングルのプッシュプルとして、50W出力を狙い、うまくいったら、2パラプッシュプルで、100Wを狙います。 ただし、目標とした電源電圧が48V確保できない事が判りましたので、40V以下の電源で100W出力に目標を変更します。

左の写真は、IRFP250Nを取り去り、基板と放熱板に加工を施し、このFETを取り付けた状態です。 FETは4個取り付けましたが、配線は2個だけ行い、もし、壊れたら、予備のFETに配線し直し、FETの交換の煩わしさを軽減します。

ただ、FETの足が短く、配線には難儀しそうです。

100wpaunit6

なんとか、配線完了です。 

電源電圧を落として、恐る恐る動作テストを行う事にします。

18Vの電源電圧で、テストしました。 アイドリング電流は、各100mAです。 入力3Wで13.5Wしか出ません。 1分くらい通電した後、入力をゼロにしたら、電源電圧が0.5Vくらい上昇し、電流はアイドル電流に戻る事無く、熱暴走を開始してしまいました。 バイアスの温度補償機能の応答速度が遅くて、熱暴走を阻止する事が不可能になっているようです。 結局、熱暴走を止められず、安定化電源が保護動作したのは、アンプのFETがバリバリと言った後でした。 温度センサーの位置や構造を一から見直す必要がありそうです。

100wpa_1ss133

対策として、1SS133をシリコンラバーごと銅板で丸め込み、これを、FETのドレインとシリコンラバーの間に挟み、止めた状態で、再テストしてみました。

電源電圧が16.4V、2W入力で、12W出て、入力をゼロにすると、ドレイン電流は、2秒くらいで、アイドル電流の状態に戻ります。

次に、電源電圧を22Vにして、3Wの出力まで、入力を加えたところ、熱暴走が始まり、またしても、FETはショートモードで破壊しました。 FETがショートモードで破壊しても、安定化電源のプロテクタが働き、電源は無傷です。

スーパージャンクションタイプのFETは、構造的に、ジャンクション部分から、ドレインの外側金属面までの熱抵抗が小さく、小さなドレイン面積でも、無限大サイズの放熱板を付けたら、仕様書に出てくる80WのPdを確保できますが、有限サイズの放熱板と、いくら、マイカより、熱抵抗が小さいという、シリコンラバーを介した放熱では、無理があるようです。 ここは、OMが採用しているように銅板をドレインに半田付けして、ドレインの面積を増やさないとダメなのかも知れません。

 

近くのホームセンターに1mm厚の銅板を買いに行き、現在の放熱板に取り付けられる、放熱フィンを作る事にしました。 結果は、大成功です。 52Wの出力を安定して得る事ができ、電源電圧40Vで70Wの最大出力を確認できました。

実施内容は全て、JE3PRM OMの記事の通りですが、具体的な工程を紹介します。

Fetmount1

まず、1mm厚の銅板を左の様に20mm x 28mm角に切り取り、放熱板に取り付ける為の、丸穴を開けます。 大きめのシリコンラバーを用意しますが、銅板の下に敷くサイズを確保できないときは、複数枚用意します。 さらに、ビスとドレインを絶縁する、絶縁ワッシャを用意します。 この時、ワッシャの内側の高さが0.8mm以下の物でなければなりません。 銅板に開けるふたつの穴はこのワッシャが入る大きさが必要です。 私のワッシャは4.5φの穴でOKでした。

Fetmount0

銅板をバイスでつかみ、60W以上の半田こてで、半田を少し盛ります。 また、FETのドレインの金属面にも半田メッキを行っておき、銅板上にFETを置き、銅板の半田を暖めると、その内、FETが簡単に銅板の上を滑りだします。 この状態で、FETが適当な位置で動か無いようにピンセットで押さえた後、半田こてを離し、半田が固まるまで待ちます。 このくらいの熱処理くらいでは、FETは壊れませんので、失敗したら、何度でもやり直します。

 

Fet_fin0

上は、そのようにして加工した放熱フィン付きのFETです。 右側は一発で半田付けが成功しましたが、左側は何度も失敗し、銅板面が半田メッキだらけになってしまいました。 ここで、注意したいことは、決して銅板の裏側に半田がつかないことです。 もし、誤って半田がついてしまったら、その銅板は廃棄するのが賢明です。

放熱板に止めるときは、間にシリコンラバーを挟み込みますが、もし、分割されたラバーの場合、互いに重ならないようにします。 上の写真では、放熱フィンを固定した後、銅板の端に沿って、ラバーをカッターで切り取りました。

次に、このFETに温度補償用のダイオードを半田付けします。

1ss133mount

まず、1SS133の両方の足に長さ10mmくらいの耐熱スリーブをかぶせます。 耐熱スリーブが無いときは、耐熱リード線(半田こてで電線に半田メッキをしても、被服が縮まないリード線)の導体を抜き取り、残った被服をかぶせておきます。 0.3mm厚の銅板で図のように丸め込みますが、ダイオードと銅板の間にシリコンラバーを詰め込み、ラジペンで、丸く成型しながら、締め付けていきます。 ダイオードが自由に回転しなくなるまで締め付けます。 あまり強く締めるとダイオードが割れてしまいますので、要注意です。 最初シリコングリスを塗った状態で、銅板を丸め込みました。 しかし、ダイオードが破損する事が多く、緩衝材と熱伝導を兼ねて、シリコンラバーを挟み込むようにしたものです。 1SS133を入手出来ない場合、1SS178でも代用できます。  ダイオードのリード線に延長用の耐熱リード線をハンダ付けし、その部分に2φの熱収縮チューブをかぶせ、しっかり固定します。

この出来上がった銅板によるダイオードホルダーをFETのドレインの金属部分に半田付けします。

Tk8q60w_mount

このようにして、加工したAMPの全体が上の写真です。 実装にあたっては、ドレインが放熱板にショートしていないか十分に確認します。 この実装状態でも、銅板のはしっことプリント基板のエッジがタッチしており、この修正の為に、基板をやすりで削る羽目になりました。

写真では、入力トランスの出力端に22Ωの負荷抵抗が見えますが、これは100Ωに変えてあります。 また、写真には有りませんが、ドレイン間に390PFのコンデンサを追加してあります。

さらに、コンベンショナルトランスの出力からLPFの間にあった470PFのコンデンサは廃止し、コイルは2.25uHに変更しました。 オリジナルは、LC直列回路でしたが、それじれの容量とインダクタンスをLCメーターで測定し、7100KHzのインピーダンスを計算すると、合計でプラスのリアクタンスとなりましたので、コイル単独で、同じリアクタンスが得られるようにしたものです。

PWR-AMP100W_6.pdfをダウンロード 

Tk8q60w_output

左の表が、恐る恐る入力レベルと電源電圧を上げたときの、出力データです。

電源電圧40V、入力5Wのとき、めでたく70Wの出力が得られました。

そして、この70W出力状態から入力をゼロにすると、いっきにアイドル電流の状態に、Idが減少します。

今までの回路では、このテストをすると、アイドル電流状態に戻るまで10秒i以上かかったり、最悪熱暴走していました。

また、効率も、まずまずの数値を示しています。 ソースに接続した抵抗が0.33Ωなので、もう少し悪くなるのではと、危惧しましたが、それほど悪さはしていないようです。 ただし、70Wを連続1分以上出力すると、Idが少しづつ上昇します。 その程度は5秒で10mA程度ですが、30mA上昇したところで、入力をゼロにしたところ、Idは初期のアイドル状態に数秒で戻りました。 多分、70Wくらいが、最大電力になりそうです。 さらに、このFETのSOAを確認すると、40Vの電圧のとき、2Aが最大となっていますので、2石に均等に電流が流れたとしても、このくらいが限界でしょう。

FETのPd maxは2石で160Wですが、それは無限大放熱板の時だけです。 現在は95mmの2個のファンで強制空冷していますが、実際問題として、許容できる最大Pdは1/2の80Wくらいと、推測します。効率が50%なら、80Wくらいの出力が限界となりそうです。 このAMPはSSB用ですので、1分間くらい100Wの出力が出来、70Wくらいを連続30分以上出力出来たらよいと考えますので、 今後この限界を詰めようと思います。

アンプとは、別問題ですが、電源電圧を40Vにした事により、12Vのシリーズレギュレーターの放熱板の温度がずっと触れないくらい熱くなります。これは、ちゃんと対策しないと、バイアスが狂って、アンプを破壊する原因になりそうです。

そこで、基板上の小さな放熱板からトランジスタを外し、ステンレスのシャーシに直付けしました。 これで、様子を見る事にします。

この、プロジェクトの目標は100Wのリニアアンプですが、今までのスーパージャンクションFETを使った回路では、FETのPdが160Wしかなく、常温で、80Wまで許容できるとし、かつ、アンプの効率が50%とすると、最大で、80Wしか出せません。 そこで、このFETを2パラ、プッシュプルとし、最大Pdを320Wにして、100Wの出力を得る事にします。

2parafetmount

2parafetcomp

2parapp_fetunit

2parapp_fetmount_2

上の段の左は、銅板に2石並べて半田付けしているところです。 2石の並びがずれないように、FETのTOPに両面テープを張り付けています。 両面テープの素材は紙ですので、半田こての熱で溶ける事は有りません。 右側は、2石のFETのゲートに1Ωの抵抗を挿入するために張り付けたプリント基板の短冊です。 この短冊の中に1Ωのチップ抵抗が付けられております。 この基板は両面基板となっており、裏側の銅箔で、2石のドレインを連結しています。

下段の左は、新たに作った、1SS133の温度センサーをドレインのフィンに半田付けしたところです。 銅板は、20mm x 28mmの先に使用した1石用を使用しましたが、FETを2石並べて半田付けするには、寸法的に、少し窮屈ですので、次回作るときは、20mm x 30mmくらいの銅板が良いのですが、放熱板側のタップ穴ピッチと合いませんので、写真のごとく、まとめました。 右上は、この放熱フィンを放熱板に取り付け、ドレイン以外の配線を完了した状態です。

2parapppa_schema

2parapp_paunit

出来上がった配線図とアンプユニットです。

2パラPPにしたので、コンベンショナルトランスの2次側巻線は3ターンにしてあります。 3ターンにしたので、今まで使っていました、2芯シールド線(黄色のワイヤー)がトランスの銅パイプの中を通らなくなりました。 そこで、少しロスが増えますが、50SQのKIV線に変更しました。多分、40V以下でも100Wが得られるだろうと、期待しています。

100woutdata

左が、電源電圧を上げながら測定した、出力や電流のデータです。

アイドリング電流は、各電源電圧の時に、プッシュプルの各片方ごとに100mAに合わせてあります。  パラ付けですので、個々のFETに50mAづつ流れる補償はありませんが、先に確認した、バラツキデータから、一方が100mAで、片方が0mAという事はなかろう、とみています。 C14は当初390PFのままで、測定しました。電源電圧34Vで、10W出力にして置き、最適値を探した結果1390PFと出ましたので、このコンデンサを1390PFに変更し、34.2Vの電源電圧の時、6Wの入力で、100Wでました。 なによりも、うれしいのは、390PFのとき、効率が39%だったのに、対して、1390pFの場合、効率が52%まで改善した事です。

データには有りませんが、電源電圧35Vにて、7W入力すると、120Wくらいでます。 それより出力を大きくすると、安定化電源のフの字プロテクタが動作し、電源がOFFになります。

100wpa_fan

いくら、温度補償回路を追求しても、放熱板の強制空冷はマストです。 アンプユニットを挟んで、2個のファンを動かしています。 右側の外側についているファンは、この医療機器にもともとついていたもので、95mm角厚さ25mmのものですが、長年使っていたのか、少々騒音が大きいです。 左側のファンは右側と同じサイズですが、最近、秋月より購入した安価なものですが、こちらは、かなり静かです。

このふたつのファンで、風を左から右へ抜けるように、CPU用の放熱板に吹きつけています。 70W出力中にファンを1個止めると、Idがすこしずつ上昇を始めますので、効果はバツグンです。 ただし、電流の増加は数十秒でとまり、こんどはゆっくり減少に向かいます。 この減少に向かうのは、温度補償が効き過ぎている為で、弊害として1分以上エージングすると、ゆっくりと出力も減少します。  10分くらいのエージングで、50Wの出力が42Wくらいまで落ちます。 この弊害は、壊れるよりはましですので、このままです。

やっと、リニアアンプが完成しましたので、TSSへ保証認定を依頼している間に、エージングテストをやることにします。

 

 

一応、まともに動き出しましたので、スプリアスや2信号特性を確認しました。

70woutsprias

100w_amp_lpf1

 

左上は70W出力時のスプリアス特性です。 100W出力にしたら、第2高調波を含め、さらに良くなります。右上は、7MHzのLPFの上部が開いていましたので、蓋をしました。 蓋の有り無しで、データは変わりませんでしたが、気休めです。

なお、これはFETのバラツキと考えられますが、各100mAのアイドル電流にした状態では、第2高調波が、-35dBくらいまでしか落ちていませんでした。 そのため、スペアナを見ながら、バイアス電圧をいじってみました。 結果は、一方はバイアス電圧を上げると、高調波が少なくなるのに、もう一方はバイアス電圧を下げた方が高調波は下がります。結局、両方とも100mAに調整した後、一方のバイアス電圧を下げる方向で調整し、-50dBはクリアーしています。

20wout_2tone

50wout_2tone

 

Inout

左上が40Wpep出力時の2信号特性です。 右上は、100W平均値出力時の特性で、100Wpepとは異なります。 ただ、この波形は70Wを30分くらい連続出力した後の波形です。

無信号送信状態にしておき、入力を5秒間加えて出力を測定し、直ちに入力OFF。次に入力ONまで10秒以上休むというやり方で、測定したデータが左のグラフです。 このデータを見る限り、90Wくらいまでは、リニアリティが確保されているのが判ります。 私のスペアナの分解能が悪く、IMD特性は見る事が出来ません。 測定専用のバンドスコープ付きSDR受信機を用意できたら、測ってみようとは思いますが、あまり良い特性ではないと、思われます。 ただし、変調音を聞いた感じでは、違和感は有りませんでしたので、当面はこのままです。

また、前回の調整から1か月以上経過したLO漏れとUSB漏れをチェックしましたが、いずれも -50dB以下を確保し、ドリフトはありませんでした。

リニアアンプのケース入れが完了しましたので、この状態で、エージングテストです。

Asing70w0

久しぶりに、コメットのSWRメーターとオイル冷却ダミーロードを物置から引っ張りだし、TS-930Sを信号源として、エージングテストをしました。

まず、最初に100W出力で、2分間、連続出力した後、70Wに出力を落とし、そこから、30分間、連続出力を行いました。 時間経過とともに、出力が減少しますが、これは、TS-930Sの出力が下がるのと、このリニアアンプのゲインが下がるのが原因で、下がってきたら、TS-930Sの出力を上げ、常に70W出力が出るようにしました。 最初、入力2.5Wで70W出ていましたが、2分くらい経過すると、出力が下がり始めるので、出力70Wをキープするように、TS-930Sの出力を調整しました。  30分のエージングが終了し、その時のTS-930Sの出力は3Wになっていました。 その状態で、入力を10Wまで上げてみましたが、アンプ最大出力は100Wでした。 

Ts930out

Asing70w1

左上は、70W出力時のTS-930S出力。 右上は、リニアアンプの出力波形です。 出力波形は、スペアナのデータでも判るように、完全な正弦波です。

エージング終了後、出力を可変すると、30W前後の時だけ、約5MHzと10MHzのスプリアスが発生します。 原因は、FETの電流がこの付近の値の時だけ発振するようです。 多分、FETのゲインがこの出力付近で最大となるのでしょう。 対策として、ドレインからゲートへ1000p+1Kのシリーズ回路で負帰還をかけることで解決しました。

100w_amp_cab

もともと、このケースのフロントパネルは紺色でしたので、このアンプも紺色で仕上げました。 メーターの左側に縦線が見えるのは、A4サイズのプリンターでは、パネル全体を印刷できず、この線の部分を境に分けて印刷した為です。

TSSの保証と、総通の許可が降りたら、ON AIRにトライします。

SDR_100W_TX_BLOCK.pdfをダウンロード  

10Wのトランシーバーでもコメントしましたが、サウンドカードの中のブロック図は理論的に考えられるブロックで、HDSDRの中が、このようになっているかは確認していません。

 

このテストの途中、送信から受信にした時のタイミングが、SDRより、リニアアンプの方が、かなり遅れます。 遅れは1秒以上です。 原因を調べたところ、SDR側のフォトカプラーのLEDにつながる電源ラインが、負荷となるリレーとデカップリングコンデンサの為、かなりゆっくり降下し、その間、LEDの消灯開始電圧まで、フォトカプラーの2次側TRがONしたままになっていました。 対策として、フォトカプラー内のLED両端に510Ωを並列に入れ、電源ラインが6V以下になると、LEDが消灯するようにしました。

LED消灯対策済み 7MHz_SDR2.pdfをダウンロード

  

70W 30分のエージングテストは終了しましたが、ON AIRの許可が出るまで2週間はかかりますので、ダミー抵抗に出力しながら、模擬運用を行っていますが、事故が2件発生しました。

まず、40Vでテスト送信を開始したら、どこかでスパークが起こり、明るくなったのですが、どこでスパークしたのか判りませんでした。 それでもアンプは正常に動作しており、正常にテストが終了しました。 後日、コンベンショナルトランスのメンテの為、これを取り外すと、電源が供給されるチョークコイルを通った後の、コモン部分に設けた4個の104Kの内、2個のチップコンデンサが黒焦げになっていました。 チップコンデンサが黒焦げになりましたが、オープン状態となった為、アンプは正常にに動いていたものです。 このコンデンサはDC50V耐圧のもので、ここに通常電源電圧以上の電圧は加わりません。 壊れたチップコンデンサはメーカー不明の秋月から買ったもので、壊れなかったコンデンサはRSで買ったTDK製でした。TDK製は全部使い果たし、秋月のものしか手持ちがありませんので、秋月のものに、とりあえず交換しました。 1週間後、このスパークが再発しました。 壊れたのは、また秋月から買ったチップコンでした。 今度は、村田SSのラジアルタイプ0.1uF2個に変更し、様子を見る事にします。 

35V 20Wくらいで、エージング中にアンプ入力をON/OFFしていたところ、突然、出力なしになりました。 調べると、FETと電源は正常、 バイアス電圧が2Vくらいまで下がり、FETがカットオフ状態になっていました。 この原因も入力トランスからの信号をFETのゲートに接続するとき、絶縁の為に挿入した50V 104Kのチップコンデンサが、絶縁不良を起こし3KΩ位の抵抗値を示していました。 ここでもDC50Vを超えるような電圧がかかるとは思えないのですが、壊れてしまいました。 修理は、同じ50V 104Kに交換です。

 

Biascarve

FETのゲートバイアスの温度補償が、効き過ぎの状態でしたので、左のグラフのように、温度変化に応じて、傾斜が変わるような回路を作り、その効果を確認してみました。

このカーブは、R37、R38の値をパラメーターとして、作成したものです。 グラフはVR4によるバイアスを3.5Vくらいに固定して作成しましたが、VR4を動かすと、飽和レベルが上下します。

VR4による固定バイアスを実際に動かしながら、実験した結果、従来の回路では、例えば、50W出力から、いきなり入力をOFFにした場合、即、元のアイドリング電流以下まで戻り、ひどい時は、一瞬0mAになります。 これは、高出力時、回路がB級ではなくC級で動作していたことを意味し、リニアリティの悪化につながります。

正常なバイアス状態は、出力レベルにかかわらず、常にB級もしくはAB級で動作する事ですから、入力OFFしたら即座にアイドリング電流値に戻らねばなりません。

従い、実際の調整方法は以下のようになります。

まず、R37,38を2.2KΩに固定しておき、さらにVR1,VR2最小の状態でVR4を最小電圧になるようにしておき、VR1とVR2を調整し、アイドリング電流が100mAになるように調整して置きます。 そのあと、出力を70Wくらいまで上げ、FETが十分熱くなったら、急に入力をOFFします。 すると、ドレインに流れる電流は即、アイドリング電流まで落ちるか、あるいはそれ以下になります。

同様にして、VR1,2を最小にした後、VR4による初期電圧を少しあげ(0.2V刻みくらい)、VR1,2でアイドリング電流を100mAに調整します。そして、また70W出力にした後、入力をOFFした時の電流を観察します。 

これを何回か繰り返していくと、あるVR4の電圧を超えると、入力を調整し、OFFしても,即アイドリング電流に戻らず、数秒から10秒以上遅れるようになります。 この遅れが発生するようになった場合、70W出力の時、アイドリング電流が増えていることを意味します。

そこで、VR4による電圧を少し下げて、入力OFF時、即、電流がアイドリング電流まで落ちるポイント選び、その状態に固定します。

これで、温度補償を考慮したバイアス電圧の設定は完了しましたが、場合によっては、出力レベルにり第2高調波が、規定の50dB以下に収まらない事が発生します。

もし、そのような現象が発生した場合、以下の調整を行います。

VR4は先に決めたポジションにしたまま、再度アイドリング電流をVR1,2を調整して、今度は120mAくらいに設定し、入力を次第に上げていくと、出力レベルにより第2高調波レベルが変動する現象がみられます。 この現象が現れたら、第2高調波レベルが一番高くなる出力にしておき、そのレベルが小さくなるようにVR1かVR2どちらか一方を調整します。 どちらを調整すのかは、VR1もしくはVR2をバイアス電圧が低くなる方向に回したとき、高調波レベルが下がるVRのみを調整します。 

このようにして調整した結果、100W出力で第2高調波を60dB以上低くする事ができます。 ただし、ある程度が限度で、VRを調整しても低くならないときは、LPFのATT量が不足とか、LPFの入力が出力と結合しているとか、ほかの要因が考えられます。

100wpa_bias7

この調整方法はスペアナが無くても可能です。 第2高調波である14MHzを受信して、7MHzの基本波より50dB以上低ければ問題なしです。

この調整状態で確認した2信号特性のリニアリティが以下の波形です。 80Wくらいまでなら、我慢できる波形をしています。30分エージング後の波形で、左から順に60Wpep、80Wpep、100Wpep出力時の2トーンの波形です。

30w_2tone

40w_2tone

50w_2tone_2

また、当初より有ったエージング中にゲインが低下する件も若干の改善がみられました。 入力2.2Wで70W出力があった状態で、30分エージング終了後、同じ70Wを出す為の入力は2.4Wくらいでした。 なお、30分エージング後の最大出力は入力を10Wにしても、100Wと変わりませんでした。

 

下の写真は、完成したリニアアンプの内部です。

 

100wpacomp

1週間で、TSSの認定がおりましたので、即日、総通へ、SDRトランシーバーとこのリニアアンプの追加申請を行いました。 そして、さらに1週間後、総通から審査終了のメールが届きました。 指定事項の変更はないので、即ON AIRできますが、その前にHFのアンテナの整備が必要なようです。

HFのアンテナを4か月くらい使っていなかったのですが、ベランダのMTUを調整して、いざ、送信機に繋ぐと、SWRが3以上になります。 色々試した所、同軸の長さでSWRが変わります。 また、新しい問題が出てきました。 1時間余り奮闘した結果、MTUにつながるMコネクタのゆるみが原因でした。 それを対策して、CQを出しました。 1エリアのOMさんとつながりましたが、了解度がさっぱりです。 RSの交換のみで終わってしまいました。 そのときのバンドスコープが以下です。

40m1stqso

コンディションが良い時は、左にある橙色の帯が画面いっぱいに広がるのですが、さすがに、カーソルが示す周波数帯の信号は、良く見えません。 相手の方には59で届いているみたいですけど、残念ながら、こちらの受信状況はR2くらいでした。 

ここで、送信と受信のアンバランスが問題として浮上してきました。 今後の課題です。

dsPICでSSBトランシーバー(SSBジェネレーター)へ続く。

 

実際に運用を開始すると、バイアス回路やファンモーター駆動用の12V電源のトランジスタがあっちっちになります。 この対策の為、電源回路に14VのDC出力を追加し、12V電源は電源から直接供給を受ける様に変更を行いました。 ところが、リップルが多くて、12V電圧では、ハム音が変調されますので、9Vの3端子レギュレーターをダイオードで0.6Vほどかさ上げし、9.6Vの安定化電源を作り、これでモーターとバイアス回路をまかなう事にしました。

最終状態の配線図 PWR-AMP100W_8.pdfをダウンロード

 

200Wリニアアンプの検討はこちら

 

INDEXに戻る

2020年2月27日 (木)

HDSDR用ダイレクトコンバージョントランシーバー改訂版

カテゴリ<SDR>

LOのキャリア漏れが経時変化で3日も持たないという問題に遭遇し、一時、諦めていたダイレクトコンバージョントランシーバーでしたが、既存のICミキサーを使い構成したIQミキサーの予備検討で、うまくいきそうな感触をつかみましたので、今までのSoftrockコピー品とは異なる、HDSDR用の直交復調器、および直交変調器を作成し、実用可能なSDR SSBトランシーバーの制作に再トライです。

まず、LOの漏れで失敗したQSE回路は止め、ギルバートセル回路をIC化したダブルバランスモジュレーターNJM2594を2個用意し、これでIQミキサーを構成する事にします。 このミキサーは無調整でキャリア漏れを-40dBくらいに抑える事ができ、マニュアルのバランス調整回路を追加する事により-60dB程度まで実現出来る可能性を秘めています。 問題は、2個のICで構成したIQミキサーが、直交変調器として動作するかどうかですが、これは、回路実装が終わってから、確かめる事にします。

また、チューナーの検討の途中で、90度位相の異なるキャリアの高調波成分を抑えると、受信時のノイズが10dBほど少なくなるという現象がありましたので、SoftrockのQSD回路ではなく、高速アナログSWとフィルタリングしたLOを加える事により、受信S/Nの改善を期待する回路に変更する事にします。

Sdr2_rx

 上の回路図は、S/Nを改善する為に、IQ復調回路を2G66に戻し、キャリアの高調波を少なくする為にシリーズ抵抗によるLPFを追加した回路です。 2G66の入力端子には、数PFの容量がありますので、このCとシリーズのRによりRC LPF が出来ています。

Sdr2_rx_2

Sdr2_demod

左上は、途中までマウント完了した90度位相の異なるIQキャリア発生部分と受信回路です。 このIQ復調回路に加えるキャリア(LO)の波形が右上でかなり高域をカットしました。 そして、この状態で7MHzを受信したのが、下のスペクトルです。

Sdr2_wh

 

Sdr2_rxiqbalance

ノイズレベルが-120dB付近にあります。 この日あまりコンディションが良くなく、TS930のSメーターでも一番強い局がS9くらいでしたので、従来よりかなりS/Nが良くなったのではないかとと期待しています。 このIQ復調回路に、2G66という高速アナログSWを使いましたが、74HC4066でも問題なく動作するはずです。

左のスナップは、これらの回路条件で、HDSDRの受信IQバランスの設定状態です。 Right Delayのレベルが赤色に変わるほど、バランスレベルが狂っていました。 この原因は、ノイズを削減する為に、LO供給回路にLPFを入れ、高調波を小さくしたことにより、I及びQのキャリアのレベルや位相がかなりずれてしまい、それをHDSDRの調整機能でカバーした事によります。 USB信号のリジェクションレベルは-50dBくらいです。 アナログ回路にかなりの誤差が有っても、それをカバー出来るだけの広範囲のバランス調整機能が実装されているのは有難い事です。  このRight Delayのレベルは、その後の再調整にて、赤色が消える状態で、調整可能になっています。

以下、その後の感想です。

100Wのリニアアンプが完成し、総通の許可も降り、いざQSO出来る体制ができると、受信機の性能の悪さが大変気になります。 バンドスコープでS/Nが10dBくらいのLSBを聞いても、R3です。 同じ信号をTS-930で聞くとR5です。 ダイレクトコンバーションのRXは聴感上の了解度ははなはだ悪いというのが実感できます。これを少しでも改善する為には、HDSDRをインストールしたPCにつながったサウンドカードを最低のサンプリングレートに設定する事のようです。  

一方、送信用のIQ変調回路は、NJM2594によるかなりシンプルな回路とします。 その回路図を下に示します。

Sdr2_tx_iqmod_2 ギルバートセルで構成されたNJM2594は、SoftrockのQSE回路程ではないにしろ、通常のAMPより低インピーダンスで動作し、IQ信号の入力インピーダンスは600オームくらいしかなく、その前にあるバッファーのOPアンプは低出力インピーダンスが要求されますので、秋月で手配したAD8532ARをそのまま使います。ただし、SoftlockではIC2個使っていましたが、この回路では1個でOKです。 その代わり、変調回路のICが2個使いになります。

この変調用ICの応用例では、キャリアも信号も1MHz以上のRFとして説明していますので、今回のように、信号が低周波の場合、周辺のコンデンサの容量を低周波用に修正しておく必要があります。 また、Softrockで有った、キャリアの位相を調整する為のトリーマーは付けておりません。 それぞれのICでキャリア漏れを無視できるまで、減衰できたら、位相を合わせてキャンセルさせる必要はないというのが理由です。

このようにして組んだ回路の全体が下の写真になります。

Sdr2_trxcomp_2

Sdr2_trxcompback

この基板を組むのは2回目となりますので、先に部品配置を検討することができ、かなりすっきりした配置となり、かつ、念のため、各ブロックをシールド板で囲みました。さらに、変調回路へのキャリア注入は、LO回路から同軸で結すんでおります。

Sdr2_txiq

Sdr2_lo_leak

左上が変調ICのキャリア入力波形で300mVppくらいあります。 高調波が多いですが、変調後段にはいくつもの7MHz共振回路がありますので、問題になりません。 右上は、この回路の最終段におけるDSB信号のスペクトルです。 信号周波数は8KHzですが、まだ、IQ信号を加えていませんので、USB、LSB両方の信号が出ております。大きな信号のセンターに少し出ている信号がLO漏れです。LO漏れキャンセル回路は無調整ですが、すでに-40dBくらいのキャリア漏れに抑えられていますので、完成状態で調整することにより-50dBくらいは確保できるのではないかと期待が持てます。

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

受信のRFアンプにデュアルゲートのFET BF1211WRを使っていますが、この便利なFETは廃番となり、入手が難しいので、東芝の3SK293による回路例も示しておきます。 また、変調回路の+Bラインに6.3V2200uFのデカップリングコンデンサが付いていますが、これはたまたま手持ちが無かったので使っているもので、100uFもあれば十分です。

Sdr2_mount1_2

Sdr2_lo_usb

左上は、IQ変調回路基板を入れ替え完了した状態です。 右上は、NJM2594のキャリア漏れキャンセル回路を調整し、かつ、HDSDR内のIQバランスを調整した状態です。 キャリア漏れは-45dBくらい、USB漏れは-52dBくらいになっています。 この状態で、電源を切り、1日放置した後、再測定してみる事にします。

Sdr2_2w

Sdr2_2sig

左上が15時間くらい経過した、朝のテスト結果です。右上は、同じ出力条件での2信号特性です。 とりあえず、半日くらいは問題ないようです。 この後、ドライヤーで温めてみましたが、大きな変化はありませんでした。

Sdr2_after5days

Sdr2_readjjpg

左上は、5日後のキャリア漏れとUSB漏れです。前回とほとんど変化はなく、期待した通りの状態を維持しております。 右上は、LO漏れを最小にすべくNJM2594に設けた半固定抵抗を微調整したもので、キャリア漏れは-51dBくらいになりました。 このキャリア漏れを再調整した事によりUSBイメージが若干悪くなりましたが、HDSDR側のキャンセル機能でノイズ以下にする事ができます。 また、出力アップ時のスプリアスは、LOとTUNEのOFF SETをゼロにしますので、許容範囲に収まります。

今後さらに確認を継続しますが、何とか使える見込みができましたので、一旦中止した100Wリニアアンプの製作を再開することにします。

Txtrable_r22

この基板のチップコンデンサの電極断線が3か所も発生し、まともに動作させるまで半日かかってしまいました。 また、トランジスタのコレクタの半田不良により、送信ができなくなるトラブルも発生しました。 左の画像で赤丸の部分ですが、写真で見る限り、半田付けされていません。 しかし、機械的には接触しているようで、動作上は、異常はありませんでした。100Wリニアアンプ検討中に、出力が出なくなるという問題に遭遇し、困っていましたが、その原因がこれでした。 回路が熱を帯びると、膨張の為、接触しなくなり、ベースバイアス電流が狂うという症状で問題が現れました。

チップ部品の半田付けは見た目以上に難しいですね。

リニアアンプにつなぐ為、出力のリニアリティをチェックしました。

Sdrout1p5w

Sdrout2w

Sdrout2p5w

Sdrout3w

左から、出力 3Wpep  4Wpep  5Wpep  6Wpepです。4Wpepまでは、リニアリティの悪化は少ないようですが、5Wpepあたりから、見える形で飽和がが始まっており、6Wpepでは、はっきりと飽和が認められます。 100Wのリニアアンプを最適に使うためには、5Wの出力のとき、70Wくらい出るのが理想かも知れません。

100Wリニアアンプと結合したとき、送信状態から受信に切り替わる場合、リニアアンプが受信になるまで、1秒以上の遅れが有りました。 その対策として、フォトカプラーのLED側に抵抗を追加しました。

LED消灯対策済み 7MHz_SDR2.pdfをダウンロード

 

100Wリニアアンプの制作に続く。

INDEXに戻る

2019年12月14日 (土)

ダイレクトコンバージョン式SDR完成(送信部)

カテゴリ<SDR>

前回までに、各基板を組み立て、動作確認と、ソフトのデバッグも一通り完了しましたので、次はリニアアンプを含めた送信ユニットの動作確認と調整です。

送信用のDC/DCにリニアアンプをつないで、いざ送信状態にすると、電源電圧が1Vくらいまで落ちてしまいます。 無負荷の場合、13Vくらいをキープしていますが、負荷がかかったとたん、電圧が落ちます。 配線ミスかと、電源基板をひっくり返して調べてみましたが、異常は有りません。 困り果て、このDC/DCの仕様書を読み直すと、DC/DCの入力部には390uF以上、出力部には、780uF以上の電解コンデンサを付けろとあります。 今までは0.1uFしか入っていませんでしたので、まず出力端に1800uFを追加しました。 この追加で正常に動きだしましたが、まだ入力部には0.1uFしか入っていません。 手持ちの電解コンデンサでサイズの小さなコンデンサは50V47uFしかなく、やむなくこれのみを追加して様子を見る事にしました。 とりあえずは5W15分間くらいの連続送信でもOKのようです。

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

Sdr700hzmod

電源が正常になって、最初に見たのは、キャリア漏れとUSBイメージの漏れです。

LOとTUNEのOffsetを8KHzとしてトライします。

左のスペクトルは700Hzの信号で変調した時のスプリアスです。 キャリア漏れ調整用のVRを多回転タイプに変更したのが効いて、-47dBくらいに苦労せずに落とす事ができました。 VRの調整が楽になったので、逆に60Pのトリーマーの調整がクリチカルに感じられます。

USBのイメージ信号も、-53dBくらいまで落とせました。   ここは、もう少し根気を入れて調整すると-60dBも可能かも知れません。

この状態でOffset周波数をゼロとして、音声をTS930でモニターして見ました。 音質的には、かなり低音が伸びた音ですが、歪感はほとんど有りません。 歪感が無い為、かなり柔らかい音質になっており、逆に了解度を落としているような気がします。 ここは実際にON AIRしたとき、意見を聞き、MICの周波数特性を調整する事にします。

そのoffset 0 のスプリアスデータが以下の4枚です。 測定に際し、ATTが入っていますので、絶対レベルは無視して下さい。

Sdr_200kspan

Sdr_1mspan 

Sdr_10mspan

Sdr_50mspan

左上が、スパン200KHz、右上がスパン1MHz、左下がスパン10MHz、右下がスパン50MHzです。余計なスプリアスは皆無で、第2高調波の14MHzも-58dB以下、3次以降はノイズレベルに収まっています。

電源トランスと整流回路は、2A負荷時のDC電圧が、24Vくらいありますので、ファイナルとそのドライバーの電源のみを、レギュレーションを確保できる18Vまで上げました。 さらに、ファイナルのトランスの2次側ワイヤーをAWG24からAWG18に変更しました。 その状態でも出力は7Wくらいしかでませんが、アイドル電流を1.7Aまで増やすと12Wの出力がでます。 しかし、アイドル電流1.7Aは多すぎます。 ここまでアイドル電流を上げる必要があるのは、プッシュプル用のIRFI510のゲート電圧がバラツキ、両方同じバイアス電圧では、どちらかのFETにまともにアイドル電流が流れていないことになります。

この対策の為、ゲートバイアス調整回路を独立させ、FETのバラツキに合わせて、個別に調整出来るように回路変更しました。

Sdr_pamp2

上が、その変更後のパワーアンプです。バイアス調整用半固定を2個にし、1石当たり400mA、2石で800mA流れる様にしたとき、出力10Wとなりました。

TSSへ申請し、途中、IRFI510の仕様書を送れというコメントが付きましたが、1週間で認定を受ける事が出来ました。 そして、さらに1週間後に総通での審査が終了し、この増設は承認されました。

これで、電波として発射できる様になりましたので、ON AIRにトライする事にします。 

12月の午後7時ごろ、珍しく6エリアの局が1局だけ聞こえますので、試しにコールしてみました。 1回のコールで捕っていただき、以外と簡単に1st QSOが成功しました。 ただし、問題も発覚。 7200KHz以上の放送電波が混信します。 どういう理屈で混信するのか判りませんが、LOの周波数付近だけで混信し、offsetを設けた場合、混信しません。 どういうメカニズムで混信が起こるのか今後の課題となりました。

また、チューニングの為、周波数を変更する度にミューティングがかかる問題ですが、周波数可変のステップを1KHzにして、我慢する事にしました。 最近のリグの周波数がDDS制御となり、7MHzの場合、ほとんどの局がキャリア周波数をKHz単位で設定し、交信していますので、1KHzスパンの可変でも問題ないようです。 もちろんスパンを100Hzに切り替える事ができますので、SSBの場合、ほぼ全ての周波数で運用は可能です。

ただ、ワッチだけしている時の選局操作性は良く有りませんので、この場合は、LOとTUNEのシンクロを解除して、PC側のバンドスコープを見ながら、マウスで選局する事にしています。

10Wリニアアンプ 最新配線図 SDR-TRX_RF_POWER2.pdfをダウンロード

電源供給回路に有った、FETによるスイッチング回路は廃止しました。送信ON時の電源はDC/DCを直接スタンバイ信号で制御する事にしましたので、不要になった為です。

ファイナルのFETのゲートバイアス用に追加したR1,R2の抵抗は、手持ちの関係で2.4KΩにしたもので、ここは、1kΩから10KΩくらいの適当な抵抗でもOKと思います。

ドライバー段の直流動作ポイントが最適になるように、ベース抵抗を半固定抵抗に変えてあります。

Sdr_trx_comp

TSSの認定時に提出したブロックダイアグラムを添付します。

5_sdr_trx_block.pdfをダウンロード

このブロック図の中で、サウンドカードとして囲まれたブロックは、実際にHDSDRが、このようになっているのかは確かめていません。 サウンドカードにアナログのマイク入力を加えると、サウンドカードの出力から約0.3秒遅れて、ベースバンドのI信号とQ信号が出てくる事実を元に、原理的に実現できるブロックを示したもので、ここは、入力と出力の関係が合っておれば、どんなブロック図でもOKと考え提出したものです。 TSSも総通もこれで承認していただきました。

LOとTUNEのOff set周波数がゼロになった場合の2信号特性を比較しました。

Os825

Os025

上はUSB漏れが-25dBのバランス調整不完全状態での出力波形ですが、左がOffset 8KHz、右が0KHzです。 Offset ゼロの場合、かなり歪んでいます。

Os850

Os050

上は、USB漏れが-50dB以上になるようにIQバランスを調整した状態で、左が、Offset 8KHz、右がOffset 0KHzです。 右の波形は左より歪んでいますが、USB漏れ-25dBより、かなりマシな波形をしております。

Iqreadj

Iqreadj_os0

上のスペクトルは、左が、Offset 8KHzでUSB漏れを-50dB以上に調整した場合、右は同じUSB漏れで、Offsetを0KHzとした場合です。 左側に有った-43dBくらいのスプリアスは右側では、完全に消えています。 これらの結果から、SSBの変調音に歪が生じますが、ゼロオフセットで運用した方が良いという結論です。

この様な結論になる条件として、IQバランスやキャリア漏れが重要になりますが、アナログ回路の宿命として、バンドを変えると、いずれも、調整をやり直さなければなりません。 アナログ式のダイレクトコンバージョントランシーバーに、マルチバンド対応を要求するのは、無理がありそうです。 

3rd QSOも成功しましたが、出力10Wで、昨今のコンディションでは、安定したQSOは望めませんので、このトランシーバーの後に追加するリニアアンプを作る事にします。 

リニアアンプを作り始め、1月下旬には、このSDRトランシーバーを接続して、動作テストするところまで来ました。 ところが、前回の調整から、約3週間過ぎてみると、キャリア漏れが-20dBくらいまで悪化していました。 経時変化がかなり大きく、ここで、再度、キャリア漏れを最小に調整すると、IQバランスがくずれますので、IQバランスも再調整が必要となります。 最大のドリフト要因は、DCバイアスのずれで、半固定抵抗を再調整しなければなりません。 また、トリーマーも半固定VRほどでは無いにしろ、再調整が必要です。 結局、このトランシーバーは、使う前に必ず、LO漏れとIQバランスを再調整しても、3日も経つとLO漏れが-25dB程度までドリフトしてしまい、安心しては使えないものであることがわかりました。 リニアアンプも半分はできましたが、100Wで送り出すほどのSSB信号の完成度はなく、リニアの制作は中止しました。 その代わり、継時変化の少ない直交変調器に関する情報を探す事にします。

1か月近く調査、検討した結果、LO漏れを抑えられる回路の可能性がみつかりました。 

HDSDR用ダイレクトコンバージョントランシーバー改訂版 へ続く。

 

INDEXに戻る

2019年11月17日 (日)

ダイレクトコンバージョンSDR(組み立て)

カテゴリ<SDR>

DDS VFOを含め、主要な各ブロックができましたので、これを、使用可能なトランシーバーにまとめる作業です。 ケースは、ヤフオクで落札したパナソニックの周波数カウンターで、その中身を取り去り、新にSDRのトランシーバーを組み込みます。 

まずは、ケースを採寸し、JWCADで図面化し、改造内容や、新に作る部材を検討します。

Sdrtrx_frontjw 元が周波数カウンターでしたので、周波数を表示するLEDが8個並んだ表示部がありました。 ここにLCDの窓が収まるようにデザインを決め、右端の入力端子エリアはスピーカーを取り付ける為、穴をいっぱい開け、付属していたレベルメーターは、目盛板を書き換えて、電源の電流計に変更します。

今回は電源を内臓させます。 受信用は3端子レギュレーターによる12V、送信側はDC/DCコンバーターによる14Vとして、新規に作りました。 基板はエッチングではなく、アクリルカッターで銅箔を切り出した手作りです。

Sdrtrx_power_pcb_back

Sdrtrx_power_pcb_top

結構高密度ですが、50mm x 144mmの基板に収まりました。

パワーアンプ部は、ちょうど、アルミの仕切り板がありましたので、その板をシールド板として、LPFやアンテナリレーを組み込みました。 アンプはオープン状態ですが、回り込み等が発生するようなら、シールドを考える事にします。

Sdr_trx_poweramp

一応、全部のユニットをまとめたものが下のショットで、送信用のサウンドカードやUSBハブも内臓させます。

 

Sdrtrx_top0

Sdrtrx_front

Sdr_40m_trx2

パネルも、プリンターで印刷したクラフト紙を張り付けて、なんとかサマになりました。 

各ユニットの結線を行うに際し、一部コネクターの変更を実施し、以下の回路図のごとく修正しました。

直交変調回路 SDR-TRX5.pdfをダウンロード

DDS VFO SDR-TRX_VFO1.pdfをダウンロード

電源 & スピーカーアンプ SDR-TRX_POWER1.pdfをダウンロード

この電源は、送信用DC/DCが動作せず、次の記事で回路変更を実施しました。

リニアアンプ SDR-TRX_RF_POWER1.pdfをダウンロード

Usb_c_x

とりあえず、受信部の動作確認ができました。 DDS VFO側からHDSDR側のTUNEやLO周波数を可変できるのですが、周波数を可変すると、一瞬ミューティングがかかり、今どの周波数を可変しているのか判らなくなります。 通常のトランシーバーのように、SSBの音調が連続的に変化して、ゼロインできる感覚が有りません。 慣れたらOKなのか、しばらく様子を見る事にします。  配線が入り乱れていましたので、線処理をしていたところ、FT234XにマウントされているUSBソケットが銅箔ごとはぎ取られてしまいました。 SMT部品は、こういう機械的な強度を全く考慮していなく、気を付けないと、あっと言う間に壊れてしまいます。 やっとの事で、組み立てを完して、さあ、これから、送信機能を実用レベルになるように調整しようと、考えていましたが、ガックリです。 ソケットを元の状態に戻すのは不可能でしたので、USBコネクターの各端子にUSBケーブルを直付けする事にしました。 端子間ピッチが0.5mmですので、そこにケーブルをハンダ付するのは、大変で、10倍ルーぺで何度も確認しながら約2時間の作業で、なんとか動作するようになりました。 

Trx_vr1_2

LO漏れをキャンセルする半固定抵抗はクリチカル過ぎて、なかなか最適値に調整する事が出来ませんでしたので、同じ5KΩの多回転タイプに変更しました。 これで、キャリア漏れを最少にする為の調整が楽になる事を期待したいと思います。

トランシーバー化するに当たり、追加したRIT機能や、10MHzを送信モードにして10MHz標準電波でゼロビートを取り、DDSの発振周波数を校正する機能も追加しました。 もちろん、校正したデータはEEPROMに記憶されます。 バグがあるかも知れませんが、とりあえずはソフトも完成です。

7MHz_TRX_for_HDSDR-1.cをダウンロード

Offset周波数がゼロ以外のとき、送信から受信に切り替えると、HDSDRの周波数が変わってしまうというバグが見つかり、上のファイルは修正済みです。

使っているPCが8年前のモデルで、スイッチON後、なかなかアプリが動作する状態になりません。特に、OSの更新が行われる度に遅くなるような気がします。 電源ONしてからHDSDRが動作するようになるまで5分かかっていました。 そこで、年末ぎりぎりでしたが、PCをwindows  10に変更しましたので、快適に操作できるようになりました。 ロータリーエンコーダーのチャタリングにより、周波数可変が数ステップ飛ぶというバグがありましたので、対策を実施しました。 対策と言っても、エンコーダーからの割り込みが有り、処理を完了した後、2ミリ秒間次の割り込みを禁止したものですが、問題なく動作しています。 PCをWindows 10に変えたと同時にMPLABX IDEやXC8,XC16も最新バージョンをインストールしました。おかげで、トラブルは全くなしです。

Handasuitori_ng電源基板を組み立てる時、ハンダのタッチ部分を修復する為に、ハンダ吸い取り編線を部品箱から探しだし、いざ使おうとすると、フラックスが全くしみこんでいない、ただの編線でした。 2個買ったのに、2個とも同じです。 どこから買ったのか忘れましたが、多分、何に使うか判らない業者が、コピー品を作り、安く売り込んだのでしょうが、それを、売っている販売会社も使い方をしらないのでしょうね。 仕方がないので、フラックスのビンの中に編線を押し込み、フラックスをしみこませた後、半日、日光で乾燥させて自作しました。

 

さあ、次はいよいよ、送信部の調整です。 ダイレクトコンバージョン式SDR完成(送信部)へ続く。

INDEXに戻る

2019年10月 6日 (日)

SDR用LO(ローカルオシレーター) Si5351A

カテゴリ<SDR> [Si5351A VFO]

SDR用のリニアアンプも出来ましたので、次は、このSDR専用のDDS VFOの作成です。 DDSは、Si5351Aを使います。 これを制御するマイコンは、手持ちしていたPIC18F14K50という8bit品です。 

配線図 7MHzDDSi5351-0.pdfをダウンロード

HDSDRを制御する必要から、RS232Cのインターフェース付で、CATコントロールが出来るようにハードを構成しますが、まずは、DDSの部分だけの開発になります。

Si51351_pwb 左が、主要部品を実装した基板です。 使用したLCDが5V品でしたので、DDSやマイコンのVdd 3.3Vとマッチしません。 そこで、3.3V/5Vの変換ICを入れてあります。 その為、変換基板が大きく、かなりの面積をこれが占有してしまいました。

Si5351Aは、RSから5個ほど調達して有ったので、秋月からMSOP 10Pの変換基板と25MHzのクリスタルのみ購入し、マウントにトライしましたが、クリスタルがあまりにも小さくて、ハンダ付け作業が、まともにできません。 作業中にピンセットではさみそこない、どこかへ飛んで行ったりし、最初から秋月で販売している基板マウント済みのユニットを買うべきだったと反省しています。

しかし、バラで買ってしまったものを、そのまま廃棄する訳にもいかず、以下の対策でなんとかDDSが動作するようになりました。

Muntxtal

Si51351_xtal

厚みのある両面テープを小さく切ってクリスタルを基板に貼り付け動かないようにしておき、極細の銅線で、右の写真のように配線しました。 この状態にするまで2時間くらいかかっています。 動作確認は通電状態で、クリスタルが発振しているかをオシロで確かめました。

このDDS用のソースプログラムはこちらからいただきました。 PICマイコンの品種が違いますので、レジスターの設定は異なりますが、それ以外は、無修整で動いています。 (Very TKS)

使用しています、Si5351Aのクリスタル周波数が正確に25MHzでは有りませんので、そこは、実際に発振した周波数に補正します。 周波数設定を7100000Hzにして、Si5351Aから実際に出力された周波数は7099KHz台でしたので、この7099K台の数値を7100000で割り算した係数を25MHzの数値に掛け算して、プログラムの中で定義したDDS周波数は24999395Hzとなりました。 ここでもTCXOの周波数カウターは、大いに役立ちます。

周波数カウンターが無い時のDDSの校正方法はこちらで紹介していますので、参考にしてください。 この記事の中で④のLO2の項目は無視してください。

Si51351_7mhz 右がDDSの指定周波数、左が、SDRのLO用に4倍した周波数で、5Hzの誤差となっています。 見ての通り、周波数カウンターに、白い雲が表示されるようになり、その面積が次第に拡大しています。 同時にコントラストも薄くなってきましたので、この周波数カウンター用LCDは、またも交換する羽目になりました。 aitendoで買った安いLCDは、これで2個続けてNGとなりました。

久しぶりにXC8を使う為に、最新バージョン2.1をインストールしました。 ところが、割り込みの記述でエラーが出て、1時立ち往生しましたが、インターネットで情報を探し出し、なんとか切り抜ける事はできました。

PCにターミナルソフトをインストールして、このVFOとPC間をRS232CタイプのCOMポート経由で通信するPICのソフトを、XC8を使い開発始めましたが、PIC18用の専用ライブラリは、最近のXC8では機能しなくなり、USART機能を一から構築する事になりました。 受信が出来るようになったけど、送信ができないと、1週間以上悩んだあげく判った事は、ADM3202の送信入力ピンがGNDにショートしていた事によります。 使用したSUB9pin用変換基板の配線誤りでした。

VFOとPC間の通信が出来るようになりましたので、いよいよVFOとHDSDRとの通信です。

Cattohdsdr

上の説明はHDSDRの「CAT to HDSDR」のダイアログに表示されるCAT通信に関する説明です。 CATフル対応ではないですが、VFO側から周波数と送信受信の切り替え、それにモードの変更をKENWOODのCATプロトコルで制御できるという説明です。 KENWOODのCATコマンド体系は公開されていますので、そのプロトコルで通信が出来るようにPICのソフトを組みますと、VFO側から、周波数や送受信の切り替えが出来るようになりました。 ここまで実現するのに、2週間くらいかかっています。

 

VFO側から操作して、HDSDRを使った送信機能をいじりまわした結果、LO周波数とTUNE周波数に一定のオフセット周波数を持たせたまま周波数コントロールが出来ること。 オフセット周波数をマニュアルで設定できる事もわかりました。 以下HDSDR側の設定です。

Pttcatonly

まず、左の設定で、PTTの操作をCAT onlyに設定し、CTSやDCD端子を使ったPTT操作は中止しました。 この設定により、送受信の切り替えは、VFO側からと、HDSDR側からいずれも可能になります。

Selectlooffset

Setlooffset

Optionsの中の「Misc Options」の中に「Tune fixed to "LO<->Tune Offset"」にチェックマークをつけ、「set LO<->Turn Offset」を開くと、上のようなダイアログが現れますので、そこにオフセット周波数をHz単位で書き込みます。 この数値は+/-表記ができ、上の例ではLOに対してTUNE周波数が10KHz高くなる事を意味します。

今回はDDE to HDSDRの機能は使いませんが、間違ってこの機能の設定を行った場合、後で、設定を取り消しても、取り消しが出来ません。 送信と受信を切り替える都度、DDEが設定されていない、もしくはターゲットが接続されていないなどのコーションが出て、このコーションのダイアログを削除しないと、送受信が切り替わらなくなります。 この状態に陥った場合、工場出荷状態にもどすしか方法が有りません。

Dde2hdsdr_2

Reset_hdsdr_2

工場出荷状態に戻すには、Misc Optionsの中のreset to factory settingsをクリックします。

HDSDRの説明ではLOとTUNEの周波数は、10KHzのオフセット周波数でデフォルト設定されていますが、直交変調回路の検討のなかで問題にしたように、日本国内でのスプリアス規制に合致しなくなる可能性がありますので、8KHz以下のオフセット周波数に留めるべきでしょう。

今回のトランシーバーはAMもCWもモードとして設定しないので、オフセット周波数0でも問題は起こらないと考えています。 この条件は、トランシーバーとして完成した時点で再検討する事にします。

Si53531_vfo

上が、いままでの回路全体です。 トランシーバーを構成する上で、HDSDR側だけオフセット周波数を設定しても、実用にはなりません。 受信、送信周波数はHDSDRも、VFO側も、このTUNE周波数になりますが、ローカルオシレーターLOの周波数はVFOが表示する周波数よりOffset分だけ低い周波数でなければなりませんので、VFO側の表示周波数とSi53531Aの周波数の間にもOffset周波数を加味した周波数設定が必要です。 要するに、VFOの表示周波数と実際に発生するDDSの周波数は異なるという事です。

Dispoffset

これらを網羅したPICのソフトができました。   左は、そのオフセット周波数をKHz単位で表示し、かつ、ロータリーエンコーダーで +10KHzから -10KHzまで可変できます。 もちろん、この数値はHDSDRで設定した数値とは連動しませんので、かならず、手動でVFO側とHDSDR側のオフセット周波数は合わせて置く必要があります。 このような面倒さはありますが、一応単体では、理屈通り動作しております。 これから、今までに作成した各ユニットをケースの中に収めて、SSBトランシーバーにまとめる事にします。

ここまでのPICソフト Si5351A_VFO.cをダウンロード

以上で一通りの機能は出来ましたが、これをトランシーバーとしてまとめるには、機能や使い勝ってが十分ではありません。 周波数表示もHDSDRの画面ではなく、このVFO側がメインとなりますので、8文字しか表示できないLCDでは役不足です。 LCDを16文字2行のタイプに交換します。 今秋月で扱っているブルーバックのLCDの中で、8文字2行より16文字2行の方が安く売られていますので、このLCDと、USBシリアル変換ユニットを手配し、232Cの通信回路を含めてやり代える事にしました。

変更した配線図 SDR-7MHz-TRX_VFO-0.pdfをダウンロード

従来の回路からの変更は、232Cの変換アダプタをFT234Xに変更した事、RIT及びそのクリアーキーを追加した事です。 LCDは回路図上の変更はありません。 また、RIT機能などを追加する為に、Key入力が必要になりますが、すでにi/oは満杯ですので、offsetキーと合わせて、AD変換によるキーセレクトに変更しました。

そして、これに対応するソフトは、OFFset周波数とTUNE周波数をEEPROMにセーブする機能と、校正用に10MHzを発振できるようにしました。  ただし、校正機能はまだ実装していません。

7MHz_TRX_for_HDSDR-0.cをダウンロード

7mhxtrxvfo

Sdrtrxcase

これらのユニットを一つのトランシーバーとしてまとめる為に用意したケースが左の写真です。 もともとは、Panasonicの周波数カウンターのジャンク品です。 中身は、すでに燃えない粗大ゴミで廃棄してあります。 ちゃんとまとめるには、少し時間がかかりそうです。 紹介出来る時期になりましたら、ブログを更新する事にします。

ダイレクトコンバージョンSDR(組み立て) へ続く。

INDEXに戻る

2019年9月29日 (日)

SDR用 7MHz QRPリニアアンプの製作

カテゴリ<SDR>

SDR用の直交変調回路が動き始めましたので、次は、これを1W以上に増幅するリニアアンプの作成です。 3Wくらいは狙いたいところですね。

以前、7MHz AM送信機用、E級アンプを作っていますので、これをベースにAB級アンプを作る事にします。 使っている終段のコアはCMFという型番のパッチンコアです。 この1次側は銅板を丸めてパイプ状にしてありますので、巻き数は0.5Tが2組となります。 大きなパワーは狙いませんので、2次側は1ターンのAWG24 リード線です。

出力回路はLC直列共振とし、トリーマーで最大パワーに合わせます。

5wpa 2SC2712で軽く増幅した後、マッチング用トランスを経由して、終段のIRFI510プッシュプル回路をドライブします。 T2のトランスはTS-930のドライバー入力用の#43タイプのメガネコアを流用しています。 T1とT2の間にある0.84uHのコイルはインピーダンス整合用で次段の入力SWRを1.5以下に押さえます。 構造もAM用E級アンプと同等ですが、動作がAB級なので、アイドリング電流の温度補償の為、シリコンダイオードをFETと共締めし、安定を図っています。 ただし、少し効きすぎの傾向がありますが、30分くらいの動作で異常は有りませんでしたので、そのままです。

Sdrpafinal

Sdrpacomp

左上が、FET PPの終段部分です。 FETをビス止めする時、銅板に丸めこんだシリコンダイオードを一緒に止めてあります。もちろん、シリコンダイオードと銅板の間には、シリコングリスを詰めてあります。 右上が、Q3のドライバーや電源廻りの回路を実装した完成状態です。

Sdrpa5wout_2

このリニアアンプの入力レベルは約20mWです。 出力は目標を大きく上回り5.1Wくらい出ています。 完成したあかつきには、50Wくらいのリニアアンプをつなぎたいので、ちょうど良い出力となりました。

無信号時の終段アイドリング電流は2石合計で600mAに調整してあります。 左の5.1W出力時の全電流は1.2Aくらいです。

いくらAB級プッシュプル回路と言えども、高調波対策は必要です。 このアンプの出力に接続する7MHz LPFを作ります。 回路は以前7MHzのAM送信機用に作った回路図及び構造をコピーします。

Sdr_lpf_schema

710m_lpf_2

710m_lpf_swr

上の写真が今回作成した7MHz用LPFです。 今回はブリキと銅板で作成し、ガラスエポキシ両面基板を補強用に使っています。 

自作LCメーターで測定したコイルのインダクタンスは、1.07uH, 1.32uH, 1.14uHでしたが、実装した後、コイルのピッチを調整して、7.059MHzでのSWRが、最低の1.16になる状態で、コイルに瞬間接着剤を塗布して動かないようにしてあります。

11MHzまでのSWRを自作アンテナアナライザ-で測定したのが、左のグラフで、一応10MHzまでは使える状態に調整しております。

直交復調、変調回路と、リニアアンプが出来ましたので、次は、AD9833で作っているLO(ローカルオシレーター)を、Si5351のDDSに変更し、このVFOからHDSDRの周波数と送受信切り替えをコントロールできるようにします。

SDR用LO(ローカルオシレーター) Si5351A  へ続く。

このアンプは最終的に、出力10Wになるよう回路変更を行いました。

 

SSBジェネレーターを自作したトランシーバー用の10Wリニアアンプの記事はこちらに有ります。

INDEXに戻る

2019年8月31日 (土)

ダイレクトコンバージョン式SDR(直交変調回路)

カテゴリ<SDR>

HDSDRの送信機能が動作するようになりましたので、つぎは、直交変調回路の作成です。 HDSDRで処理したI,Q信号はサウンドカードのLINE OUT端子から出力されますので、この信号と、7MHzのキャリアをMIXして、いきなり7MHz帯のLSB信号を作り出します。

と、軽く考えていましたが、調べていくほど、直交変調回路というのは、以外と難しい技術のようで、全てデジタルで処理して、早々と中間周波数を得た方が完成度は高くなるとい言う事だけは判りました。 しかし、テーマがダイレクトコンバージョンですから、先人のノウハウを学習しながら製作を進めて行く事にします。

手本にしております、Softrockは、N7VEのTayloeサンプリングミキサーをベースとしたQSEという回路構成で、この直交変調を実現していますが、その回路に使用されている抵抗は全て1%誤差のものです。 私が現在ストックしているのは、全て5%誤差の抵抗であり、1%誤差品なら、必要品種を全て新たに手配する必要があります。しかし、そのMOQ(最少オーダー数量)の為に、かなりの出費(1万円くらい)が必要です。 やむなく、私の回路は全て手持ちの5%誤差で進める事にしました。

デジタルの計算と等価になるようにアナログ回路を組むのは、かなり困難な状況なので、せめて、回路構成や使用するICは可能な限りSoftrockに合わせるということで、2G66によるスイッチング回路はオリジナルと同じく、FST3253に変更し、74LS08によるおかしな7MHzの波形は74HC74の出力波形がそのままスイッチング回路に加わるように変更します。 これは、いままでの回路を全てやり代える事を意味し、受信回路からやり直しです。

 下の回路がアナログSW 2G66をFST3253に置き換えた、チューナーです。 

Sdr_trx1_tuner_2

 チューナー部分のみ配線完了したので、受信テストをしてみました。

Fst3253qed_2

この直交復調器は、単なるスイッチングではなく、QSDと言われる回路構成で実現出来ており、HDSDR内にあるレベルと位相の補正機能をRESETした状態でも、イメージ(ミラー信号)がほとんど見えない状態です。 HDSDR内蔵の受信用IQバランス調整を根気良く行うと、USBイメージを-50dB以下に抑え込むことができます。 ここまで調整すると、サイドバンドスプラッタをまき散らしている局は簡単に判ります。 自分が送信するときは気を付けないといけません。

Sdrtrx1top

Sdrtrx1bk

左上が直交変調回路まで実装した部品挿入面、右上は、そのチップ装着面です。 74HC74は赤色の変換基板に載せていますが、載せる前に2回もICを交換しました。原因は、ICの足を折り曲げて、2.54ピッチの基板に直付けしたのですが、折り曲げのストレスで、足が折れてしまい、やや大きすぎますが、これしか変換基板が無かったので、やむなくこの状態での実装となりました。 直交変調回路はSoftrockのQSE回路を実装しています。

とりあえず、受信は快適に動いていますので、いよいよ送信モードの検討に入ります。 いくつかの配線ミスや端子間ショートがあり、7MHzのキャリアがQSEに供給されない状態を解消し、動作確認するまで、数時間かかりましたが、なんとか、LSBの信号をTS-930にて聞く事ができるようになりました。 その状態のHDSDRのショットが下です。

Sdr_tx_lsb

MICボリュームは半分よりやや下、Outputは75%くらいですが、MICに向かってしゃべると、右側のオーディオスペクトルが現れ、TS930の周波数表示が7110付近で0.3秒くらい遅れたLSBによる音声を聞く事ができました。SメーターはS9です。  ただし、ダイヤルをぐるぐる回すと、関係ない周波数でも、S9の言葉にならない信号が聞こえます。 多分イメージです。 TS930のモードをUSBにすると、はっきりと聞き取れます。 PCのサウンドカードの出力はIQ両信号とも出ていますが、QSEのICの入力にはQ信号のみが加わっています。 原因は、コンデンサの両電極間及び、IC端子間のショートでした。 また、拡大鏡を駆使してこれらの異常個所を修理し、QSE ICへI,Q信号両方が加わる事を確かめた後、再度TS930で受信すると、LSBの音声はS9までSメーターが振れますが、イメージ周波数のUSBの信号はS1しか振れません。 ただし音声は聞こえます。 ここは、完成度が上がった時点で送信時のI-Qバランス調整を行う事にします。

スペアナを多用していますが、スペアナが無くても、問題となる周波数は簡単に推測できますので、LSBの本信号を受信機で受信したとき、S9+40dBとか、+60dBをSメーターが指すようにATTや受信機のアンテナ入力への結合を調整して置けば、受信機のS メーターのみで、おおまかなレベル差を知る事ができます。 S9 から +何十dBの目盛は結構正確ですが、S ひとメモリのレベル差は言われる6dBである事は少なく4dBくらいであると思っておれば、ほぼ間違いありません。 なお、HDSDRの説明では、もう一台SDR受信機を用意して、バンドスコープを見ながら調整せよと書かれています。

Sdr_tx_1khz_lsb1

左は、7110KHzのキャリアを1KHzの正弦波で変調し、RF outにスペアナをつないだ状態でのスペクトルです。 ピークは7109KHz(スペアナの表示周波数は校正なし)のLSBで、左脇にあるのはレベルの高い方がQSEのキャリアである7100KHzの漏れ、その隣がUSBの漏れです。さらに外側に何かありますが、今の所なにが原因なのかは判りませんが、最終的にはこれもスプリアス規制以下に抑え込まないと送信は出来ません。 現在、ラフなIQバランス調整のみを行った状態ですが、回路定数を変える都度、このバランスが崩れますので、調整は最後にやらねばなりません。 キャリア漏れは、HDSDRを受信状態にしても出ていますので、これはIQ信号のバランスではなく、基板内の浮遊容量や誘導を受けるレベル差により、T3のバイファイラートランスで、キャンセル出来ていないと思われます。 現在の基板内配列はIQ信号路がシンメトリィになっていませんので、これが誘導を受ける差になっているのかも知れません。  予想したような展開になってきました。

ここまでの回路図 SDR-TRX1.pdfをダウンロード

回路図の中に出てくるT1とT3のトランス緒元です。 手持ちのコアで適当に作りました。 特にT3は7MHzに共振するようなインダクタンスにしましたが、共振用のC28はゼロピコの時が最大のレベルとなっています。 

Transdata

キャリア(7100KHz)漏れの検討です。 T3の配置がIQシンメトリィに配置されていなかった事、バッファのRF outアンプのコレクタ負荷となるコイルはオープンタイプで、外部から誘導を受けやすい事、などから、T3以降の回路を大幅に変更しました。

Qseout1 まず、QSEの出力にシリーズに挿入された56Ωの抵抗は200Ωの半固定抵抗に変更しました。T3のバッファアンプは2石構成のアンプとし、出力はエミフォロで取り出します。 (後日、エミフォロは廃止しました)

Trxqsetop

Trxqseback

今まで、QSE ICの横に有ったT3はICと同一列のセンターに配置し、IC出力からT3の各巻線にシリーズに200Ωの半固定抵抗を追加しました。この半固定抵抗はチップタイプの極小品で、過去使い道が無かったのですが、やっと日の目を見ました。マイナスの時計ドライバーで回す事が出来ます。 バッファ回路の総面積も従来の1/3くらいに縮小し、他の回路から影響を受けにくくしました。

Sdr_tx_1khz_lsb2

この状態で、キャリアもれが最少になるように、半固定を調整した場合、LSBに対して-18dBくらいしか減衰していなかったものが-28dBくらいまで改善しました。 まだ不足です。 IQキャリアの位相をいじってみる為、IC9の14番ピンとGND間にバリコンを接続し、キャリア減衰が最大となるよう調整すると、44PFの時、最大となり-42dBを確保できました。 その時のスペクトルが左の状態です。 この時、USBイメージは-42dBくらいになっていますが、これはHDSDRのバランス調整でノイズレベルまで下げられる事は確認しています。 バリコンは臨時に追加したものなので、バリコンの代わりにトリーマーを追加する事にします。 

50W以下の送信機に課せられたスプリアス規制値は、LSBの3KHz帯域の中心を基準に、1.5KHzの信号で変調した、定格出力の80%の出力を基準として、±7.5KHzの範囲が、-40dB、+/-7.5KHz以上離れた領域は-50dBです。 HDSDRの解説ページでは10KHzのオフセットをデフォルトに設定しており、米国やEUの規格は全スプリアス領域で-40dBですから、このままでも使う事ができます。 日本では、HDSDRのFOとTUNEのオフセットを8KHz以下にすれば、キャリア周波数が、±7.5KHz以内に収まりますので、ここは-40dBが適用されますが、不明と書かれたスプリアスは ±7.5KHzを超えますので、-50dB以下にしないと送信できません。 詳細を調べたところ、一番左に現れるスプリアスは、変調のレベルが高すぎて、歪が生じたものである事がわかりました。 変調信号のレベルを適正値以内に押さえれば、出なくなるようです。 しかし、同時にLSBの本信号もさがりますので、今度はキャリア漏れとのレベル差を確保できなくなります。

ここまでの回路図 SDR-TRX2.pdfをダウンロード

キャリア漏れの再検討です。 Softrockのトランス情報によれば、T3の2次側は約2.4uHのインダクタに設定し、1次側は、2次の巻数の1/2のコイルをバイファイラー巻で直列に接続してあります。  その時の2次側の巻き数は30Tです。 私の手持ちのカーボニルコアの場合、9Tのとき、2.3uHのインダクタを得る事が出来ます。 巻き数比を同等にすると、1次は5Tのバイファイラ巻となりますので、このT3を下記の緒元で作り直す事にしました。

T3mdfi9t5tx2

 このトランスを実装してテストすると、キャリア漏れは若干改善しましたが、どうも不安定です。 不安定の原因はトランス入力にシリーズに入っている半固定みたいで、この超小型半固定抵抗が接触不良を起こしているみたいですので、これを廃止しました。

Sdrtrx2qesout

Ssb3sig

その状態が上の回路です。 この回路で、44PFのトリマーを回すと最大で-30dBくらいまでキャリアが減衰し、安定しています。 そして、今まで見る事が出来なかった2信号変調時の見慣れたSSB波形を、やっと見る事が出来ました。

ただし、この波形も良く見ると上下非対称です。DSPの処理の問題か? OPアンプを含めたハードの問題か? 

このレベルからアップすると、目に見えて上側の先頭値がつぶれます。  

インターネットで調べていくと、この歪は、OPアンプの出力ドライブ能力が原因で、決まって片方向の波形からつぶれていくものらしいという事が判りました。 要は負荷インピーダンスが小さすぎて、OPアンプの出力電流制限機能が働いて、歪んでしまうのだそうです。

よくよく考えると、T3の2次側のインダクタンス2.3uHの7MHzにおけるインピーダンスは、約100Ωで、1次側はこの半分の巻き数ですから、約25Ωくらいしかありません。 これをMCP6402という最少出力インピーダンスが200ΩくらいのICでドライブしている関係から歪んで当然でした。

じゃあ、なぜSoftrockはこんな低いインピーダンスのトランスを使ったのか、不思議でなりません。 QSE ICの前段に使われているOP AMPは、TLV2462CDという、聞きなれない品番です。 これを調べてみたら、ドライブ能力が非常に高い、高電流出力用のOP AMPでした。

その後、調べてみました。 直交ミキサーと言われるIC化されたIQ変調回路は、ギルバートセル・ミキサーと呼ばれる回路を基本として、ふたつの周波数成分を乗算するのだそうですが、この時の乗算は電圧ではなく電流で実現されているのだそうです。 今回のミキサーはICで構成されている訳ではありませんが、ミキサーとしての乗算は、低インピーダンスにしてやらないと、うまくいかないみたいです。 受信時のミキサーに於いて、OPアンプを反転入力にして、低インピーダンスで受けるのも、この理由によるもののようです。

Ssb4sig

私が、今製作中の、TRXは7MHzオンリーですので、広帯域性は要求されません。 キャリア漏れやIQバランスが理由なら、NGですが、単純に共振モードを使わないトランス(広帯域トランス)の場合、歪やキャリア漏れがどのようになるのか試してみる事にします。 これは、Softrockで使っているカーボニルコアやICが日本では簡単に手に入らない事も理由のひとつです。 左の波形は、T3を、この高インピーダンストランス(コア材はFT37-43)に変更した時のSSB2トーン変調波形で、上下ともほぼ対称で、振幅も2Vppあります。

これから、キャリア漏れやスプリアスの状況を確認しながら、見ていきます。 下は、その時のT3のトランス緒元です。

T3mdfi9t5tx3_2

このトランスの場合、2次側が135uHくらいのインダクタンスとなり、7MHzでのインピーダンスは5KΩを超えます。 この状態では、トランスの後のトランジスターアンプのベース抵抗430ΩがそのままT3の1次側へ影響しますので、1次側のI,Qそれぞれの負荷インピーダンスは約300Ωです。 まだ、過負荷に近いので、ベース抵抗を5KΩくらいまで上げたいところです。  これを確かめるため、R22を430Ωから5.6KΩに変更し、R21も68KΩに設定した上で、T3の2次側に51Ωの抵抗をGND間に追加し、実質の負荷抵抗を小さくしてみました。 その時のキャリア漏れが一番左のデータです。

51z

Highz2

Highzcore

負荷インピーダンスが下がって、キャリアのピーク値は-40dBくらいに」なりましたが、同時にLSBレベルも-14dBくらいとなり、その差は26dBです。 真ん中のデータは51Ωの負荷抵抗を無しにしたものです。当然キャリア漏れは-46dBくらいまで増えましたが、LSBの信号も-10dBまで上昇し、結果として、キャリア差は36dBまで改善しました。 さらに、真ん中の状態のままで、74HC74からFST3253までのキャリア接続ラインをねじりかつ長さ20mmのフェライトコアを入れたのが一番右側です。キャリア漏れは-46dBくらいですが、LSB信号が2dBくらいアップした為38dbまで改善しています。 しかし、一応Softrockが提示する低インピーダンストランスに比べて、あきらかにスプリアスは増加しています。(最初のスペアナデータ参照) 

直交変調回路が低インピーダンスで構成されるのは、このミキサーが電流で動作している事によるものだそうです。 ICデバイスメーカーがこの直交変調回路をIC化していますが、それらのICは決まって放熱設計を重要視しています。大きな電流を必要とするみたいで、ICの消費電力が数Wというものも存在します。 上のデータで2次側の負荷抵抗を51Ωにして比較したのは、間違いで、1次側の負荷コイルに沢山の電流が流れるようにしなければなりません。 その為には、ミキサーICの出力に直接コイルをつなげば良いのですが、そうすると、負荷が余りに小さすぎてOPアンプが歪ますので、ICとコイルの間に49.9Ωを入れてあるのが、Softrockの回路となります。  当初私もSoftrockにならって56Ωのシリーズ抵抗を入れたのですが、使用しているOPアンプのドライブ能力不足(出力インピーダンス200Ω)により、歪が発生し、余計なスプリアスやキャリア漏れを招いたようです。

そんな訳で、SoftRockの回路の設計方針に戻り改善策を検討する為、部材探しを行い、まずベースバンドのバッファーアンプとしているOP AMP MCP6402をドライブ電流250mAというAD8532ARに変更しました。 さらに、T3もトロイダルコア T50-6に変更し、以下の緒元としました。

T3_190919

このトランスの2次側インダクタンスは2.4uHです。

Loztrans

そして、送信状態でのスプリアスデータが左の画像です。

センターは1KHzのLSB信号でその左がLOのキャリア漏れです。-20dBくらいしか減衰していません。 しかし、今までその左にあったUSBのイメージや、不明としてきたスプリアスもかなり小さくなり、ノイズに埋もれるまで改善しました。

やはり、OP AMPの歪がかなり影響していた模様です。 キャリア漏れを対策して、±70KHz付近のノイズをベースバンドのフィルターで対策出来れば、後は、キャリア漏れのみとなります。 誤差5%の抵抗と、蛇の目基板に組んだ回路構成では、無理が有るのは承知していますが、なにか改善アイデアを考える事にします。

  

アナデバの技術解説のなかで「笑い飛ばせないゼロIFの課題」という記事を見つけました。 この主題はIQミキサに於いて、LO(ローカルオシレター)の漏れについて解説した記事です。 この記事は、ICの中で構成されるIQ変調回路のLOの漏れを、別に設けたIQミキサーによる復調回路を使って検出し、レベルと位相の差分に相当する直流信号を、IQ変調回路のDCバイアスとして加え、自動的にLO漏れを-81dBくらい確保できるようにする技術の説明です。 LOキャンセルを自動で行う回路を蛇の目基板上にディスクリートで作る事は、まず不可能ですので、半固定抵抗で、DCバイアスを可変し、最低-40dBくらいのキャリア抑制ができないか、実験してみる事にしました。

Iqmixer1_2

 DCバイアスを可変する為に、VR1,VR2 5K-Bの半固定抵抗を追加し、そのセンター端子から10KΩの抵抗を介して、IC5の出力に相当するラインの2か所に接続します。  ふたつのVRと、44Pのトリーマー(実際は60Pのトリーマー)を交互に調整し、キャリアリークが最少となるようにします。 

10khz_offset

0khz_offset_2

左上のスペクトルは、ラフ調整ですが、LSBに対して-47dBくらいまで、キャリアを減衰できました。USBのイメージもHDSDRのキャンセル機能で、-50dB以下に抑える事ができます。 それ以外にスプリアスが見えます。 このスプリアスはHDSDRのLOとTUNEの周波数を一致させると、右上のスペクトルのように、ぴたりとなくなります。 HDSDRの解説によれば、スプリアスが無くなるのでは無く、全てのスプリアスが狭い帯域に閉じ込められるとの事。 その為、変調音に歪や周波数特性の異常が生じる可能性があるけど、スプリアス対策としては有効みたいです。 ただし、AMではセロoffsetは使えないと記述されています。

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

RF outのQ6エミフォロは時々発振しますので、廃止しました。

Ilol4pwb

 

直交復調と変調回路が載った基板状態です。

現在のRF出力はスペアナの表示で-8dBmくらいですが、これを3Wくらいまで増幅するリニアアンプの製作にやっと進めるようになりました。

リニアアンプが完成し、いざ、実際の交信を開始すると、キャリア漏れをアナログのキャンセル技法で対応している、QSE回路の限界が見えてきました。

SDR用 7MHz QRPリニアアンプの製作 へ続く。

INDEXに戻る

2019年8月20日 (火)

ダイレクトコンバージョン式SDR(送信機能セットアップ)

カテゴリ<SDR>

ダイレクトコンバージョンSDRチューナーが曲りなりにも動作するようになりましたので、いよいよ送信機能の検討に着手する事にします。

まず、HDSDRのホームページの中から送信に関する情報を入手します。

ここに書かれた説明は、HDSDRを完全に知り尽くした人が書いたみたいで、肝心な基本設定が良く判りません。 結局、先輩方が苦労して得た情報を元にして、なんとか構築出来たものです。 そして判った事は、ダミーでExtIO_Si570.dllは必要でしたが、PE0FKOのCFGSR.exeも、仮想COMポートも必要有りませんでした。

Bwfilter

この「送信」の説明のなかで、COMポートを使う事、サウンドカードが2台必要と書かれていますので、まず、USB接続のCOMポートを用意しました。 CTESTWINとリグを連動させる為に用意していたもので、確か秋月で1000円くらいでした。 次にサウンドカードを新規に手配しました。 AmazonでサウンドブラスターSB Play3が税込1711円で出ていましたので、これを手配。 発注した翌日には届きました。 このカードはモノラルMIC入力で、録音時のサンプリング周波数は48KHzですが、送信用に設定すれば使えるような記述がどこかにありました。 (SBはWindows95をご存じの方なら判る有名ブランドです。 しかし、このホームページではかなり悪く書かれてますね)

HDSDRのOptionsの一番下にあるTXを選び、SDR TX Supportにチェックをいれて置きます。 ライセンスがどうのこうのと出てきますが、ハムなら問題なし。

Bandwithの中にあるOutputのサンプリングレートは、左上の黄色の円で囲んだ範囲で選択します。 他のエリアの数値を選択した場合、送信時にAudio部分が動作しない事がありました。

SB Play3を、PCに接続すると、勝手にドライバーがインストールされ、デバイスマネージャーを開いて、正常にインストールされている事を確認しました。 次にHDSDRの「Soundcard」をクリックすると、下のようなダイアログが現れ、それぞれ選択しました。 この設定は、受信モードの時のみ有効で、送信状態でもダイアログは表示されますが、設定は出来ません。

Sbsection

ただし、まだTXボタンをクリックしても送信モードにはなりません。

次にTXに関する設定をおこないました。HDSDRにダミーとして、ExtIO_Si570.dllを組み込んで立ち上げた後、追加の設定を行います。

Txsetup

Optionsのボタンをクリックして、TXを開き、SDR TX SupportとEnable TX Button for CAT to HDSDR及び

mute RX audio on TXにチェックマークがつくように処理しました。

チェックがちゃんとついたかどうかは、一度ダイアログをクローズし、再度開くと判ります。

Ctssetup

CAT to HDSDRからPTT activation pinを選びCTSかDCDをチェックしておきます。

PortとBaurdrateはデバイスマネージャーでポート情報(COM10とか、9600ボーとか)を調べておき、合わせ込みます。

activatedにチェックマークを入れようとすると、最初にポートやボーレートを設定しろと怒られますので、Portを開き、COM10の先頭に黒丸があるか確認します。無い時はこのCOM10をクリックすると黒丸が現れます。 なお、COM10の10の数字はPCの状態で変わります。 USBハブを追加する前はCOM8でしたが、ハブを追加したらCOM10に変わっていました。

Hdsdr_input_set

OPTIONSの中のSelect Inputを開き、Softrock Si570に黒丸を付けておきます。

以上の設定で、PCの画面は、受信と送信モードを交互に切り替えられるようになりました。 USBサウンドカードのMIC端子にコンデンサマイクを接続し、しゃべると、右下のオーディオスペクトルのレベルが変化し、感度もMIC gainにより可変できます。

HDSDRの中には、送信時のTEST信号も内臓されています。 送信状態にして置き、CTRL+SHIFTをおしたままでGを押すと、700Hzの正弦波が送信用サウンドカードのヘッドフォーン端子から出力されます。 もう1回押すと、この700Hzの信号が約10dBアップして最大出力状態となります。 さらにもう1回押すと、700Hzと1700Hzのツートーン信号が出力されます。 この状態でさらにもう1回押すと、この2-TONE信号が最大レベルとなります。 この後、もう1回押すと3-TONEとなり同じように繰り返します。そして、最後に受信に切り替わります。

Testsig700hz

Testsig7001700hz

左上が700Hz最大出力時、右上が700+1700Hzの2-TONEでレベルの低い状態です。

送受信の切り替えは、外付けハード側から操作する必要がありますが、英文説明の通り、CTSピンをhigh(highの意味不明の為5Vを加えた)にしても送信にはなりません。 設定をDCDピンに変えて試しましたが、いずれもダメでした。 これを解決しないと、送受信の切り替え操作が、外部ハード部分とPCのマウス操作という2重操作になりますので、不便です。

Ptt_sw

3日くらい悩んでいたPTT SWが解決しました。

原因は、D-Sub9ピンを取り付ける試作用の両面基板の裏表を間違い、ピン番号のガイドが反対になっていました。 さらに、対象ピンに5Vを加えるのではなく、4番ピンと接続するかしないかでTX/RXが切り替わるのだそうです。 それが判って、最初、4番pinと8番pin(CTS)間にPTT SWを挿入したのですが、PTT ONにすると、1秒くらいの周期で送信と受信を繰り返します。 4番pinと1番pin(DCD)間にPTT SWを入れると、正常に動作するようになりました。  ただし、困った事が一つ、 HDSDRをクローズしてもwindowが閉じません。 何かを待っている感じ。 HDSDRに関連するUSBを全て引き抜くと閉じます。

何はともあれ、これでトランシーバーの検討を進める事が出来るようになりました。

先輩方のレポートの中に、HDSDRの送信信号のスプリアスはかなり厳しいような説明が有りましたので、気になります。

ダイレクトコンバージョン式SDR(直交変調回路) へ続く。

 

2020年5月追記

HDSDR V2.80がリリースされましたので、試しにインストールしてみました。送信時のIQバランス調整が機能しません。 また、このIQバランスのデフォルト状態でも、一方のサイドバンドの抑圧は10dBしかなく、完全なバグ状態です。 また、元のV2.76aに戻しました。

V2.76がリリースされ、一年後にV2.76aが出てバグフィックスされたように、しばらく待つ必要がありそうです。

INDEXに戻る

2019年8月 4日 (日)

ダイレクトコンバージョン式SDRチューナー

カテゴリ<SDR>

RTL-SDRチューナーを改造して、フリーSDRソフトであるHDSDRを使用したVHF帯の受信機は実現しました。 このチューナーでHFを聞くにはアップコンバーターを追加したり、RTL-SDRチューナーをダイレクトコンバージョンチューナーに改造する必要があります。 ただし、コンバーターの追加や改造をやっても、このチューナーは受信オンリーで送信する事が出来ません。 そこで、RTL-SDRは卒業して、送信可能なトランシーバーのベースを一から作る事にしました。

直交復調を行う上で、位相が90度ずれたIキャリアとQキャリアを作るところから始めます。

7100khziqosc

左の波形は、7100KHzのIキャリア(上)とQキャリア(下)をデジタルオシロで見た状態です。 (後日、これは逆である事がわかりました。 上がQで、下がIでした。) 

これを作り出す為には14.2MHzの方形波を用意し、この方形波をフリップフロップで1/2分周する訳ですが、14MHzの方形波の立ち上がりで、次のフリップフロップをドライブしたのが上の波形で、方形波の立下りでフリップフロップをドライブしたのが下の波形になります。 ただし、一般に使用されるFF(フリッププロップ)の74HC74は入力の立ち上がりでしか、1/2分周動作はしませんので、14MHzの位相が180度異なる信号を使い、いずれも方形波の立ち上がりでFFを動作させます。 このように考えると、7MHzで90度位相差を有する、二つのキャリアを作る為には14MHzのキャリアがあれば良い事になりますが、この場合、14MHzの方形波は完全な50%デューティである事が要求されます。波形整形で50%デューティの方形波を作るのは至難の業です。 そこで、28MHzのキャリアをFFで1/2分周した14MHzキャリアを作ってやります。 FFで1/2分周した方形波は確実に50%のデューティを確保する事ができます。 そして、FFの出力はQと/Q(Qの反転出力)が即得られます。 これが、90度位相差のI,Q信号を作る為には、欲しいキャリアの4倍の周波数が必要な理由です。

インターネットで紹介されているSDRチューナー用のキャリアはSi570などのDDSをUSBを介してPCからコントロールする例が多いのですが、今回は、以前作成したAD9833によるDDSと逓倍ICで作成した28MHzの信号を使います。

Sdr_dc_tunner_2

上のJPGの配線図がみにくい場合はSDR_DC01.pdfをダウンロード

IC11の3番ピンに28.4MHzを加えたDDSの周波数が左下。、12番ピンの出力を周波数カウンターで見たのが右下です。

Dds28400khz

7100khzcounter

このチューナーはノーマルスイッチング周波数、数MHzのMC14066BというONセミコンのアナログスイッチで直交復調を行っているだけで、入力側の高周波増幅やBPFはなく、また、復調で得られたI及びQ信号も簡単なLCによるLPFを通った後、増幅もフィルターもなしでPCのサウンドカードへ出力されます。 通常、このアナログスイッチは74HC4066など、もう少し高周波的に余裕のあるICを使いますが、ちゃんと復調しているかは不明です。

Directconvertionpcb

Directconvertionpcbback

左上がその基板のチップ装着面。右上がその裏側です。 アンテナ入力からマッチングトランスまでの間に今後BPFとRFアンプを追加するスペースを確保し、直交復調器からPCのMIC端子へ出力するコネクター間には、ポストアンプや送信モード時の直交変調回路を置くスペースを確保してあります。

マッチングトランスは手元に有った#43材のフェライトコアに0.26φのUEWを1次:3ターン、2次21ターン巻いた物です。

このチューナーから出力されたI,Q信号をデジタル処理してSSBやCWが聞けるようにするのはHDSDRのソフトを使います。 HDSDRのソフトをダイレクトコンバージョンに設定する為に、ExtIO_Si570.dllのファイルをダミーで読み込ませています。 受信周波数は0Hzにしたまま、ソフトの入力をサウンドカードのアナログ入力、すなわちMIC端子に設定する事もできます。 受信周波数は、AD9833のキャリアで、LOを決定し、TUNE周波数はHDSDRのカーソルを動かして操作ができます。  入力および出力の帯域幅を色々調整した結果、LSBの受信が出来るようになりました。下の画像が7MHzのSSB信号を受信している時のスナップです。

7mhzssb

TS930にてS9+40dBの信号ですが、HDSDRではS9+25dBくらいをSメーターは指しています。 この時のLOの周波数(AD9833の1/4の周波数)は7100KHzでした。 さすがに+40dBのLSBの復調音はちゃんと聞けるもので、当然了解度も5ですが、TS930にてS9+10dBくらいのLSBの了解度は4くらいです。 無信号時のSはTS930ではS7くらい。 このHDSDRではS9ですから、トランシーバーとして、実用するには7MHzのBPFや復調後に20-30dBくらいのポストアンプを入れる必要がありそうです。 

8月9日

そこで、復調後のI,Q信号をオシロで見てみたところ、これがホワイトノイズのみで、さっぱり信号としては認識できません。 レベルが小さすぎます。 ここは、ポストアンプが必要です。 現在のPCのサンプリング周波数は48KHz程度で、ポストアンプの帯域は20KHz程度でも良いのですが、 将来、192KHzのサウンドカードを使う事を考えるとフラットの範囲が100KHzくらいは必要です。

Mcp6402_freq_responce

Opa1678_freqresponce

ポストアンプは片電源5Vで動作するオペアンプが必要になります。 左上がft(利得帯域幅積(GB積))1MHzのMCP6402の負帰還なしゲイン周波数特性です。 100KHzまでフラットにするにはゲイン20dBが限界です。 一方右上のグラフはftが20MHzのOPA1678の特性で、同じく100KHzまでフラットに出来るゲインは42dBくらいを確保できます。 従い、ポストアンプは秋月で扱っているOPA1678にし、ゲインは40dBとする事にしました。 

また、しばらく受信を続けていると、その内、復調不能になります。 7MHzのキャリアが変動するのか?とオシロでチェックしました。 すると、DDSの周波数を変更した途端、周波数が大幅にずれます。ひどい時は50MHzくらいになる事があります。 どうもDDSが安定して信号を発生しないようです。 これはSDRとは関係ない問題ですので、DDSを再検討必要です。 

Dds_sdr

原因はDDSの後段に接続されたPLLのアンロックでした。 対策の詳細はこちらにあります。 DDSのソフト変更をしたついでにSDR用のモードを追加しました。 左が、追加したDDSのSDRモードで、実際の発振周波数は28.4MHzですが、表示はその1/4の7.1MHzを表示しています。 HDSDRのLOの周波数を7.1MHzにセットすると、受信周波数をカーソルで直接読み取る事ができます。

さらにチェックすると、アナログSWの入出力でDCレベルが違います。 5Vの1/2のDCバイアスがかかっており、これを7MHzでスイッチングしていますので、少しは電圧降下があると、思われますが、IとQでそのDC電圧が異なります。 これは、14066のアナログSWがまともにスイッチングしていないのではと、改めてデータシートを見ると、正確なスイッチング周波数の値は判りませんが、製品バラツキのセンター付近でも5MHzくらいがベストで、最悪2MHzくらいが限界ではないかと思われるようなスイッチング波形が表示されています。 海外のKITでこのICとして使われているのは高速マルチプレクサと言われるバススイッチが大半で、少なくとも4066レベルを使っている回路はありませんでした。  対策として、このアナログSWを高速タイプに変更します。 選んだ高速アナログSWはSN74LVC2G66というデータシート上でのスイッチング周波数が195MHzのTiのICですが、RSの海外在庫との事で、納期が1週間くらいかかりそうです。 MOQ=10で1個40円弱ですが、送料が450円ですから、1個85円くらいになりました。 

このICが手に入るまでの間に、ポストアンプとRFアンプを追加して様子を見る事にします。

Rf_amp_coil

Rf_amp_postamp

左上がアンテナ入力段に追加した7MHzの同調コイルです。最初、複同調回路にしたのですが、マッチングが悪く20dBも減衰しますので単同調にしてあります。右上は追加したデュアルゲートFETによるRFアンプと40dBゲインのポストアンプです。 

RFアンプとポストアンプを追加した配線図SDR_DC03.pdfをダウンロード

この配線図はアナログSWを高速タイプに変えてありますが、まだICを入手していないので、14066のままです。 また、ミラー信号が表示されます。

8月13日

HDSDRをインストールしたノートPCのサウンドカードの詳細を調べていましたら、現在の録音モードのサンプリング周波数は44.1KHzに設定されていました。 そして、96KHzに設定変更する事が出来る事が判りました。 再生時のサンプリング周波数は最大で192KHzまで設定できますが、録音と同じく96KHzに設定しました。 その結果、バンドスコープの幅が±48KHzのほぼ90KHzまで拡大したのが、下のウォーターフォールのショットです。

7mhz_mirrar

LOの周波数を7.13MHzとして、7086KHzから7174KHzくらいまで表示し、実際に受信出来ています。 しかし、この画面では7130KHzを中心としたミラー信号も同時に表示されており、ミラー信号に同調させると、LSBでは復調できませんが、USBモードなら復調できます。 直交復調がまともに働いておればミラー信号は出てこないはずですが、IとQの信号のバランスが崩れているようです。 

8月15日

高速アナログSWは到着しましたが、変換基板を間違って手配してしまい、今度は変換基板到着待ちになりました。

その間に、海外KITの回路例を調べていました。 Softrockの回路では、直交復調以降のOPアンプの回路構成が、私の回路と違う事が判りました。 私のOPアンプ動作は非反転増幅で、OPアンプは高インピーダンスで受けていますが、このKITは反転増幅回路で低インピーダンスで受けています。また、OPアンプの前にLCのフィルターも無く、OPアンプの負帰還抵抗にパラに入れたコンデンサ1個でLPFを構成しています。  何が違うのか、このKITの回路のように変更して見ました。 すると、ミラー信号がほぼ消えて7MHzの90KHzの帯域で表示されるウォーターフォールは全てUSBになりました。 クロックのIとQが逆になっているようです。 これを入れ替えたら、全てLSBになりました。

7mhz_notmirrar_2

なぜ、OPアンプが反転増幅でなければならないのかは判りませんが、ミラー表示の問題は解決してしまいました。 修正した回路図は以下です。 まだ、高速アナログSWは実装されていません。

SDR_DC04.pdfをダウンロード

8月20日

やっと、0.5mmピッチの変換基板が届きました。 さっそく、拡大鏡を駆使してICの半田付けです。

Iqmix2g66

Iqmixdemo

左上が、VSSOP(8)と言われるパッケージをDIPに変換した基板です。 右上は、その裏側です。  高速アナログSWに交換した結果は、あまり変わらなかったというのが、率直な感想ですが、SWの出力側に接続されたC4とC5がミラー信号に大きく関係している事が判りました。 14066の場合、0.01uFの容量でしたが、ICを2G66に変更した後は、そのままでは、ミラー信号が弱く出てくるので、このC4、C5いずれも廃止しています。 これから、TX回路を組み込んだりすると、ICの周囲の状況や線処理が変化しますので、回路が完成した時点で再度、最適容量を探る事にします。

 

送信モードをこのチューナーの配線図に追加しようとしたら、送信受信の切り替え回路が必要であり、その回路で、直交検波回路に供給する7MHzのクロックを送信時OFFする必要がある事に気付きました。 このクロックOFF機能は、受信時には直交変調回路のクロックもOFFする必要があります。 このON/OFF回路が必要な為、海外KITはFST3253のようなSWingが可能なバススィッチを採用しているという事を遅まきながら判った次第です。 しかし、私の回路は、すでに2G66というスイッチ無しのICで配線されていますので、74HC74と2G66の間に別のスイッチングICを挿入する必要があります。 そこで、手持ちの74LS08(ANDゲート)を追加する事にしました。

Sdr_trx0_rx

上の回路がクロックをON/OFFする為にANDゲートを追加した回路の受信部だけの抜粋です。

74ls08out

そして、ANDゲート通した後の2G66に加えられるクロックの波形が左の波形です。 74LS08の応答特性の関係で上下非対称、かつリンギングがかなり少なくなった、丸みを帯びた波形です。

この状態で7MHzを受信した場合、従来からノイズレベルが10dBくらい下がった以外、ミラー信号が強くなる訳でもなく、正常に受信出来ています。 ただし、送信時も同じ波形で変調をする事になりますので、要注意です。 受信時でも、強入力があると、ミラー信号が現れますが、 ANDゲートを追加する前も有りました。

以下は、このAND回路を追加した後の7MHzスペクトルです。

7mhz0824_2

次はいよいよ送信回路の検討です。 この送信回路の検討の過程で、アナログ回路の精度の問題(使用抵抗の誤差)に遭遇し、2G66による直交ミキサーで実用になるのか不安になり、回路構成をSoftrockに変更する事になりました。

ダイレクトコンバージョン式SDR(送信機能セットアップ) へ続く。

INDEXに戻る

2019年7月25日 (木)

SDR入門

カテゴリ<SDR>

かねてより興味が有りました、SDRについて遊び始めました。 aitendoで安いDABドングルが売られており、これを入手したのが、2週間前。 色々なホームページから、簡単に2mのワッチが出来ると思い込み手当り次第にソフトやドライバーをインストールしたのですが、うまく行きません。 悪戦苦闘の末、とりあえず、ローカルのFM放送が受信できるまでになりました。 最終目標はSDRのPCに依存するところは、フリーソフトにお任せして、直交検波と直交変調が出来る回路とそれにつながる送受信回路の自作ですが、生きている間に出来るかどうかは????です。

Fc0012dongle

左の写真はRTL-SDRチューナーと言われるaitendoから届いたドングルをさっそくオープンした状態です。 先輩方のホームページより、USBコネクタはUSBケーブルでPCに接続し、アンテナ端子はSMAやBNCに変更した方が良いというアドバイスの通り、シールドと放熱が期待できるアルミケースに改造する事にしました。 時期は梅雨の真っ最中、毎日雨で、外での工作が出来ない状態でしたが、雨が止む短い時間を狙って、工具を倉庫から出しては仕舞いを繰り返しながら作成したのが、下の写真です。 入力部分にBPFやRFアンプを追加するスペースを確保する為に少し大きめのシャーシとし、アンテナ端子も現用の2mトランシーバーに接続するMコネクターにし、まずは、2mのオールモード受信機作成がターゲットです。

Fc0012dongle1

Fc0012dongle2

左上が、配線前の部品配置検討段階、右上が、配線完了状態です。 ここまでは、問題なしですが基板は全て両面テープで張り付けた状態で、いつでもはぎ取る事が出来る状態です。

次はソフトのインストールです。 HD SDRというフリーソフトがある事をインターネットで聞きつけ、これの最新版をゲット。RUNさせると、ハムバンドと放送、業務無線とジャンル別に整理されており、多分aitendoのドングルは対応していないと思いますが、HFをフルカバーできるアプリになっています。 これによる受信をトライしたのですが、いくら頑張ってもUSBドライバーが色々なホームページが説明している名称になりません。 当然、HD SDRの起動の時点でドライバーが無いと蹴飛ばされます。

これは、簡単ではないとと悟るまで1週間。 初心に帰り、aitendoの商品説明にある通り、SDR#とそれに必要なドライバーのインストールにトライし、zadig.exeの部分で挫折しかかりましたが、zadig-2.4.exeに乗り換えて、めでたくドライバーがインストールされました。 

Sdrsharp

さっそく、3.5Km先の標高415mにある出力10WのローカルFM局にチューニングするとフルスケールで受信できるようになりました。

この延長線上で、周波数を145MHzにし、バンドスコープ幅を2MHzにすると、2mの全体のスペクトルを見る事ができます。 当地では、出ている局が少ない上、昼間である事から、実際に捉えられた局はSSBが1局、FMが1局でした。 スペクトルは期待したような結果を出してくれましたが、その復調音は、とても交信に使えるレベルでは有りません。 S/Nが非常に悪く、またAGCの効きもかなり不足で、FMでもノイズの変化があります。

原因はゲインの不足です。 ドングルの前に、BPFとRFアンプを追加してどれくらい改善するかを見る必要がありそうです。

下に2mのバンド幅2MHzと1MHzのスペクトルを示します。 1MHz幅のとき、FMが2局あります。

2mspectlebw2mhz

2mspectlebw1mhz

このSDRの操作性ですが、トランシーバーを操作するレベルには程遠く、特にチューニング操作は全く話にならないレベルです。 広帯域受信機として、特定の周波数をじっくり聞く場合に限るようです。 また、バンド内に59+60dBの局が現れると、バンド全体にスプリアスが発生し、S5くらいの信号は全く受信できなくなります。  今使っているドングルは送信機能は有りませんので、現状の組み合わせでトランシーバーは構成できません。 こんな事情から、SDRのフリーソフトを含めて再検討する事にします。 

このSDRを始めるに当たり、最初にインストールしたHD SDRは、どういう訳か周波数の設定がLoもTuneも0Hzのままで設定できませんでした。 原因が判らず、とりあえずSDR#で実験を開始したのですが、一度SDR#で動作確認した後、SDR#をクローズして、すぐにHD SDRを立ち上げると、正常に動作します。 HD SDRをクローズした後は、またNGとなります。 とりあえず原因は判りませんが、SDR#立ち上げ、クローズ、HD SDR立ち上げのシーケンスでなんとか使える事は判りました。 このHD SDRのソフトの操作方法が良く判らず、色々なパラメーターをいじっていましたら、SDR#よりS/Nの良い受信が出来るようになりました。 SDR#でどうにもならないと思っていた59+60dBの局がバンド内に現れた時でも、AGCで弱信号の抑圧は発生しますが、スプリアスの発生が少なく、入力のフィルターを調整すれば、なんとか使える受信機ができそうです。

下の写真はHD SDRで2mをワッチしている時のスナップです。周波数のキャリブレーションをまだしていませんので、周波数表示が微妙にずれていますが、145.080で59の信号を受信しているところです。

Hddsr2m

FM受信時のスケルチ動作も通常のトランシーバーと変わらない動作をします。 低周波の帯域幅も自由に設定できるという事から、今後このソフトをベースに検討していく事にします。

ダイレクトコンバーション式SDRチューナー へ続く。

INDEXに戻る