FC2ブログ

APB-3の制御プログラムの改良

2016-06-25      
 直前記事では、APB-3の"素"の状態における周波数安定度を観察した様子をまとめました。そして、40分ほど放っておけばまずまず安定した測定ができることが判りました。ただ、周波数精度はあまり良くない様子で、10MHzをモデルとしたクロックとしてそもそも数百Hzの範囲で誤差が認められる上、室温に左右され易いといったことが判りました。まぁ、基準発振に普通の100MHzのクロックモジュールが採用されていますから、この程度の偏差・誤差は許容範囲内ではあります。
 抜本的な改良は、このクロックモジュールの換装や安定した外部クロックの採用ということになります。さらに、もう少し大きなケースに基板のみを入れ、積極的な排熱を行って発振安定度を向上させるなどの工夫はできなくはないんですが、コンパクトでスマートな筐体は、狭っこい我が工作スペースにはまさにピッタリ・・・大規模なハード変更は遠慮したいところ

 そこで、このクロック精度について同じ悩みを持つ方もいるんじゃないかとAPB-3の掲示板を検索すると、開発主である「ojisankoubou」こと小川一郎さんが、PC制御プログラム側で調整可能であると記されていました。これなら、昔取った杵柄よろしく自分でソフト改良できるかも・・・というわけで、このプログラム改良を計画しました。

 PC制御プログラムは「C#」で組まれており、購入時添付のDVDにソース・プログラムと開発環境一式が入っています。一方、APB-3のwebページには、小川さんが改良されつつ進化した制御プログラムの実行ファイルがアップされていますが、これについては残念ながらソース・プログラムの提供はされていません。つまり、購入時の実行プログラム仕様に改良を加えることになります。
 自分のAPB-3の使い方では特にスペアナモードで「dBm単位」の測定が多いんですが、これがDVDに入っている方・・・即ち購入時のプログラム仕様にはありません。こうなると、クロック周波数の調整ができても少々使い辛いことになりますから、この辺りも改良計画に加える必要があります。

 上記より、改良は以下の手順で行うように考えました。

 (1) 開発環境の準備
 (2) 掲示板にある方法でクロックの調整が可能か確認
 (3) 上手くいくようならスペアナモードを「dBm化」
 (4) 最終的にクロック調整を動的に実施できるようにする

 以下、APB-3の制御プログラムに手を入れていきます。お約束事として、著作権については小川さんのコメントを引用します。

//  このプログラムは Ojisankoubou( OGAWA Ichiro ) が著作権を持っています。
//  個人の研究目的には、修正、改造など自由に使用できます。
//  発表される際は著作権表示部分を消さないようにしてください。
//  このソフトウェアの全部もしくは一部を製品に組み込んだり販売したりするなどの
//  商業的利用はできません。

 というわけで、以下のソース・プログラムの著作権は「Ojisankoubou( OGAWA Ichiro ) さん」に帰属しますのでご注意願います。また、どよよん無線技士こと当ブログ主も重ねて・・・この改造による不具合発生等につきましては一切責任を持ちませんので、ご自分の責任の下、お試し下さいませ

 (1) 開発環境はMicrosoftの”Visual Studio”

 プログラムのコンパイル環境は、無償化して久しいMicrosoft社の”Visual Studio”が使えそうです。早速無償版をダウンロードしてインストール・・・とこの辺りは無難に済ませることができました。昨今は「オープンソース」の潮流も落ち着き、プログラム開発環境に費用を掛けなくて済むことが多くなりましたが、Microsoftも遂に負けた・・・といったところですね。

 初めてお目に掛かる開発環境はこんな感じです。



 まぁ一般的なIDEですから、PIC開発など経験された方には親和性はあるでしょう。デバッグも直視的にできますから、かなり便利なツール・・・これが無料とは、笑いが止まんねぇだな

 (2) クロック調整は掲示板通りでOK

 クロックの微調整は小川さんの言う通り・・・って開発者が仰るわけですから当たり前ですが、「Apb3.cs」の627行目を弄ります。



 この行の「100e6」がクロック周波数の100MHzを表しています。倍精度実数の変数に入れていることから、小数点以下に変分を入れて調整することになります。自分のAPB-3と部屋の温度(27.1℃)ではこのサンプルに書いた通り、「99.998810e6」という値で信号発生器モードで出力される信号がほぼ10.000000MHzとなりました。そして肝心のスペアナモードですが、SGから10.000000MHzを入力したらきちんと10.000000MHzで表示され、この変数の調整で上手くいくことが判りました。

 (3) スペアナモードの「dBm化」は対処療法的

 特に拘らなければいいんですが、高周波測定に限れば「dBm(@50Ω)」による表示がよく、この点を改良しました。


(「SpeanaView.cs」の1088行付近)

 測定された電力はソースコードのように計算されて表示されますが、元々のロジックではdB表示です。これを「dBm単位」にアジャストすればいいわけですから、まずはdB表示とdBm表示の差を「最新版の実行ファイル」で確認しました。

APB-3
信号発生器
表示単位
dBdBm
0dB-10.38-14.88
-10dB-20.39-24.89
-20dB-30.39-34.89
-30dB-40.39-44.89

 その差「-4.5」のようです。-40dB以下は測定値があまり安定しなかったため目視で確認しましたが同様のようです。この状態で他の改良を進めている途中、ちょっと気付いてSGの出力で同様に調べてみると、もう少し小さい「-4.3」でピッタリと値が合うことが判り、今のところ「電力単位の我が家基準」たるSGとの親和性で「-4.3」を採用しました。

 次にスペアナ表示画面の左上に表示される「MAG」の所に単位としての「dBm」を追加・・・これは簡単でした。単に「dBm」でもよかったんですが、まぁこれでOKとしています。


(「SpeanaView.cs」の134行目)

 結構上手くいったぜ・・・と思っていられたのも束の間、スペアナモードで重宝する「カーソル間のデルタ表示」が上手くありません。そこで、ちょっと無理矢理なソース修正。


(「FreqResponseGraphForm.cs」の623行付近)

 これは、カーソルモードと思しきフラグを使って「⊿」の場合は固定的に「dB」となるよう強制していますが、スペアナモードのみであり問題ないでしょう。

 これらのプログラム修正により「dBm化」させた画面イメージを以下に。ちょっと巫山戯て画面左上表示のプログラム名も換えています これで、最新の実行ファイルと同等な表示になりました。



 (4) 真打ちのクロック補正はテキストファイルで実現

 クロック補正ができることが判り、さらにスペアナモードのdBm表示が整ったことから、クロックの調整が動的にできるよう検討しました。当初は画面への入力フィールドの追加で考えましたが、かなり手を入れないと無理・・・ということで、テキストファイルに設定した値を拾ってそれを使って補正を行うようにしました。


(「Apb3.cs」の58行付近)

 これは、実行ファイルと同じフォルダ内に「clockfreq.txt」というファイルを用意し、そこにMHz単位の周波数を記入しておけば、各モードの測定開始時に補正されるようになります。但し、コメントにあるように「ファイルがない」という場合のエラー処理は入れていません、悪しからず。

 ファイルの内容は実にシンプル。



 小数点以下6桁まで(つまりHz単位まで)の補正値で十分に補正されます。また、ズレてきてしまったらファイル内容を書き換えて測定を一旦停止⇒再開すればその値で補正されます。まずまず便利ですよ

 以上、随分長い記事になってしまいましたが、どなたかの参考になれば幸いです。

修正 2016.06.26>
 dBm化の補正値について再度確認したら、我が家のSGとの差は-4.2ではなく-4.3の方が合っていました。関連部分を修正。
 なお、この改良は「10MHz」で調整しているため、APB-3の周波数特性(当該周波数での感度)により0.x dBの差異は生じます。

修正 2016.06.26>
 dBm化した後の画面イメージがありませんでしたね・・・追加しました。

APB-3の周波数安定度など

2016-06-23      
 何やら忙しくてブログの更新がなかなかできない状態に陥ってしまいましたが、ヘッポコ実験は密かに()続けています。先週末はAll Asianコンテストに出場したかったんですが、前日の晩に上司の追いコンがあって土曜日の午前4時半に帰宅・・・この時点で戦意喪失した上、起きたら二日酔いでスットコドッコイ親父と化し、漸く翌日曜日からちょっと時間の掛かる調べ物に着手しました。

 APB-3であれこれ測定する際、基準クロックのズレが気になることが以前から間々あって「何れは何とかせねば・・・」と思っていました。改めて調べてみると、やはり「初期変動が大きい」ということが判ってきました。

 APB-3を組み立てたことがある方はきっとご存じだと思いますが、FPGAやA/D,D/A変換のチップがかなり熱を持つため、秋月で販売している「クールスタッフ」等の放熱用の部材を使って上手いこと放熱しているものと思います。そして、そもそも小さなアルミケースに入っていることから、どれだけ上手い具合に放熱できたとしても、電源投入後にクロックの変動があることを"覚悟"でお使いでしょう。少なくとも細かい周波数分解能を必要としない(例えば、水晶発振回路の高調波の様子を観る)場合、あまりこの「クロックの初期変動」に気を留めないかも知れません。
 ただ、明らかに発振周波数が判っているものの測定などの場面で、APB-3の制御アプリに表示される周波数が何とも中途半端なことに気付いたり、何度も同じデータを採って比較したかったりすると、このちょっとした変動が気になることがあります。特に、周波数カウンタモードで被測定対象の変動を「Hz単位」辺りで観ようとすると、何の変動を測定したいのか判らなくなってしまいます。

 そこで、「どのくらい『暖機』すればそこそこマシな測定ができるのか」という部分の測定を、やや真面目()にやってみました。



 どうも我が工作室は、初夏から秋にかけての暑いときには結構暑くなると思いきや、そこそこの過ごし易い温度になったりするんで、様々な観測が必要なのかも知れませんが、とりあえず測定開始時点で26℃と28℃のときのデータ採りをしました。この手の測定では、本当は室温を一定にしなければならないんですが、それが一番難しいんであまり重たく考えずに測定。

 結果はグラフに全て詰め込んだつもりです。初期変動は30-40分くらいで安定し、その後は±2Hzから±3Hzくらいに落ち着いています。電源投入から安定するまでの周波数の動きはマイナス方向で50Hzちょっと動く模様。でもまぁ電源投入から40分ぐらい放っておけば、ある程度安定した測定ができそうだ・・・ということです。
 一方、室温に引っ張られている部分・・・2℃差で100Hzほどの変分が観られますが、安定に至る周波数のカーブはほぼ同じ・・・この辺りは当日の室温でのアジャスト云々と言うより、安定点に達したら一度発振周波数を測定してしまえば行けそうな雰囲気です。

 ・・・こんな風に纏めてはみたものの、「室温による安定点の周波数が結構違うこと」が気に入らず、このアジャストができないものかと考えたのが運のツキで、さらにこのダンジョンの深みに填まってしまったんです。続きは次の記事にしましょうかね

エアコン掃除@2016夏前

2016-06-12      
 今年の夏は「女の子」(La Niña)がいらっしゃるようだ。自分は、自然とは直接関係ない仕事をしているから「男の子」(El Niño)の方が過ごし易い夏を醸し出してくれて好きなんだが、様々な気候の変化を総合的に見ればそれこそ一長一短。即ち、男の子も女の子も来ない方がいいということになる。まぁ戯れ言は兎も角(って、この記事のカテゴは戯れ言なんだが・・・)、本格的な暑さを迎える前に・・・と、恒例のエアコン掃除を午前中に片付けた。

 このブログの記事を手繰ると、昨年秋(9/22)には「ヒュンヒュン音に耐えかねて」といった体でエアコン掃除した旨記事にしている。回転フィンに埃が溜まると回転が安定しなくなり「ヒュン、ヒュン・・・」という異音が出てきて家人からブツブツ言われる。これを、なるべく早めに解消するのが「世帯主の役目」というわけだ。

 作業は簡単で、やり始めてしまえば小一時間で済むわけだが、やれ丈夫だけれども重い椅子(エレピの椅子)を動かしたり、重曹を引っ張り出して「偽洗浄剤」を作ったりと、結構面倒な場面が思い浮かんで行く手を阻むわけである。それでも、今後はさらに気温が上昇してもっと辛い目に遭うこと必至・・・といわけで、重い腰を上げた次第。

 秋口の冷房から一呼吸置いて冬の暖房を支えたエアコン様・・・さぞかし「お汚れ」になってござるんじゃないかと思ったら、それ程酷い状態ではなかったこともあって、準備から後片付けまで40分程で完了してしまった。勿論、ここ数年の「慣れ」でさっさと作業できたことも一因だろうが、まずまず綺麗になった。

 ひとまず、世帯主としての責任は果たせたと思われる。

遂にSSN=0・・・

2016-06-05      
 ちょっとトピックス的に記しておきますが、一昨日辺りから「SSN=0」になっているようです。

 既に終焉を迎えたと思しきサイクル24ですが、幾ら何でも「急転直下過ぎ」と思えるんですが・・・。マウンダー極小期の再来のような噂も聞きますが、果たして今後どうなっていくのか大変興味があります。

 無論、そんなことにはならない・・・サイクル25には「真っ黒けの太陽」を期待するQRPerであることも付け加えておきましょうかね

新入りSGの周波数精度

2016-06-05      
 今日はとある実験をしましたが上手くいかず、多分その失敗談を書いても意味が無いんで(きっと、他の方法で片付けるんで)記事にはしないことにし、またしても、直前記事に引き続いて「自分用備忘録」を記します。お時間のない方は、読まない方が宜しいですぜ

 新入りSG(HP-8648Bの初期版)は、購入時の説明にオプションとしてパワーアップモジュール(1EA)と高精度発振基準(1E5)が入っているということでした。前者は確かに入っているようで1GHz以下は+20dBmまで出力できているようですが、後者は確認できずにいます。そんなに周波数精度を要求するつもりはないんですが、このオプションが付いているなら付いているでちゃんと確認したいわけです。
 一方、心臓部のTCXOを「最近の精度」にすべく移植した中古周波数カウンタは、温度監視をすることである程度以上の精度確保ができるように仕立ててあります。
 この周波数カウンタと新入りSGは共に、基準クロックとして10MHzの入出力を持っています。ですから、「結構正確な10MHz」を確保できれば両装置共、それに追随できるわけです。
 そして手持ちのOCXOは10MHz、それを校正するために必要なGPS関連のデバイスまで揃っていますから、かなり真っ当な測定システムが出来上がっちゃうじゃん・・・ってな寸法になりゃしませんか こうなると、今いま製作途上のあれやこれを置いても、この測定システムを完成させたいというのが親心(はぁ)。

 でもまぁ、遠回りばかりもしていられませんので、とりあえず中古のカウンタでSGの周波数精度と安定度を測ってみました。



 やっぱ、このSGはでかいなぁ・・・と、このスナップを撮っていて改めて思いましたが、ファンの音を奏でつつ100MHzを発振中です。これを周波数カウンタで測定・・・なんですが、このカウンタは「十分な暖機」が必要で、心臓部付近の温度が36度を超えるまで待つ必要があります。このスナップでは判り難いですが、ひとまず37度時点でシャッターを押しました。100MHzに対して13Hz余り低いようです。
 この周波数の関係で小一時間は監視しましたが変動する感じはなく、0.1Hzの部分が時々動く程度・・・このSGの中の基準発振もかなり安定していることが判りました。

 今回の測定では、周波数カウンタの基準発振精度を信じた形で終えています。10MHzでは1Hz程度の偏差となりますね。最終的にはGPSを使った基準に持っていこうと思いますが、当面はこの程度でも十分・・・とは言え、気になったらもう少し考えて、前述の測定システムとして追い込んでいきたいと思います。


ミニ・パワーメータの改良

2016-06-04      
 このところ新入りSGに絡む測定をしていてミニ・パワーメータを使う機会が多かったわけですが、その間に気になった点を改良しました。パワーメータ自体の機能は限られていますから、これが最後の「てこ入れ」になると思うんで、その辺りをざっと纏めておきます。即ち、全く以て「自分のための記事」です、悪しからず

 まず、AD8307の切片をSGの出力電力を信じて直しました。この修正はソフト上の定義の修正になりますが、以前に固定ATTを使ってチューニングした際の-85.4dBmから-86.2dBmに変更しました。この修正を行ってから先週末に行った測定結果を導き出しましたが、結構いい線いってそうです

 もう一つの改良は、省エネ機能の見直しです。元々の仕様は、3分程同じ値の測定が続いたら全LEDを消し、最上位桁のドットが約1秒刻みでフラッシュして待機し、前面のプッシュスイッチが押されると測定を再開するというものです。高輝度7セグのLEDをダイナミック点灯・・・といっても、やはりLED点けっぱなしでは電池消耗が早くなってしまいますからね

 さて、この仕様の肝は「同じ値が継続しているかチェックする」という部分で、これを「±0.2dB以上動かなかったら」というロジックにしてありました。さらに表示もそのロジック通り・・・要は測定開始時点の値から±0.2dB以上動かないと表示値が更新されないという仕様になっていました。
 これは、デジタル表示の欠点である「最下桁のチラツキ」に対応するために余り深く考えずにそうしていましたが、最下桁の分解能・・・0.1dB単位の変化が見えなくなってしまいます。
 そこで、切片を修正するためにプログラム書き換えが必要になったことから、序でにこのアルゴリズムを見直し、同値継続か否かの判定処理と表示処理を分離しました。さらに、測定周期を0.3秒刻みから0.6秒刻みに、同値の継続による消灯も3分から2分に変更し、これで漸く「±0.1dBの分解能、同値の表示が2分続いたら消灯してドットフラッシュ」というまずまずの仕様になりました。

 久々にフタを開けたんでスナップショット



 PICの抜き差しの際にはLEDとの接続に使っているフラットケーブルが邪魔になるため、14ピンコネクタを抜いて行います。この辺り、基板製作時のレイアウトがモノを言う部分ですが、割と上手く作ったなぁ・・・と自画自賛

 このミニ・パワーメータのフタは、これで漸く「電池交換」のときしか開けないようになったと思います・・・故障しなければね
Calendar
05 | 2016/06 | 07
Sun Mon Tue Wed Thu Fri Sat
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 - -
New !
Category
Comments
Monthly Archives
Track Backs
Counter
Sunspot Now !

 


Survey Results

 

Profile

どよよん無線技士

Author :どよよん無線技士
こおるさいん:JM1DPL

アパマンというハンデにさらにQRPまで課し、失敗連続のヘッポコリグや周辺機器の製作・・・趣味というより「荒行」か!?

メールは「JARL経由」でお願いします。

Links
Follow me !
RSS Links
QR Code
QR