2019年11月24日日曜日

NanoVNAが来た

 以前からVNA(Vector Network Analyzer)が喉から手が出るほど欲しかったが本物はやたら重くて高価、マンション暮らしでは置く場所も無いためオークションでも手を出さなかった。一方有志にて近年の技術で集積した幾つかの小型VNAが発表されていたが、すでに頒布が終わっていたり、測定周波数の上限が私の希望する3GHzまで計れないため対価的に釣り合わず二の足を踏んだままだった。
  そんな中、偶然YouTUBEでNanoVNAの存在を見つけた。調べてみたらその道ではすでにかなり有名になっているようである。しかも価格も超手頃(\6K~)、Amazonでも取り扱っているため上限周波数(900MHz)には目をつぶり早速購入した。

 届いたVNAは中華物でクレジットカード大(厚さ15mm程度)の本体とUSBケーブル、SMA-M SMA-Mケーブル(33.5cm)×2、較正用負荷(解放、短絡、50Ω)、SMA-F SMA-F中間コネクタ、そして収納ケースだけで説明書が無い!!! メーカー名も装置の型番も無い。
本体は基板3枚で構成されており、表と裏の基板には部品は搭載されておらずシールドの役目を果たしているようだ。真ん中の基板は3層のようで真ん中にシールドの役目のGNDを挟んでいると思われる。横にはSMA-Fコネクタが2つありそれぞれCH0とCH1と記されている。そのほかUSB-Cコネクタと電源スイッチ、レバースイッチがある。

 ネットで検索するとNanoVNAに関する雑多な情報が出てくるがどれが本家か分からない。Amazonで色々売ってるが型番が無いので私が入手した物とハード的に同じなのかも分からない。
 そんな中で簡単な説明書(User Guide日本語訳)を見付けた。その最初に「edy555さんの資料に基づき(hugen79版の)NanoVNAをデザインした」と書いてある。それでedy555さんを調べると、私が以前キットを購入した事のあるTT@北海道さんではないか。要するにTT@北海道さんが設計・製作したVNAキットが元になってるようだ。そしてhugen79さんが回路に手を加えバッテリー管理を追加しPCBボードを再設計したらしい。図面やソフトが公開されているから中華物のクローン(コピー商品)が出回ってるのだろう。調べると高周波部のシールドの有無やバッテリーの有無等のバリエーションがあるらしく、私が入手したものは両方とも「有り」だった。そうは言っても基本的な回路は同じでファームウェアは共通に使えると考えたい(ただしNanoVNA-Fは別物らしい。少なくともMPUが違う)。

  とりあえず説明に従ってキャリブレーションを行ったが、今後色々試してみたい。とくにスミスチャートが見えるのは素晴らしい。表示色は黄色がS11の振幅、緑がスミスチャート、青がS21の振幅、紫がS21の位相のようだ。振幅は対数スケールである。なおS11やS21の詳細についてはネットで「Sパラメータ」を検索されたい。蛇足だがS11はCH0から出力された信号が反射されてCH0に戻ってくる割合、S21はCH0から出力された信号がCH1へ届く割合で何れも複素数(振幅比と位相差を表す)である。

 VNAは必ず測定に使うケーブルを接続した状態で較正する必要がある。900MHzだと20cm延長しただけでスミスチャートを1周するくらい変化するし、長さ2cm程度のSMA中継コネクタを追加しただけで結果が異なる。較正後に短絡したコネクタを接続すると Γ=0 となり、50Ωのコネクタを接続すると Γ=1、解放したコネクタを接続すると Γ=∞ となって機能は正常のようだ(ちなみに Γ はガンマと呼ぶ正規化インピーダンスの事で通常50Ωを基準とした値(複素数)である)。この写真は最初に較正したあと付属のケーブルの先端をオープンにした状態で撮ったもので、本来は Γ=∞ となるはずだが Γ=2 あたりに集中している。これは較正の前にパラメータをリセットしなかったため誤って較正された時のものだ。
 〔参考〕スミスチャートは周波数によって変化する Γ を特殊な座標系の複素平面上にプロットしたものだ。この Γ を使うと(複素)反射係数 r は r =(Γ-1)/(Γ+1)で表され、r の大きさは円の中心(r=0)から外周(|r|=1)まで同心円状に広がる。そして定在波比は SWR=(1+|r|)/(1-|r|) で求まる。つまり円の中心にあれば整合( SWR=1)、 外周上にあれば全反射( SWR=∞) となる。

 較正がうまく行ったので次はファームウエアのアップデートに挑戦した。最初に搭載されていたファームウエアはバージョン0.1より前のものでファームウエアを書き換えるDFU(Device Firmware Update)モードの設定がメニューから出来ない。DFUモードにするためにはP1ジャンパーをショートした状態で起動する必要がある。そこでDFUモード設定用ジャンパコネクタとバッテリー電圧取り込み用ダイオード(D2)をNanoVNAの基板に半田付けした。

P1は高さ6mm程で上の基板にぶつかるため5mmほどにカットした。それでもジャンパは挿せないが必要な場合は外からワニ口クリップでショートさせる。D2はMPU(STM32)のVBAT端子にバックアップ電源を供給するのに使い、100mV供給すれば画面で電池マークを表示するらしい。一方バッテリー電圧低下は別途電源ランプのフリッカーで知らせるようになっているのでこのダイオードの種別にあまり神経質にならなくても良いようだ(最新のファームウェアでは画面にバッテリー電圧を表示でき、さらにD2の電圧降下分を補正できるものもある)。
 次にPCにDfuSeDemoをインストールしてNanoVNAのファームを出たばかりのバージョン0.5.2にアップした。しかし何度較正してもグラフがメチャクチャで話にならない。
 
  バージョン0.4.0に落としても同様であった。
 結局バージョン0.3.1まで落としたら一旦はまともに動くようになったが色々他のバージョンを試しているうちに再びダメになった(下図)。
これは一見まともそうだがスミスチャートが中心に縮まって全く広がらない(S11が低い)。コピー商品には性能を満たさないものも含まれているらしいので最初は本家とはハードウェアが違うのかもしれないと考えたが、過去にうまく行ったこともあったからソフト、特にコンフィギュレーション情報の問題だろう。

 ここに同様の事例が報告されており、作者(edy555)から「try command 「clearconfig 1234」after flashing」とのコメントが掲載されている(後で分かった事だがここで言うflashingとは(洗浄する事ではなく)ファームウェアを書き込む事らしい)。ネットで検索するとUSB接続でコンソールコマンドが使えるようだ。私の場合NanoVNAはCOM5に接続された。
TerraTermでCOM5に接続してみると、  などと多くのコマンドが使えるようだ。
 そこで 「clearconfig 1234」を入れながら何度かファームをアップしてみたがダメだった。やはりクローンのハードに欠陥があるのか、或いはclear出来ないコンフィギュ情報があるのか(初期のバージョンでは clearconfig の代わりに DMR-CLEAR_MEMORY_DFU.dfu というファームを書き込むことでコンフィギュレーションを初期化したみたい)。
  さらに検索すると他にも事例が報告されており、色々試した結果、最後にQRP73氏が公開している「NanoVNA-Q-0.4.1-5bc0bde」というファームを見付けた。氏曰く「It has extended hardware check and if there is some problem with your hardware you will see it on display」という事でハード(si5351というPLL)のチェックを入れたファームみたいだ。安物のsi5351では300MHzまで発振できないらしい(si5351のカタログ上の上限は200MHz)。とりあえずこのファームを入れることでバージョンを 0.4.1 に上げることができた。
 その後 NanoVNA-Qは0.4.2、0.4.3、0.4.4とバージョンアップされたが何れも駄目で結局0.4.1に戻して使っている。折角なら最新バージョンを動かしたいので、いずれソースコードを見ることになるのかなぁ。或いはチェックで撥ねられた不良MPUを使っているのか。

 NanoVNAの測定上限は900MHz迄という仕様だが、バージョン0.1以降のファームを入れると上限周波数は1500MHzまで設定できる。しかしキャリブレーションしても1200MHz程度迄しか安定して計れないようだ。

 手持ちのエアバンド用受信フィルタ(AORのABF128-SMA)を測定してみた。中心周波数は116MHz付近にあり、その辺で整合しているようだ。
 
 ところで以前AMAZONで購入した中華物の黒色の高周波ケーブルはSMA付きの単なるシールド線だった経緯があるので今回添付されている名無しのケーブルが気になった。試しにGigaSt-v5で手持ちのHPのケーブルと比べてみると2GHz以下では1dBも差が無かったので良しとしよう。しかしそのうちテフロンケーブルに変えるつもりである。
良いおもちゃが手に入った。