2016年7月23日土曜日

QRP(p)CWトランシーバ手直しと2バンド化への準備

当初受信部の局発周波数を3MHz台(7MHz-4MHz)としていましたが、アンテナをつながない状態で受信してみると受信スプリアスがところどころ聞こえていて、特に7.000MHz近辺ではSが振るほど強めだったのが気になっていました。アンテナをつなぐとこれらのスプリアス信号はほとんど目立たなくなりましたが、CWバンドで聞こえてくるのはあまりいただけません。おそらく局発の周波数が低いためその高調波が少なくとも影響しているのではないかと思われます。(JF1OZL 砂村OMの記事から・・・OMのサイトは本に載っていない自作の勘所など非常に有用な記事が詰まっています。多謝。)

そこで、Si5351Aの周波数設定を1~36MHzまで可能したプログラムを組み込んだファームウエアを使い局発周波数を11MHz台と高い周波数に変更し、それに伴い局発出力側のLPF定数を変更しました。

結果は上々で、CWバンド内の受信スプリアスは7.000MHz付近を含め聞こえなくなりました。(バンド外ではいくつか聞こえますが、ぐっと減りました)

そのほかAF出力とサイドトーン出力を直接ミックスせずPAM8012の差動入力に各々独立して接続することで、2つのAF出力の相互干渉(ボリウムを最大近くに上げるとサイドトーン出力のLPFがAF出力に影響する)をなくしました。これはLM386にも使えそうですね。

というわけで現在も色々と少しずつ手直しをしておりますが、なんとなくモノバンドのままではもったいないというかちょっと色気を出して10MHzバンドにも対応できないかと思い始めました。

ハードウエアの改造はちょっと大変なのでまずはファームウエア対応を考えてみました。

対応といってもプログラム内の目的周波数変数(TX_freq)に10MHz台を代入するだけなのですが(笑)、とりあえず表示関係を調整してこんな感じになりました。

10MHz台になると桁が溢れてしまうのでMHzのドットがなくなります
 10MHz台までのソフトウエア対応はとりあえずうまくいきましたが、そのままですと送信しても7次チェビシェフLPFの効果でほとんど出力が出ません(実測10mW程度)し受信も出来ません。ただしLPFにはいる前の1:4インピーダンス変換トランス直後の10MHz送信出力波形をオシロスコープで観察すると9V入力で3W以上出力されており、LPFの定数を調整するだけで3W程度出てきそうです。

また、もともとスペアナで観察した7MHzでの送信波2次高調波のレベルが幸いにもかなり抑えられており、LPFの遮断周波数を11MHzあたりに設定して再設計すればLPFは共通にしてもいけるかもしれません。

受信部も同調コイルを7~10MHzのやや広範囲なBPFに変更することにより切り替えなしで済むような構成を考えてみたいと思います。

運用目指して変更申請中ですが、JARDの保証認定が無事おりて現在電子申請Liteで申請しステータスが申請中になりました。週明けくらいには審査終了し、晴れて自作機QSOデビューしたいと思っています。

2016年7月18日月曜日

第21回関西アマチュア無線フェスティバルに行ってきました

今年も大阪は池田市で開催された関西ハムフェスティバルに行ってきました。

前日15日の夜出発して車で休憩を挟んで約7-8時間で現地に到着しました。

え~まだ6時前(笑)ですがもうすでに準備が始まっていました スタッフの皆様お疲れさまです
しばらくパーキングにとめた車の中で仮眠をとって8時半ごろ搬入、今回もリトルガンくらぶにお邪魔してキーヤーなど出品させていただきました。

入り口前で開会式 重鎮の皆様がテープカットなさっていました
 昨年のような台風こそ来ませんでしたが、曇ったり雨降ったりで不安定な天気でした。しかし、お客さんが多くて蒸し暑さに汗だくになりました。

店番の合間に各ブースを見て回りました。特に目新しいものはなく、メーカー展示では八重洲のFT891の実機が展示されておりました。大きさは857とほとんど同じでコントロール部もセパレートできて良さそうでしたが、144と430MHzは採用されなかったようで今使っている857からの置き換えはないかなぁと思いました。

あと、SGの中古とか無いかなと探してみましたが見当たりませんでした...

1日目終了後は来るまで宿に行きチェックインを済ませ、会場最寄り駅の石橋駅の近くの飲み屋さんで終電まで飲んでました。

翌朝は8時過ぎに会場入りし、10時ごろ茅ヶ崎から訪れた某メンバーとともに例の儀式?(笑)を執り行いました。

これで3エリアも征服しました!
昼過ぎから中会議室にて自作名人激集合というイベントに初参加してみました。普段他の方の自作品など見る機会がほとんどないので楽しみにしていました。

会議室のテーブルに作品を並べてまったりと談義するという企画です
今回7作品展示されておりどれも面白かったのですが、特に気になったのはこちら。
マルチバンド・スモールループといいましょうか 自分も作ってみたいです

枠からはみ出してしまっていますが(笑)、いわゆるマグネチックループアンテナでメジャーをエレメントにしており、簡単に組み上げられていました。同調コンデンサはトップのエアバリコンをモーターで駆動させていましたが、面白いなと思ったのはボトムにあるこの部分でした。

給電部分 トロイダルコアにエレメントを通し、コアに数回巻いた被覆線が同軸コネクタに繋がってます

いわゆる絶縁トランスによるインピーダンスマッチングになっています。ただバンドによって同調時の純抵抗が変わるのでチューナーをかませてあるようですが、磁気飽和しない範囲ではサブループマッチングに劣らないかもしれません。

SRAもそうですが、この手の小型アンテナは同調とインピーダンスマッチングの調整がクリチカルになりやすいです。しかしどんなアンテナであっても同調をとってから(=リアクタンスを0にする)純抵抗を50Ωに変換するという手順が大切だと感じるのは、136kHzを経験して実感しています。

あ、なんか話がずれてしまいましたが最後に自分の展示物を激写しておきました。

本体よりも隣の青いリン酸リチウムイオンバッテリーが目立っているようでした^^;
自分の作品にもそこそこ興味を持っていただけたようでありがとうございました。今度は基板をおこして最終形を完成させたいところです。来年も何か出してみたいなと思いました。

16時過ぎに撤収してそのまま来るまで帰路に着き、ぎりぎり0時前に帰宅し今回の遠征終了と相成りました。アイボール頂いた各局、今回もお世話になりありがとうございました。

でもってこの投稿の締めとして戦利品をご披露します。

このほかにごつい押しボタンスイッチがありました
なみえマグカップと3.6mロッドアンテナ、研究用のUSBIF-4Wキット、GHDの移動用パドル、頂いた2石7MHzQRPpCWトランシーバ、モーメンタリ大型押しボタンスイッチを手に入れました。

関西の次のイベントは来年初めの関西ハムシンポジウムですね。次は移動運用兼ねてまた参加したいところです。

2016年7月15日金曜日

第21回関西アマチュア無線フェスティバルに参加します!

大阪は池田市で7月16日、17日に開催される第21回関西アマチュア無線フェスティバル(通称関ハム)に参加します。

いつものことながら、このようなポスターが掲げているであろうブースにお世話になります。

リトルガンくらぶというブースに今年もお世話になります
 こちらでは、Keyer Mini-V2 Revision2 最新ファームウエア搭載のキット(表面実装部品装着動作確認済み半完成版5セット、フルキット版3セット)の頒布と、ファームウエアアップグレードサービス(ICSP経由)、Keyer Mini-V2初期型用の最新ファーム入りPIC16F1847(5個)の頒布を予定しています。

他にも有志各局のジャンクなどの販売があるそうなので、ご来場の折にはぜひお立ち寄りください。

2日目の午後は自作名人激集合というイベントに7MHz QRPトランシーバを持ち込み展示していますので、こちらのほうもよろしくです。




さあ、これで関西も征服だ!(謎)

AFプリアンプ・AGC・Sメータ回路変更

今回QRPトランシーバ試作2号機の受信部のRFプリアンプとIFアンプにデュアルゲートMOSFET 3SK294を採用しましたが、試作1号機で採用した2SK241とは異なりエンハンスメントタイプのため第1ゲート, 第2ゲートともに正電圧をかけなければ動作しません。

データシートを参照にしてIDが10mAを超えないようにVG1Sを1.5Vに固定した場合、VG2Sを約1.0Vから2.0V程度の範囲で変化させることによって利得をコントロールすることが可能となります。

 各段の3SK294第2ゲートにAGC電圧を与えるよう回路図を書きましたが、最初AGC回路は試作1号機で使用した2SK241用のAGC出力(負電圧)に+5V電圧を抵抗を介して単にミックスして各第2ゲートにつなげていました。

 実装後オシロスコープでも信号強度に応じて電圧変化が確認できましたが、時定数やAGC深度などの調整がうまく効いてくれませんでした。

そのため汎用オペアンプを使って、オフセット電圧をかけた反転増幅回路を構成してきっちりAGC電圧を作れるように回路変更しました。オペアンプには汎用のLM358を使いましたが、2回路入りなのでAFプリアンプもオペアンプ1回路分の増幅回路を作り、2SC1815の1石アンプから置き換えました。

整流用ダイオードは1N60を使いましたが、Vf高めな1N4148でも良いです
AFプリアンプ部は電圧増幅約50倍でfc800HzのLPFを兼ねています。出力には発振防止の抵抗を繋いでPA入力とAGC・Sメータ回路に分けています。

AGC・Sメータ回路ですが、AF信号を1N60の倍電圧整流回路で整流し、PICのAD変換入力ポートとAGC電圧生成回路へつないでいます。AGC電圧生成回路はオペアンプ2回路目を使いました。+5Vからポテンショメータで分圧した電圧をオフセット入力として+入力に接続し、整流出力をー入力に接続、電圧増幅約3倍弱としています。オペアンプの出力電圧はオフセット電圧から信号強度の応じて低下する動作になります(信号が強いと電圧がより下がる)。オフセット電圧は無信号時にVG2Sが2V強になるように調整し、AGC深度は整流回路出力につないだポテンショメータで調整します。

ユニバーサル基板に実装したほぼ最終的なアナログ部回路図です(禁無断転載)

3SK294のソース抵抗は要らないかもしれません
でもって、試作2号機のアンテナ端子に自宅のベランダモビホにつなぎワッチしてみました。


AGC自体はそこそこ効いているようです。しかしAGCが効くようになるとSメータの電圧変化が小さくなり、Sメーターが振れなくなってしまいました。そこでPICのプログラム側でゼロ点と感度調整が出来るように追加変更することで、なんとかまともにS表示が出来るようになりました。

 あとオペアンプを実装したためか、送信時発振気味になるなどまだいくつか改善したい点はありますが、スタンドアロンなCWトランシーバとしての形が出来上がりました。

今後の展開としては、
・プリント基板を起こす(自作 or 外部発注)
・出力、SWR、電源電圧表示の実装
・マルチバンド化(少なくとも10MHz帯を入れたい)
を考えています。

SSBなど他のモードやSDRはまた別プロジェクトとしてやってみたいと思います。

まぁ慌てずにいきましょうか(笑)

2016年7月8日金曜日

Si5351Aの応用を考える

まだまだSi5351Aで引っ張りますよ!(笑)

同時3出力が可能という特徴を生かしてまずモノバンドトランシーバを製作しましたが、他にも色々と応用がききそうです。

無線関連では、SG、IMD測定やアンテナアナライザに使う発信源など測定機器に使ってみたいと考えています。

しかし既存のDDSと異なり、設定用レジスタやパラメータがやや複雑で直接周波数を指定できないため、まずは1MHzから36MHzまで1Hzオーダーで直接設定可能な関数を考えてみました。

おさらいとして、Si5351Aの周波数設定に関するパラメータと計算式をこちらに。

1.VCO周波数設定(PLLA, PLLB)

 fvco = fXTAL x (a + b / c)
    a...15~90, b...0~1048575, c...1~1048575, fXTAL = 25MHz or 27MHz

 fvco = 375MHz~900MHz

2.VCO分周設定(MultiSynth0,1,2,...)

 fout = fvco / (d + e / f)
    d...4~900, e...0~1048575, f...1~1048575

まず取っ掛かりとして1.のa値についてですが、15から90まで指定できるにもかかわらずfXTALとfvcoの関係から15~36の範囲に規定されます。その条件でaとbの値だけ変化させても周波数可変域は限定されてしまいます。もっと広範囲に周波数の設定を可能にするためには2.のMultiSynthの値も逐一変更しなければなりません。しかしこの値が変わると1.のbやcにも影響を及ぼすため、多少ややこしくなります。

25MHzのXTALを使用した場合、最初にMultiSynthのdの値を25とすると(eは0、fは1に固定)は、1.のaの値がそのままMHzに置き換わります。また、cの値を1000000にするとbの値はMHz以下の周波数そのものを表すことになります。

つまり、15MHzから36MHzまで周波数を1Hzオーダーでaとbに直接指定することが出来るというわけです。

次にMultiSynthのd値を倍の50にすると、7.5MHzから18MHzまでMHzオーダーを2倍にしてaに代入し、MHz以下の周波数をbに代入してC値を半分の500000に指定すれOKです。

 これを繰り返すことによって、より下の周波数まで一律1Hzオーダーの指定が可能になります。

以下出力周波数とa, c, d値の関係を下にまとめてみます。
 

a(16~32(36)) c d
16~36MHz F 1000000 25
8~16MHz 2F 500000 50
4~8MHz 4F 250000 100
2~4MHz 8F 125000 200
1~2MHz 16F 62500 400
(FはMHzオーダーの値)

この関係を満たすような関数をつくりまとめます。たとえばこんな感じで(無断転載禁)

void si5351_cmd(unsigned char reg, unsigned char data){                             
    I2C_send(0xC0);        // I2C_send()関数はI2C送信関数ですが汎用のものでOK
    I2C_send(reg);
    I2C_send(data);
}

void pll_set(unsigned char pll, long a, long b, long c){        // PLL_x fvco setting by feedback multisynth divider
    unsigned char pll_reg;
    long P1, P2;
  
    switch(pll){
        case 'A': default:
            pll_reg = 26;
            break;
        case 'B':
            pll_reg = 34;
            break;
    }
  
    P1 = (a << 7) + ((b << 7) / c) - 512;
    P2 = (b << 7) - c * ((b << 7) / c);
//  P3 = c;

    si5351_cmd(pll_reg,((c & 0x0000FF00) >> 8));                                        // <MSNx_P3[15:8]>
    si5351_cmd((pll_reg + 1),(c & 0x000000FF));                                            // <MSNx_P3[7:0]>
    si5351_cmd((pll_reg + 2),((P1 & 0x00030000) >> 16));                                // <MSNx_P1[17:16]>
    si5351_cmd((pll_reg + 3),((P1 & 0x0000FF00) >> 8));                                    // <MSNx_P1[15:8]>
    si5351_cmd((pll_reg + 4),(P1 & 0x000000FF));                                        // <MSNx_P1[7:0]>
    si5351_cmd((pll_reg + 5),(((c & 0x000F0000) >> 12) | ((P2 & 0x000F0000) >> 16)));    // <MSNx_P3[19:16], MSNx_P2[19:16]>
    si5351_cmd((pll_reg + 6),((P2 & 0x0000FF00) >> 8));                                    // <MSNx_P2[15:8]>
    si5351_cmd((pll_reg + 7),(P2 & 0x000000FF));                                        // <MSNx_P2[7:0]>
}

void ms_set(unsigned char i, long a, long b, long c){        // Multisynth_x divider setting
    long P1, P2;

    P1 = (a << 7) + ((b << 7) / c) - 512;
    P2 = (b << 7) - c * ((b << 7) / c);
//  P3 = c;

    si5351_cmd((42 + (i << 3)),((c & 0x0000FF00) >> 8));                                // <MSx_P3[15:8]>
    si5351_cmd((43 + (i << 3)),(c & 0x000000FF));                                        // <MSx_P3[7:0]>
    si5351_cmd((44 + (i << 3)),((P1 & 0x00030000) >> 16));                                // <0, Rx_DIV[2:0], MSx_DIVBY4[1:0], MSx_P1[17:16]>
    si5351_cmd((45 + (i << 3)),((P1 & 0x0000FF00) >> 8));                                // <MSx_P1[15:8]>
    si5351_cmd((46 + (i << 3)),(P1 & 0x000000FF));                                        // <MSx_P1[7:0]>
    si5351_cmd((47 + (i << 3)),(((c & 0x000F0000) >> 12) | ((P2 & 0x000F0000) >> 16)));    // <MSx_P3[19:16], MSx_P2[19:16]>
    si5351_cmd((48 + (i << 3)),((P2 & 0x0000FF00) >> 8));                                // <MSx_P2[15:8]>
    si5351_cmd((49 + (i << 3)),(P2 & 0x000000FF));                                        // <MSx_P2[7:0]>
}


 int Si5351A_fset(unsigned char pll, unsigned char clk, long freq){
    long a=0, b=0, c=1000000, d=25;

    a = freq;

    b = a % 1000000;
    a = a / 1000000;
  
    if(a > 0 && a < 36){
        while(a < 16){
            a <<= 1;
            c >>= 1;
            d <<= 1;
        }
    }
    else return 1;
  
    pll_set(pll, a, b, c);
    ms_set(clk, d, 0, 1);
  
    return 0;
}


メインは Si5351a_fset()関数で、仮引数のpllは使用するPLL(A or B)、clkはCLK出力番号(0, 1 or 2)、freqは設定周波数(Hz表示)です。

関数の内訳は、設定周波数のMHzオーダーの値をaに代入し、MHzオーダー以下の周波数値をbに代入します。aはVCO設定値で16以上36未満の場合そのままpll_set()関数とms_set()関数に各値を渡しますが、aが16未満の場合は16以上になるまでa, d(MultiSynthの設定値)値を倍にしてc値を半分にします。

Si5351A_fset()関数でセットした後出力させるCLKをオンにするコマンドを送れば指定した周波数で出力されます。(fXTALの周波数ズレによる出力周波数誤差を修正するコードも書きましたが、ここでは省略します)

Si5351Aのプログラムを作る一助になれば幸いです。

閑話休題。

この設定パラメータを眺めていてふと疑問に思ったことがありました。

VCO周波数設定のa値は15から90とありますが、fXTALが25MHzの場合90に設定するとfvcoが2250MHzとなりVCO発振可能周波数域を完全に逸脱してしまいます。aが36程度までという規定ならば納得しますが、ではなぜ90までとされているのでしょうか?

まだ実験していませんが、おそらくfXTALは25か27MHz以外も使えることを示しているのではないかと想像しています。具体的には10MHzのXTALであればa値90でfvcoは上限の900MHzになり、これは40MHzから90MHz辺りまでの周波数で1Hzオーダーの設定が可能になることを表しています。

また裏技で10MHzのTCXOやOCXOなど出力をSi5351AのXAピンにつなげれば比較的高い任意の周波数で安定した発信源を得ることが出来そうです。

どちらさまか追試をお願いします!

2016年7月5日火曜日

7MHz QRP(p) CW TRXの送信信号測定

7MHzQRP(p) CWトランシーバ試作2号機組み立てもそろそろ大詰めの段階まで来ました。

秋月ユニバーサル基板Bタイプ用の透明アクリル板2枚でトランシーバ本体の表裏に取り付け、サイドを2mm厚の透明アクリル板を切って穴あけして半分ほど貼り付け、あと残り版分の加工取り付けをしようという段階です。

アクリル板で囲ってそれらしくなってきました
スピーカーも内蔵させようと薄型高出力のユニットを探しましたがなかなかこれといったものがありません。
aitendoで購入した8Ω1.5Wの厚さ4mm程度の小型ユニットを内蔵させてみましたがいかんせん薄型のためなのか音が小さめで、ボリウムを上げると音割れしてしまってあまりよろしくありません。アクリルで囲ってやると多少ましになりそうですが、半分お飾りな様なものですね^^;もう少し口径が大きくて耐圧の高いユニットを裏あたりにつけたほうが良いかもしれません。

つづいてほぼまとまったところで気になる送信時のスプリアス測定を行いました。

BNCアンテナ端子に40dBのアッテネータをつなげてAPB-3にのINPUTに接続し、スペアナモードで観測しました。

13.5V安定化電源接続時の最大出力3Wで測定

最小出力0.5W時 第2次高調波はノイズレベルまで低下
というわけで、測定周波数域ではいずれも新スプリアス基準の50μWを下回っておりました。ただ、普通のユニバーサル基板にLPFもろもろ詰め込んだためか、偶数次、奇数次とも高次高調波の抑制が やや甘いかもしれません(測定系の影響もあるかと思われますが)。

続いて信号周辺をスキャンしてみると...

送信信号周辺 信号周囲100Hz毎に小さな柱が

BFO(4MHz)信号周辺も同様に100Hz毎の小さい柱が見えます

信号周辺100Hzごとに小さなスプリアスが並んでいます。以前Si5351A単体で測定したときのようにハム混入など電源の問題かもしれませんが、 いずれも元信号レベルより70~80dB低いためそのままとしています。

というわけでAPB-3による測定ですが、ユニバーサル基板の状態でも新スプリアス基準内に収まっていると判断して変更申請に入ります。

あと受信感度ですが、簡易SG出力可能なminiVNAproBTにアッテネータを繋だもので、最小-120dBmの信号まで聞き分けられる程度でした。

今回完成した試作機2号は今度第21回関西ハムフェスティバルの自作名人激集合で展示予定としました。他の方の作品を拝見したりして改良点とか何かヒントが見つかるといいなぁと考えています。