2015年12月31日木曜日

3度(年)目の正直と2015年最後の日

あれよあれよという間にもう2015年大晦日ですね。

第30回オール千葉コンテストの結果がつい先日発表されました。136kHzデビューで思い入れのあるコンテスト3回目にしてやっと1位になることができました。県内局はおそらく当局入れて2局しか参加されなかったようで、なんとなくタナボタ感がしますがうれしいものですね。

次回は某社団局で免許をおろして参加という話もありますがどうなることやら、どんな形にしろ参加は続けていきたいと思っています。

今年も他に色々とありました。

475.5kHz帯免許がおり始めましたが、最初に免許されたときから半年遅れてようやく当局も免許をおろしました。まだCWでは1局しか交信出来ていませんが、送信アンテナの条件があまりよくない可能性があり、改良を検討中です(もちろんEIRP1W制限内で)。

また、1回きりですがハワイの実験局のWSPR2信号をPA0RDT mini-whipでデコードできたことです。コンディションに左右されるのは当然ですが、常にデコードできている局と比べて何が違うのか、何を改善させるか考えさせらました。

136kHzでは、新ローディングコイルでの運用を開始したことです。旧コイルでは気がつきませんでしたが、海や湖など面積の広い水にアースをつけるとアンテナ入力抵抗が下がるとともに共振周波数も下がります。また傘のエレメント(キャパシティハットに相当する)の設置も工夫で初期のころよりもしやすくなり、運用可能場所も多少広がると思われます。さらに車を使わない移動も今後やってみたいと思います。

あとはPIC関係ですが、キーヤーも現状のハードではほぼ完成形といっていいところまで出来上がりました。C言語にもだいぶ慣れて調子に乗ってJUMAの送信機のファームをいじったりしました。まだ詰めが足りないところですがそれは来年の課題にしましょう。

というわけで今年もあとわずかとなりました。

皆様良いお年をお迎えください。来年もどうぞよろしくお願いいたします。

2015年12月8日火曜日

475.5kHz WSPR2 DX初受信

現在の475.5kHz帯を自宅で受信する設備は、地上高9mのPA0RDT mini-whip アンテナにIC-7200MかNRD-535の直接受信です。先日JA1PKG局のWSPR2信号のSNRをすでにDX受信されている局と比較すると数dB低い値であったので、何かシステムの改善が必要と考えていました。

もともとアンテナ線を引き込む前に手すりアースを施していましたが、グラウンドループによる人工ノイズ低減目的に、ガルバニック・アイソレーショントランスの挿入を試してみました。

そのトランスですが、受信する周波数帯域から#77材のフェライトトロイダルコアを選択し、このコアに細めのUEW(0.32mm径)を1次2次20回ずつ巻いて自作してみました。

やっつけ感バリバリな(笑)ガルバニック・アイソレーショントランス
インダクタンスはおよそ750μH、475kHzでの挿入損失はおよそ0.5dBでした。受信した感じではVLF領域で多少良いかなという印象で、HF帯まで上がると逆にノイジーになるというなんだかいまひとつでしたが、とりあえずアンテナと受信機の間に挿入してみました。

その後このトランスの効果なのかどうか定かではありませんが、先日1回だけDX局(ハワイのWH2XCR局)を捕捉出来ました。


WSPRnetでも


もうすでにJA数局にSPOTされているのでいまさらですが、当日コンディションが良かったとはいえ住宅街の中比較的簡易なシステムで受信できた意義は大きいのではなかろうかと自画自賛(笑)

今後の改善点としては、アンテナの高さをもう少し上げてみることと、それに伴いLPFを挿入して強力な中波放送からの抑圧を少しでも低減させる、といったところでしょうか。

2015年11月23日月曜日

475.5kHz帯WSPR2受信状況

 秋も深まってきて475.5lHz帯でもWSPR2でDX受信がSPOTされるようになりました。

当局も自宅でWSPR受信を行うべく、受信システムを仮構築しました。

受信機は現在IC-7200M、アンテナはPA0RDT mini-whipアンテナを地上高およそ9mに設置しました。

音声入力はIC-7200MのUSB経由でPCに入力してWSPR-Xソフトウエアでデコードするというシステムです。

数日間連続稼動させましたが、DXはまだ受信できていません。

本日JA1PKG局のWSPR2信号をはじめて捕捉したので、他局のSPOTと比較してみました。

DX受信されたJA1NQI局とJH3XCU/1局と比較すると、JA1NQI局とは約6dB、JH3XCU/1局とでは約3dB差があり、距離を差し引いても両局から数~10dBほどの差があると思われます。

さらに、同時刻100Hz上で受信スプリアスと思われるSPOTが見られます。

DX受信時のSNRはいずれも-25dB以下のため現状の設備ではDX受信はちょっと難しいのかもしれません。

また受信スプリアスについては自局のSG信号を観察すると基準波の100Hz前後で見られており、電源系の問題と考えます。

改善点すべきとしては、アンテナの位置や高さ、電源系のアースの取り方を再検討することでしょうか。

2015年10月26日月曜日

475.5kHz帯やっとこさ初QSO

先週の千葉コン移動の熱も冷めやらぬまま、24日に475.5kHz帯の免許をおろした設置場所に出かけアンテナのローディングコイルに内蔵したバリオメータの遠隔操作システムの最終調整にTX-500にGPS受信ユニットの装着と、それに続き日没まで各モードで運用しました。
往路は本栖湖の回りを走ってきました。ちょっぴり紅葉が拝めました^^
現地に到着してまずは外にあるマッチングボックス内のバリオメータ制御システムのPICを、通信機能を付け加えたプログラムを焼きこんだ新しいものに交換。シャックのリモート側の電源をいれると、交換したPICとの通信が確立してシャック内からバリオメータ遠隔操作が可能になりました!パチパチパチ

引き続き、出かける前に用意したGPS受信ユニット(TX-136に取り付けたものと同じCanMore製GMS6-CR6)をTX-500ファームウエア改に取り付け電源をオンにしてGPSモニタ画面にすると、およそ1分くらいで衛星そ捕捉し計算されたグリッドロケータが表示されGPS時間同期を確認できました。

パドル後ろにバリオメータ遠隔操作リモート装置 通信が確立するとLCD表示が出る
ここまでは順調。ここまでは...

これで各モードの運用が可能になったのでした。

早速13:30過ぎくらいから472.5kHzCWモードでCQを出してみました応答なし...まだ昼間だし仕方がないだろうとして次にWSPR2で送信(475.7付近)したところ、山梨市のJH1INM局(直線距離30km)にSPOTされましたが他の局はサッパリでした。

やや日が傾きかけた16時ごろになり、DFCW30がJH3XCU/1曲にかろうじてキャプチャされました。その後、許可された移動場所で運用していただくことになりました。

カスカス^^;(DFCW30 50W送信 "1VNQ"が辛うじて?見えています)
 引き続き、WSPR2を送信しWSPRnetのDatabaseを見てみるとこんな感じでした。


 SNRの推移を注目すると面白いことがわかりました。16時前まではほぼ一定のSNRでしたが、出力を50Wに一定にしてみると17時以降(日没直前)30km離れたJH1INM局のSNRが徐々に上がってきて、最初SNR-10が日没後にはSNR+2まで上昇しました。ついでにJE1JDL局(直線距離約70km)にもSNR-21でSPOTされました。

そこで17時過ぎからおもにCWをワッチしてみると、アンテナ調整を終えたJH3XCU/1局のCQがピーク549でゆっくりしたフェージングを伴ってクリアに聞こえてきました。(受信アンテナは160m用のビバレッジですが、この周波数領域でも指向性が見られており475.5kHz帯の受信にもベターです。)

すかさずコールし続けましたが、こちらの信号は残念ながら届きませんでした。

後日うかがうと17時半ごろがこちらの信号のピークとのことでした。(ArgoのCWモード表示で辛うじて移る程度で音として符号判読できなかったようです)

そのほかに聞こえた局は、JA0HXV局、JA3TVF局でしたがこちらの信号が届かずでした。

そうこうしているうちに、JH1INM局が599+で強力に入感したのでコールしやっとコールバックあり599-559でレポート交換、475.5kHz帯での初QSOにいたりました。

その後もJH3XCU/1局のCQが続きこちらもコールし続けましたが、だんだん信号も弱くなって19時には撤収となりました。

475.5kHzの各局やワッチしていただきました皆さんどうもありがとうございました。

 【考察と課題】
1.当局の電波の弱さ
 
タワーのほかにも電灯線に電力が吸収されている可能性も

 アンテナはこんな感じで、タワーの間にワイヤーを張って中央から7mエレメントを落としてリモート式バリオメータ付きローディングコイルとトランスを組み込んだマッチングボックスにつながっています。アースは地中にアース棒を差し込んでおり、土が乾いているときの接地抵抗はVNAとローディングコイルのコイル抵抗から逆算して約10数Ωになっています。
コイル損失は7mのエレメントを短縮しているのでリッツ線をもってしても高く約30Ωであることと、両脇にあるタワーの影響が大きいのではないかと予想しています。
エレメントは現在の免許ではこれ以上高くすることは出来ず、高くする場合などは変更申請が必要になります。(EIRP1W以下であることを証明する必要がある)
高く出来ればローディングコイルのインダクタンスを減らしてコイル抵抗を小さくすることが可能になります。
また、タワーからエレメントを離すように水平部を付加したりアンテナ容量を増やすことでやはりアンテナ入力抵抗を減らせる可能性があります。
あとは、接地抵抗を直接計測してみてアースの改善が必要なのか検討していきたいです。

2.475.5kHz帯における伝播について

 午後から日没まで運用しましたが、WSPRのSNRの変化についてJH1INM局のSPOTを見ると日没になるにしたがってSNRが上がってきて最終的に12dB上昇していました。また、JH3XCU/1局の信号強度が日没前後の17時過ぎをピークに日没後弱くなっていました。JA3TVF局やJA0HXV局の信号も18時前後辺りでようやく聞こえ、それを過ぎるとまた聞こえなくなりました。INM局含めゆっくりとしたフェージングも見られました。

これらは夕方日没から夜に移行するときのD層やE層の変化に関係するものと思われますが、グレイライン伝播のような感じでなかなか興味深いです。

またJAからハワイまで同バンドでWSPR信号が捕捉されデコードされていますが、いずれも日没後3時間ということを考えると、やはりグレイラインが関わっている可能性があるのではないかと想像しています。

今回小笠原の運用は中止となってしまいましたが、もし今後運用されるとするならばこのバンドでの伝播の特徴をつかんでおくことがQSO成功の鍵になるかもしれませんね。

2015年10月20日火曜日

第30回オール千葉コンテストに参加しました(館山市136kHz移動運用)

無線以外でばたばたしていてブログも1ヶ月ほど間が空いてしまいました。

さて、今回はキリのいい(笑)第30回オール千葉コンテストに今年も参加しました。もちろん136kHz部門で。このコンテストは136kHz部門が存在する数少ないコンテスト(後ひとつはたしか四国のほうで136kHz部門のあるコンテストがあったと記憶しています。現在136kHz部門があるのはこの2つのコンテストだけです。)で、かつ当局が136kHzデビューを果たした思い入れのあるコンテストでもあります。

今回も元ローカル局どよよんさんをお招きしたところ快くOKのお返事をいただきまして、当日内房線の駅前で合流しました。
待ち合わせた内房線那古船形駅の駅舎 いい雰囲気です^^
朝9時前にどよよんさんを乗せしばらく移動し目的地の海辺に到着。朝魚釣りの方々が散見される中、早速設営開始しました。

アンテナは今回もおなじみの12m高2条傘型を設置しましたが、数回にわたる移動経験から少し工夫をしてみました。ひとつは傘エレメントの端の固定方法で、従来エレメントの端に非金属製ワイヤーをつなげての木の枝などに引っ掛け結びつけるなどしていましたが、木の枝がない場合やエレメントの方向に自由度を持たせるため、フックつきの小さなコンクリートブロックをホームセンターで購入し、フックにエレメントをつないだワイヤーを引っ掛けてブロックの置く位置を変えて好きな位置にエレメントをセットできるようにしました。またカラビナをつかって着脱も容易になるようにしました。多少風が吹いてもズレなくてFBです。車の移動でなければ水を入れて重石にする容器があれば持ち運びには問題ないでしょう。

フック付きコンクリブロック 逆Vダイポールにも使えそう
さらに海辺というロケーションからある程度の風が予想されたので、垂直エレメント部分をグラスファイバーポールにおよそ1,2メートル程度の間隔でエレメントをポールから5,6センチ浮かせながら荷造りテープで固定することによって、風で大きくエレメントが揺さぶられないようにしました。

垂直部分はポールに付かず離れずに半固定
次はアースです。いつもは10枚のガルバリウム鋼板を地面に敷くアースマット方式ですが、ここは広い海のすぐそば。昨年の木更津JD1チャレンジに倣って、海水へ小さなステンレスメッシュ板を浸す通称海ポッチャンでアースを取りました。

ローディングコイルはリッツ線を巻いたVARIOMETER3号を用意してエレメントと接続し、わくわくしながら(笑)早速VNAをつないで測定しました。

調整しやすくするためオペレーションデスクに近いところにローディングコイルを設置
素の特性 共振点でのアンテナ入力抵抗25Ω
 この前の諏訪湖移動のときにも見られましたが、湖水や海水アースは共振点がかなり下がります。最初ローディングコイルのインダクタンス最小位置にしても共振点が136kHzより下がってしまったので、結局垂直部のエレメントの余剰分1メートルほどカットすることによってやっと同調が取れるようになりました。(余剰分は巻いていたりしたので輻射には寄与していないと考え切ることにしました。)
マッチングトランスで変換後の特性 かなりシャープ
測定結果を踏まえインピーダンス変換トランスの25Ωタップにつなぎ替えると、共振点でVSWR1.1以下までマッチングさせることが出来ました。しかし、ローディングコイルのQの高さも相まってVSWR3以内の幅は約600Hzしかありません。1.5以内にいたっては200Hzという非常にシャープな特性。

昼前でしたが風がやや強く、VNA連続測定モードで観察するとポールがゆれるに従い共振点は数100HzずれてすぐにVSWRが上昇してしまいます。MAXパワー(50W)ではこの状況だと運用中にSWRプロテクションが働いてしまうので、当面LOW(15W)かHI(34W)で運用することにしました。

送信機はいつものJUMA TX-136改 受信機はFT-817ND直接受信+JUMA内蔵プリアンプ

調整が終了し、運用開始までしばし海を眺める(笑)
11時ごろでしたか、136.5kHzでVVVを出すと早速JA1HQG/1局とJA1NQI局に呼んでいただきました。12時になりおなじみの各局の信号が聞こえてきました。FT-817の136kHz帯での受信感度はFT-857より感覚的に低い印象だったことからJUMA内蔵の10MHz受信コンバータで時々切り替え入感する信号を比べてみましたが、コンバータ経由だとかえって雑音で聞き取りにくいため136kHz直接受信で20dBプリアンプをオンにすることにしました。専用受信機ができるまではこのスタイルで行こう思います。ちなみにもちろんIPOはオンです。

ひとしきりQSOできたところでDFCWとWSPR2送信テストを行いました。CWとは周波数が異なるため(CW:136.5kHz, DFCW(QRSS):137.777kHz付近, WSPR2:137.5kHz付近) アンテナの再調整が必要になりますが一度VNAで調整できているので、あとはインピーダンス変換トランスに内蔵したアンテナ電流計をにらみながら、電流計の針がピークになるようにローディングコイルのバリオメータの角度を調整するだけでOKです。

稲敷市のJA1NQI局と台東区のJA8SCD/1局のグラバーにDFCWが映っていました。

137.774kHz:当局のDFCW30信号 137.779kHz:JH1ARY/1局のSlowHell信号 TNX 松浦OM
WSPRnet GL6桁設定しましたが相変わらず4digitしか表示されず 送信機側で6digit送る改良が必要

最初は風でエレメントが揺れ共振周波数が落ち着きませんでしたが、3時過ぎから穏やかになって安定したので50Wのフルパワーで送信、最後に山梨のJH1INM局のCWが聞こえたのでコールし無事QSOできました。

日が落ちるころローディングコイルを160m用の小型のものに換えました。ただ、海水アースだと傘型2条アンテナの装荷コイルなしでの共振周波数が1.5MHzと1.9MHzより下がってしまったためアースを車のボディアースに切り替え共振&マッチングを得ました。FT-817NDの5Wで160mを運用し午後6時コンテストを終えました。
サンセットがとても綺麗だったので一時無線を離れ眺めておりました
昨年は勝浦ダムの傍で運用し、夜の星がとても印象的でしたが今回は夕日が印象的。自然を直に楽しむのも移動運用の醍醐味だと思います。FB、G+、ツイッターつながりの各局には無線しろ!と喝入れられましたが(苦笑)

夕方も6時を過ぎると急に辺りが真っ暗になって冷えてきます。外にある機器に露がつき始めるので早々に撤収を開始し7時前後には現場を離れて帰路につきました。

そしてどよよんさんをお送りする途中恒例のがっつりタイム!

温泉は入りませんでしたが、空腹はしっかり満たしてきました
移動運用では近くにトイレがあるとは限りません。当日朝は軽く食事を摂り、現地に着いたら水分以外はお菓子程度にとどめて過ごします。しっかり食べてしまうと眠くなったり、大をもよおしたりする危険があるからです。ただ頭は働かせないといけないのでチョコレートとか甘めのものを用意します。(一応簡易トイレは装備してはいますがあくまで緊急用)

ともあれ今年も無事に楽しく移動運用できました。同行していただいたどよよんさんありがとうございました。また、QSOいただいた各局おつかれさま&ありがとうございました!

2015年9月15日火曜日

諏訪湖移動運用記(おもに136kHz運用について)

今年の夏は後半雨ばかりで、先日も台風18号に引きずられた雨雲による豪雨で各地で大きな被害を残しています。

ようやく長い雨のトンネルを抜け出し久しぶりに晴天が戻った先週末、こちらも久しぶりに移動運用を行いました。場所は諏訪市(JCC0906)の諏訪湖湖畔。

twitterやGoogle+つながりなCW界隈では東の軍曹として有名な(笑)JF1DIRさんにお誘いを受けて、ローカルクラブのほかの局長さんと一緒に移動しました。

もうすっかり秋の空です
湖岸の舗装路に車を寄せてアンテナとシステムの設営を行い1時間弱で設営完了しました。最初湖水にステンレスメッシュ板(以前海中に投下したものと同じ)を浸し、アースとしましたが入力抵抗が97Ωと期待はずれの値...
そこで急遽これまたいつものアース板を舗装路上に邪魔にならないように10枚置きアースを取り直しました。しかし同じように入力抵抗は100Ω弱といったところ。 両方を繋げてもほとんど変化せず共振周波数だけ下がります。
アンテナを建てる際一応垂直エレメント部分を立ち木から充分離しましたが、傘骨の斜めのエレメントの先端が立ち木の枝におよそ3メートルまで接近していたのを発見し、傘骨を別の場所に移動し枝より充分離したら入力抵抗は68Ωまでなんとか下がりました。
 時間もなかったためそれ以上は突き詰めず、インピーダンス変換トランスで50Ωに変換し早速運用開始しました。

最初湖水アースでしたが、接地抵抗が思いのほか高く急遽アース板10枚敷き
新ローディングコイルはリッツ線巻きのコイル抵抗12Ωもの
73Ω:50Ωインピーダンス変換トランス挿入時のアンテナ特性
最初は136.5kHzCWモードでCQを出していたところ、山梨市のJH1INM局にコールいただきレポート交換、交信成立しました(約60km)。その後CQ出し続けましたが呼ばれず、WSPR2モードに切り替え送信しました。

WSPRnetのDatabaseを覗いてみると、3局にspotされていました。(JH1INM, JH1GYE, JA5FP)
WSPR2で各局にspotされました
こちらもFT-817(JUMA-136内蔵受信コンバータ+20dBプリアンプ)で136.0kHzUSBモード設定とし、スピーカーで鳴らした受信した音声をPCのマイク入力で拾いwspr-xというソフトで監視したところ、JH1GYE局のWSPR2信号受信に成功しました(約90km)。
受信機のスピーカーからマイクで拾ってデコードしたJH1GYE局のWSPR2信号をWSPRnetにUpload

最後に137.773kHzでDFCW30送信し、JA5FP局(四街道市)とJA8SCD局(台東区)のグラバーに捕捉されてました。
JA5FP局のグラバーにDFCW30信号が捕捉されていました
 すでに日が暮れかかっていたため3時間余りの運用で撤収しました。

その晩はペンション風の宿で泊まり、温泉に浸かって飲めや歌えの大騒ぎ(笑)。

 翌日は天気がいまひとつで136kHz運用は断念して7MHzCWを少しだけ運用し帰宅となりました。

今回の移動でも、やはり立ち木の影響は大きいという印象でした。出来るだけ離したつもりでもエレメントの端から見て構造物などが接近していないかどうかは要チェックです。
また、水田のわき道での運用が良いといわれている理由が、周りに何もないということがひとつあるのだと思います。あとは接地抵抗についても標高が低く水路が張り巡らされているということも好条件のひとつかもしれません。あとは海に近い場所ですね。

次回は条件の良いところを探して移動したいと考えています。 

あ、今回の移動いろいろと楽しかったのでまた誘ってくださいませm(_ _)m

2015年9月9日水曜日

遅延キーイングのプログラム備忘録

先ほどKeyer Mini-V2のプログラムに遅延キーイング(PTTオンに少し遅れてキーイングが開始する仕組み)機能を追加しましたが、後々応用が利くと考えたのでここで備忘録的にプログラムの考え方を書き残しておきます。

PTTと同時に符号開始(上の赤がPTT,下の黄色がKEY出力 ”V V"
遅延キーイングモード(約90msec)
すでに出来上がっている符号生成のルーチンを弄りたくなかったので、直接出力ポートを駆動するレジスタに符号出力をつないでいるところを一旦切り離し、符号出力を一般の変数に置き換えその変数の動きを遅延させて出力ポートを駆動させるという流れを考えました。

具体的には#define文をつかって、#define KEY_OUT LATAbits.LATA0 -> PORTA0レジスタ(LATA0)をKEY_OUTに呼び変えて直接代入する(Boolean値なので0か1)方法で出力操作をしていたのを一旦KEY_OUTを一般変数として宣言し、#define文のKEY_OUTをKEY_OUT1として切り離す、といったところがまず最初の一歩です。

mainループ内でKEY_OUT1 = KEY_OUTとすれば(正確には型変換を必要とするところですが)切り離す前と結果は変わりありません。で、このKEY_OUTをKEY_OUT1に繋げる前に何かしらの遅延ルーチンを通せばよいわけです。

しかし、この遅延ルーチンをどうやって作るかで少し試行錯誤しました。

まず、mainループ内でKEY_OUT変数を監視して立ち上がりから立下りまでの時間を記憶させ、遅延時間後にKEY_OUT1操作(立ち上げて、記憶した時間を経過したら立ち下げる)という方法でプログラムを書いてみましたが、割り込み処理の関係で時間が不正確になりまったくうまくいきません。

そこで、まず割り込み処理関数内にKEY_OUT変数を監視する命令を置いてリングバッファへ変数の状態をコピーしインデックスを1つ加算します。バッファは256個の1元配列としました。結果1インデックスが1ミリ秒に相当する時間のいわばKEY_OUT値のサンプリングになります。この処理のすぐ下に、今サンプリングして格納したバッファのインデックス値から遅延したい時間に相当する数を引いたインデックスのバッファの値を参照しKEY_OUT1につなげる 処理を置くという方法にしました。

  /////グローバル変数宣言/////

    unsigned char delay_buffer[256] = {0};                        <-バッファの変数宣言と初期化
    unsigned char delay_time = 50;  

  /////1ミリ秒割り込み処理関数内/////

    static unsigned char idx = 0, idx2 = 0;

    if(KEY_OUT) delay_buffer[idx] = 1;        <-KEY_OUT値をサンプリングしバッファへコピー
    else if(KEY_OUT == 0) delay_buffer[ind] = 0;
       
    if(idx < delay_time) idx2 = 255 - delay_time + idx;           <-参照インデックス計算
    else idx2 = idx - delay_time;
       
    if(delay_buffer[idx2]){            <-KEY_OUT1操作
        if(KEY_OUT1 == 0) KEY_OUT1 = 1;
        }
    else if(delay_buffer[idx2] == 0){
        if(KEY_OUT1) KEY_OUT1 = 0;
        }
       
    if(idx > 254) idx = 0;                                     <-インデックス値インクリメント
    else idx++;


たとえば上のような感じになります。バッファの要素は8bit変数なので格納される値が1bitだとなんとなく勿体ない感じもしますね^^;RAMを節約したいのならビットシフトやビットマスクを活用して8分の1にRAM消費を抑えることも出来そうです。

逆に要素のビット数を増やして(8bitから16bit, 32bit...)監視する変数をAD変換されたデータにすると...と妄想が拡がります(笑) 

2015年9月5日土曜日

Si5351AモジュールからVFOとBFOの信号を

Silicon Lab.のSi5351Aを使ったクロックモジュールで10MHz方形波発生することが出来ましたが、次はより実用に近づけるためVFOとBFO信号を発生させるテストを試みるべく、今回VFOは7MHz周辺を10Hzステップで可変、BFOは4MHz固定という設定でプログラムを考えてみました。

前の投稿のとおりSi5351シリーズでは、各PLLのVCO発振周波数設定とVCO信号の分周比設定により出力周波数を規定します。

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

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

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

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

1と2をあわせると、設定周波数は6つのパラメータで規定されます。

 fout = fXTAL x (a + b / c) / (d + e / f)

というように、非常に細かい設定が可能ですが、ある特定の周波数範囲のVFOを8ビットマイコンで制御するとして考えるならば、分母は整数とくに5ないし10の倍数にして分子のパラメーターを細かく変化させたほうが簡単です。

 で、上の条件で各パラメーターを決めてみると。

fvco = 700~800MHz, fXTAL = 25MHz
a = 28, b= 0~99999, c = 25000, d = 100, e = 0, f = 1

これで、7~8MHzの10HzステップVFOが出来上がります。

I2C LCDモジュールとロータリーエンコーダをつなげました
I2CバスにSi5351AモジュールとLCDモジュールをぶら下げることでPICの使用ポートも4つで済んでおり、8PIN PICでも実現可能です。

2つ同時出力 下は4MHz(固定)上は7MHz(可変)
あとは、適切なLPFを通すことで汎用VFOが出来上がります。

2015年8月30日日曜日

PLLクロックジェネレータSi5351Aお試し ~いわゆるLチカ~

今日はハムフェアの反省会(?)と称して秋葉原の某中華料理店で謎の団体とご一緒させていただきました。

会が終了し、一行は秋葉原にあるハムショップに訪れ中を徘徊し夕方解散となりました。


ハムフェアのBasicommブースにも現れた謎の集団(笑)ご一行様が秋葉原に向け進行中。


そういえば秋月電子通商秋葉原店、店内がリニューアルしていました。
しかし相変わらず訪れるお客さんが多くゆっくり滞在できませんでしたが、主要なパーツ置き場などをチェックしてきました。

と、長い前置きはこのくらいにしておいて

FD移動やハムフェアでしばらく中断していた新デバイスの動作テストを行いました。

以前QRP Labs.で頒布されていたUltimate3というWSPRなどデジタルモードビーコン送信機キットを製作しましたが、このキットに使われていた発振器はAD9850を使った安価な中華DDSユニットでした。しかしその後3Sとしてリニューアルされたキットの発振器に使われていたのがSi570でおなじみの(...といってもJAではあまり取り上げられていないようですが)Silicon Labs.で出している多出力クロックジェネレータSi5351Aで、チップ自体はRSコンポーネンツでも単価が200円もしない非常に安価なデバイスです。
そんな中、ArduinoやRaspberryPiの周辺ボードでおなじみの(...といってもやはりJAでは(以下略))Adafruitからこのデバイスを使ったbreakout boardが出ているのをGoogle+で見つけ、早速2枚オーダーしました。

ボード中央に見える10pinMSOPのチップがSi5351A
もともとは電子機器のクロック用に開発されたデバイスですが、中に2つの独立したPLLと3系統のプログラマブル分周器が内蔵され、同時に3つの異なる周波数のクロックが得られるという面白いチップです。

基準発振は外付けの25MHzのXTALを接続して内部で発振し、PLLフィードバック用のプログラマブル分周器で分周することで最高900MHzまで任意の周波数でPLLをロックします。その後PLLの信号をさらに分周することで目的周波数を得るというものです。
Si3531Aのブロックダイアグラム(データシートより引用)
コントロールはI2C経由で行います。設定手順は、PLLのフィードバック分周器の設定、分周器(MultiSynth0(~2)の設定、PLLリセット、 PLLオンという具合でそう難しくはなさそうですが、各分周器のパラメータの設定が最初なかなか理解しにくかったです。

まずは今回DDSのときと同じように固定周波数で発振までこぎつけるといういわゆるLチカ儀式(笑)を行うことにしました。

目的周波数を10MHzとし、最初にPLLの周波数を決めてそのあと10MHzになるように分周比を決めてみました。PLL周波数は800MHzで分周比は80とすれば10MHzで出力されるという計算です。

まずは、PLL周波数を800MHzにする設定を割りだします。

フィードバック用分周器の設定は、まずデータシート(ここここ)から

  i) fvco = fXTAL x (a + b / c)
     aは15~90の整数値、bは0~1048575の整数、cは1~1048575の整数
     fvco = 800MHz, fXTAL = 25MHzとすると、a,b,cはそれぞれ32,0,1です。
   これらの値を設定用パラメータP1,P2,P3に変換し(詳しくはデータシート参照)
     Si3531Aのレジスタ(MSNA_Px or MSNB_Pxレジスタ)にI2C経由で転送します。
  ii) fout = fvco / (a + b / c)
      i)と同様になります(MSx_Pxレジスタ)

そんなこんなでいつものPIC16F1827用にプログラムを書いてコンパイルし初動作。



あっさり10MHzあたりで発振しています。出力は50Ωインピーダンスで20dBアッテネータを挿入しABP-3で測定すると-10dBmと+数dBmは出ていると見えDDSよりも大きくそのままパッシブDBMにつなげられそうな勢いです。



 方形波なので高調波はこんな感じで、5MHzごとの柱は基準発振器との混合波の可能性と見ていますが、近傍の余計な信号が気になります




拡大すると信号周囲50Hz毎に柱が見られており、ハムが乗っかっていると想像したためACアダプターを電池に切り替えて再測定しました。




と50Hzごとの柱は消え、なんとなく小さい柱は残っているもののとりあえずは使えるレベルかもしれません。ただし電源のデカップリングなどしっかりした対策は必要ですね。

参考までに、ソースを公開します。最低限のものなのですが、これを芯にしてVFOとBFOを同時に賄える発振器に出来ればな~と考えてます。

//
//    si5351 handling test program
//    31 Jul 2015 / HARU
//
//    ver.0.1 29 Aug 2015
//    first implementation (so-called "L-Chika") output freqency 10MHz
//
//    ** parameters calculation **
//
//    fvco = fXTAL * (a + b / c) a:15 to 90, b:0 to 1048575, c:1 to 1048575
//    fout = fvco / (a + b / c) a:4 to 900, b:0 to 1048575, c:1 to 1048575
//
//    P1 = 128 * a + floor(128 * b / c) - 512
//    P2 = 128 * b - c * floor(128 * b / c)
//    P3 = c
//

#define EEPROM_SIZE     256
#define _XTAL_FREQ        4000000

#include <xc.h>

//for 16F1847/1827 config
#pragma config CPD = OFF, BOREN = NSLEEP, IESO = OFF, FOSC = INTOSC
#pragma    config FCMEN = OFF, MCLRE = OFF, WDTE = OFF, CP = OFF, PWRTE = ON, CLKOUTEN = OFF
#pragma config PLLEN = OFF, WRT = OFF, STVREN = OFF, BORV = LO, LVP = OFF

#define SCL         LATAbits.LATA2
#define SDA            LATAbits.LATA3

void msec_delay(unsigned short time);
void I2C_init(void);
void I2C_send(unsigned char data);
void si5351_cmd(unsigned char reg, unsigned char data);
void pll_set(void);
void ms0_set(void);

void main(void){
   
    OSCCON = 0x6A;                        // 4MHz internal OSC no PLL
   
    ANSELA = 0x00;
    ANSELB = 0x00;
    TRISA = 0x00;
    TRISB = 0x00;
//    WPUB = 0xFF;                        // PORTB weak pull-up
   
    OPTION_REG = 0x02;                    // weak pull_up, TMR0 internal clock(1us/cycle), prescaler 1:8
   
    I2C_init();
   
    si5351_cmd(16,0x80);                // output off
    pll_set();                            // PLL_A fvco setting by feedback multisynth divider
    ms0_set();                            // Multisynth0 divider setting
    si5351_cmd(177,0xA0);                // PLL_A reset
    si5351_cmd(16,0x4F);                // CLK0 ON (Multisynth0;Integer mode, PLL_A source)

    while(1){
       
    }
}

void msec_delay(unsigned short time){
    unsigned short i;
    for(i=0;i<time;i++){
        __delay_ms(1);
    }
}

void I2C_init(void){
    SDA = 1;
    SCL = 1;
}

void I2C_send(unsigned char data){
    unsigned char i;
    for(i=0;i<8;i++){
        if(data & 0x80) SDA = 1;
        else SDA = 0;

        SCL = 1;
        SCL = 0;
        SDA = 0;
        data <<= 1;
    }
    SCL = 1;                            // for ack
    SCL = 0;
}

void si5351_cmd(unsigned char reg, unsigned char data){
    SDA = 0;                            // start condition
    SCL = 0;                            //
    I2C_send(0xC0);
    I2C_send(reg);
    I2C_send(data);
    SCL = 1;                            // stop condition
    SDA = 1;                            //
    __delay_us(30);
}

void pll_set(void){                        // fXTAL=25MHz, fvco=800MHz, a=32, b=0, c=1(integer) -> P1=3584, P2=0, P3=1
    si5351_cmd(26,0);                    // resister26 <MSNA_P3[15:8]>
    si5351_cmd(27,1);                    // resister27 <MSNA_P3[7:0]>
    si5351_cmd(28,0);                    // resister28 <MSNA_P1[17:16]>
    si5351_cmd(29,0b00001110);            // resister29 <MSNA_P1[15:8]>
    si5351_cmd(30,0);                    // resister30 <MSNA_P1[7:0]>
    si5351_cmd(31,0);                    // resister31 <MSNA_P3[19:16], MSNA_P2[19:16]>
    si5351_cmd(32,0);                    // resister32 <MSNA_P2[15:8]>
    si5351_cmd(33,0);                    // resister33 <MSNA_P2[7:0]>
}

void ms0_set(void){                        // fout=10MHz, 1/80 division, a=80, b=0, c=1(integer) -> P1=9728, P2=0, P3=1
    si5351_cmd(42,0);                    // resister42 <MS0_P3[15:8]>
    si5351_cmd(43,1);                    // resister43 <MS0_P3[7:0]>
    si5351_cmd(44,0);                    // resister44 <0, R0_DIV[2:0], MS0_DIVBY4[1:0], MS0\P1[17:16]>
    si5351_cmd(45,0b00100110);            // resister45 <MS0_P1[15:8]>
    si5351_cmd(46,0);                    // resister46 <MS0_P1[7:0]>
    si5351_cmd(47,0);                    // resister47 <MS0_P3[19:16], MS0_P2[19:16]>
    si5351_cmd(48,0);                    // resister48 <MS0_P2[15:8]>
    si5351_cmd(49,0);                    // resister49 <MS0_P2[7:0]>
}

2015年8月24日月曜日

ハムフェア2015行ってきました

8月中旬秋の気配をなんとなく感じるころとはいえ日中はまだまだ暑い最中、恒例のハムフェア2015が東京ビッグサイトで開催されました。

会場の様子をiPhoneカメラで撮りましたが、なんというかどの写真もぜんぜんキチンと撮れていません(汗)

どうにか見れる写真を出してみます。





今回はほとんどBasicommさんのブースに居たので他のブースはほとんど回れませんでしたが、初日はかなり人が多かったようです。


Basicommさんのブース以外は136kHzでいつもお世話になっている全日本長中波クラブのブースを訪れ、持参した自分の展示物を置かせていただきました。


 こちらはJA1QUM青木OM作のアンテナ整合機(136kHz, 475kHz用)です。リッツ線を多層巻きにしているそうですが、全部多層巻きにせず一巻きおきに3層としてQ低下を抑えているそうです。すべて2層巻きにしたときの巻き数に相当すると思いますが、それぞれのQがどれだけ違うのか興味のあるところです。


7L1RLL若鳥OMは、SOS送信機改造475kHz送信機と改造ファームウエア搭載のJUMA TX-500送信機のデモンストレーションを行っておりました。何回か拝見していますがこのSOS送信機の筐体に内蔵されたコイルは圧巻ですね。


JA5FP 間OM作のPIC制御中華DDSによるLF帯ビーコン送信機です。
PICの基準発信器を12.88MHzのものに換装し、ちょうど136kHz帯になるようにしてDFCWを送信していました。面白いのはDFCWのgapの部分に短時間周波数シフトを施すことによって、長点又は短点の連続での符号の切れ目がより認識しやすくなっています。ArgoやSpectrum Labで表示すると垂直線で表示されます。(画像撮りませんでした)
また短点を押し続けるとストレートキーモードに切り替わるキーヤーも展示されており、なかなかおもしろい仕組みだなぁと感心しました。

あと写真を撮り忘れてしまいましたが、JH1ARY 黒田OM作の135kHz/475kHz自作送信機、JF1LKS 多田OM作のUltimate3Sビーコン送信機の展示がありました。Ultimate3は当局も持っていますが、発信器が中華DDSを採用したタイプで普通の水晶発振子を使っているためか、136kHzではQRHが目立つため実践投入していません。OMの3Sはデモンストレーションでの安定度も高そうです。出力に自作パワーアンプをつなげているそうで、現在免許待ちとのことでした。

会場内ではGPSからの信号が受信できませんでした
最後に私の展示物。

このブログで何回も取り上げましたが、改造JUMA TX-136展示バージョン(笑)です。
やっつけで余りもののアクリル板を組み合わせて天板部分を置き換え、GPS受信モジュール(GMS6-CR6)を中にいれて、送信機の中の様子が良くわかるようにしてみました。

やっつけで作った割にはしっかりしているので、当分このままで運用しようかと思います(笑)

でもって、Basicommさんのブースに置かせていただきましたKeyer Mini-V2 Revision2キット20台分ですが...

タッチパドルは好評で特別バージョンは完売していました
1日目で15台、2日目で5台売れ、めでたく完売しました。

円安の影響か購入いただいた方の3分の1は海外の方でした。マニュアルは日本語でしか書かれていませんがはたして大丈夫でしょうか...(汗

また完成品を望まれた方も多かったようで、今後展開をどうするか検討しています。

それから、twitterや他のSNSでおなじみのメンバーとも会場内外で交流を深めつつ楽しい2日間を過ごしました。

Basicommブースにやって来た謎の集団(笑)
ではまた来年。

一応今回の戦利品の一部をば。


136kHz移動用と、今後475kHzの移動する局免許(移動しない局はすでにおろしました)のためにFT-817NDと500Hz CWフィルターをハムフェア価格で購入。(うっかりTCXOユニットを忘れてしまいましたが^^;)
あとは前の週で手に入れることが出来なかった薄い本と、写真に写っていませんがAPB-3用の1GHzエクステンダを購入しました。

いままで車載のFT-857を外して136kHzの受信機として使っていましたが、これで少しまた楽に運用ができそうです。もちろん変更申請を出して他のバンドも出られるようにしますが。