dsPICでSSBトランシーバー(ケースイン)
カテゴリ<SDR> [SSB 7MHz トランシーバー 自作]
各ブロックやリニアアンプが完成したので、これをケースに収納し、最終仕上げします。 受信時のシステムからのノイズや、リニアアンプ出力における不要輻射の確認など、ケースインしないと確認が出来ませんので、やっと、ここまでたどり着いたという状況です。
まずは、トランシーバーの外観と、中の構造のみ紹介です。 動作テストや確認結果は随時書き足していきます。
今回は、中古の測定器ではなく、アイデアルの汎用ケースを買い、これに詰め込みました。 このトランシーバーは電池で動作させ、屋外で使う事を前提に設計してきましたが、それにしては、少し大き過ぎました。 しかし、リュックに入らないサイズではないので、我慢する事にします。
パネルレイアウトで失敗があります。 TUNEダイアルの左側にSPAN切り替えのSWが有り、そのインジケーターとして、黄色のLEDを付けたのですが、斜め上から見えません。 正面からなら見えるのですが、使いにくい。 対策として、LED用の穴を良く見える位置に、もう1個明け、新たにLEDを追加する事にします。
全ての回路を収納し、天面にビス止めされたスピーカーで7MHzを聞いてみました。 すると、スピーカー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くらいの消費電流となりました。
次に、気にしていたスプリアスの確認です。
左のスペクトルは、CWを送信した時のリニアアンプ入力部分のスプリアスです。4MHz付近に-30dB、6MHz付近に-37dBくらいの大きなスプリアスがあります。 このスプリアスの原因は、DDS Si5351Aが出しているもので、完全に不適合です。
もっと早い時点で見ておけば良かったのですが、前回のダイレクトコンバーショントランシーバーでは全く問題が無かったので、安心していたのがいけなかったようです。
左上が、Si5351Aの24MHz出力、右上が17MHzの出力です。 本信号の近傍に、-46dBくらい、さらに広範囲に渡り、-50dBより大きなスプリアスが連立しています。このキャリアを使い、ミキサーを構成する為、最終的に取り出された7MHzの信号は、前述のごとく、全く許容できない状態になってしまいました。 DDSの出力端子として、CLK0とCLK1を使っていますので、CLK0とCLK2を使ったり、周波数割り当てを逆にしたりしてみましたが、結果は同じでした。
前回のダイレクトコンバーショントランシーバーと何が違うのか確認してみると、前回は28MHzのみを出力し、かつ1/4に分周して利用するものでしたが、今回は2つの周波数を同時に発生させます。 そこで、24MHzと17MHzを単独で発生させてみました。
上の画像は24MHzと17MHzを単独で発生させた時のスプリアスデータです。 スペクトルの数が極端に少なくなりました。 24MHzのスプリアスレベルは、2波同時発生時と同等です。 一方17MHzは、スプリアスを-60dB以下に抑えています。 ただし、インターネットで紹介されているスプリアスデータは30MHz付近では-70dBくらいのものが多く、今回の回路では、平均より10dB以上悪化しているのが現状です。 また、Si5351Aで送信機のLOを構成する場合は、マルチ出力(2波または3波の同時出力)は使用できないというレポートが多い事に気づきます。
左上はLSB無信号送信時のリニアアンプ出力でのスプリアス、右上は、同じくLSBフルパワー出力時のスプリアスです。無信号時に発生するスプリアスは、LO1とLO2のスプリアスがMIXしただけのスプリアスですが、フルパワー時は、このスプリアスにLO2とサブキャリアをMIXした時のLO2のスプリアスが加わります。 即ち、LO2のスプリアスは2重に効いてくる事になります。
CWとLSBそれぞれフルパワー時のスプリアスを比較してみました。レベルに若干の差はありますが、発生している周波数は、どちらも同じでした。 この比較は、LSBは、マイクアンプからDSPの入力までのアナログ回路が動作するのに対して、CWはDSPのADCの出力がカットされており、アナログ回路の信号は一切使っていない状態です。 すなわち、スプリアスの原因のほとんどがddsのスプリアスであり、送信出力が、アナログ前段に回り込んだものでは無いという事が言えます。
この問題の対策として、SDR-3は、Si5351Aのクリスタル周波数を27MHzにしたり、アンプ出力に通常置くLPFをBPFにしたりして、切り抜けているのではと推測します。 私の基板では、基本のスプリアスが多く、特に、周波数を可変すると、キャリア近傍の200KHz以内に、不適合のスプリアスが見え、BPFだけでは対策不可能です。 また、あいにく27MHzのクリスタルも持ち合わせていません。
そこで、24MHzのクリスタルを使い、コルピッツ発振回路を組んでみました。
左上がその回路図。右上のスペクトルが、24006348Hzを発振させた時のもので、さすがクリスタル。 高調波以外、余計なスプリアスは一切ありません。 発振周波数が、クリスタルフィルターの特性から決められた 24006766Hzに対して、418Hzほど足りませんが、クリスタルに直列に入るコンデンサをトリーマに変えて、ぴたりと合わせる事にします。 また、CW時に、LO2を950Hz低い方へシフトするのは止めて、CW受信時のみ、LO1の周波数を950Hzだけずらす事にします。 ただ、今回実験したのは、オープンの回路状態で、実際にアナログ基板に実装したわけではありません。 最終状態で、確認が必要です。 これで、LO2のスプリアスは目途が立ちました。
クリスタル発振回路の中で、最大面積を占有するのは、クリスタルそのものです。 基板上で、これを収納するスペースを確保するために、ミキサーに使っていた74LVC2G66とキャリアの反転に利用していた74LVC1G00を廃止し、手配したけど使い道が無かった、74LVC1G3157に変更し、スペースを確保する事にしました。
24MHzのLO2の周波数は20Pのトリマーを追加し、24006766Hzに調整しました。 上のコルピッツ回路で、2000くらいから8000くらいまで可変できます。 ここでも自作の周波数カウンターは大活躍です。 そして、左の画像のごとく、Si5351Aをずらして、クリスタル発振回路を収容できました。
多分、ミキサーの変換効率などが変わってしまいましたので、送信モードの各モードに於けるレベル設定はやり直しとなる事でしょうが、それらは、スプリアスの確認が終わった後にします。
左下のスペクトルがLO1(17MHz)を50MHzスパンで見たスペクトルです。右は同じ周波数を10MHzスパンでみたものです。 Si5351Aの出力を1波だけにし、かつ、ICの表面に銅箔を張り付け、バイパスコンデンサを最短で配線した結果、17MHzの両端に並んでいた沢山のスプリアスも数がかなり少なくなりました。残念ながら、最大レベルは-60dBくらいで変わらずです。
左上のスペクトルは、リニアアンプ入力部のスプリアス、右上がリニアアンプ出力のスプリアスです。 入力に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以下にできました。
上が、定数変更した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Ωに変更。
左は、リニアアンプ出力に於ける1KHz変調のLSBスペクトルです。 キャリア漏れや、USB漏れが出ていますが、いずれも新スプリアス規制をクリアしています。 もう少し、トライしたら、すべて-60dB以下にできそうですが、 実運用上では大差ありませんので、これで良しとします。
下に2信号特性を示します。一番左が、6.6Wpep、真ん中が8Wpep、右が10Wpepの出力の時です。 2信号特性を論議する定格出力の1/3の出力で、IMD-30dBくらいです。 良くはありませんが、悪くもないという状態ですので、これも良しとします。 この波形データはリニアアンプのTRがMRF477の時のデータで、2SK2796Lに交換した後は、この波形が10Wリニアアンプの記事のごとく、大幅に改善しております。
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のチャタリング ? データを取ってみました。
予想通り、ひどいチャタリングです。 マイクに付属したSW、本体のトグルSWいずれも、あきれるくらいチャタリングしていました。
以下、0.1uFのコンデンサをマイコンのi/o端子とGND間に接続したものです。
この対策で、しばらく運用してましたが、たまに送信から受信に切り替わったとき、無音になるとか、受信から送信に切り替えた時、送信音声が大きく歪んで、全く了解できなくなるなどの異常が起こっていました。 いずれの異常状態も、dsPICをresetすると、正常になります。 PTTswのチャタリング対策はマイコン入力端子にコンデンサを追加しただけでは不十分なのかも知れません。 そこで、PTTswのチャタリングを吸収できるソフト変更を実施しました。 また、この不安定なPTTswを割り込みルーチンの中で参照する記述も見つかりましたので、SENDflg参照に変更しました。
しばらく、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くらいに固定されてしまいます。
左は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Ωと言われるものです。
夜になると、7200KHz以上のAM放送局が混信する原因が判りました。クリスタルフィルターを通過した後、9.8KHz台の2nd IFに変換された信号は、dsPICのADコンバーターへ入力されますが、この入力成分の中には、クリスタルフィルターで十分に減衰量を確保出来なかった、AM放送局の信号も含まれており、これが、ナイキスト周波数以上の成分であることから、エイリアシングノイズを発生させ、放送内容は判らないものの、混変調のような音で、混入しているものでした。 そこで、左に示すようなLPFを2nd IFアンプの前に追加し、この妨害を軽減させる事にしました。エイリアシングが発生する周波数は19KHz以上の成分になりますが、13KHzまでは有効な成分ですので、10KHz±3KHzを出来るだけフラットで通過させた後、19KHz以上を急激に減衰させるため、かなり複雑なLCフィルターになりました。
左の写真がそのフィルターユニットですが、3.3mHのチップインダクタとCH特性のチップコンデンサで構成し、基板の空いているところに実装し、配線しました。 2nd IFアンプの位置とかなり離れましたが、周波数が100KHz以下の範疇ですので、弊害はないようです。
以下のファイルの最終更新日 2021年12月26日
配線図 SSB_generator10.pdfをダウンロード
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をダウンロード
これらのテキストファイルを編集する場合、MPLAB X上でデバッグする時は、MPLAB内蔵のエディタを使いますが、それ以外の通常編集では、サクラエディタを常用しております。 日本語仕様のこのエディタは直感的に分かり易く、もう10年近くも使っており、他のエディタへ変更できませんね。 IEをEdgeに変更したら、Edgeが勝手にテキストファイルとして開いてしまい、見にくいのなんの。 Edge側の言い訳は、セキュリティ対策で、外部アプリを起動してファイルを開く機能を制限した結果との事で、一度、PCのどこかに保存した後でなければ、サクラエディターでは開けないとの事。 不便になりました。
移動運用をする為に、リチウムイオン電池パックを作りました。
配線図や最新のソフトは以下のページからダウンロードできます。
200Wのリニアアンプが完成し、200Wの出力が得られる時の、このトランシーバーの出力は4Wとなりました。 そこで、QRPモードにおけるCWやSSBのピーク出力を5Wから4Wに修正しました。
リニアアンプを2band化したところ、7MHzのリニアの感度が下がり、最終的にはCWで7Wの出力に修正しました。
このトランシーバーの後に繋ぐ予定の200Wリニアアンプの記事はこちら。
同じような構成で160mバンド用SSB送信機を作成しています。(2021年12月スタート)