トップメニューへ

GPS受信機、「NEO6M」の概要

非常に小型で安価なGPS受信機です。アンテナも付いて759円(Amazon,June/2020現在)
の安さ。衛星の捕捉能力や性能は他の割高のGPS受信機と比べても遜色ありません。
パソコンで少しばかりの設定を行えば世界標準の10KHzが得られます。
この10KHzを用いて手持ちのクリスタルの水晶発振の発振周波数をロックできます。
今回は10MHzの水晶発振子をロックアップしてそれを分周した100KHzと10KHzも
得ようとする計画です。
超低周波まで伸びているSSB信号を受信あるいは送信する場合、数ヘルツの周波数ずれ
も非常に違和感のある音声になってしまうことを考えれば、音質云々するOMさんには
周波数を世界標準に合わせることは1丁目1番地の仕事になる筈です。
写真は送られてきたセットです。一見「大丈夫か?」のような外観ですがアンテナもなかなかの性能でちょっと窓際に設置するだけで
10個程度の衛星を捕捉できます。ポールに立て上げ空を眺望できる位置にある別のGPSアンテナと比べても遜色ありませんでした。
ちょっと驚きです。ケーブルが細いのでハンダの細工がちょっとやりにくい難点がありますが、、、。

NEO6Mから10KHzを得るための準備

NEO6Mの設定やデータの閲覧には専用のアプリケーション「u-center」が必要です。
この「u-center」をクリックして、windows用のアプリケーションをインストールして
ください。(June/2020現在、v20.01がアップロードされています。)
またPCとの通信にはUSB-シリアル変換器が必要です。SDR-3のときにプログラムの
インストールで使用したものと同じものです。(左の写真を参考に)
NEO6Mへの電圧供給は5Vを選択します。(NEO6M本体に5Vを3.3Vに変換する3端子
レギュレータが内臓されているので5VでOKです。)
【注意】接続ターミナルは4本で、両端にVcc と GNDがありますがプラス5Vと
アースを逆につけないように!間違って逆に接続するとNEO6Mをお釈迦に
してしまいます。また配線はクロス配線です。RXDはTXDにTXDはRXDに接続願います。NEO6M基板に小さなアンテナコネクターが
付いていますが我々はこのようなアンテナコネクターのオスは持っていないので、やむを得ず裏面のアンテナ端子に1.5D2Vのような
ケーブルをハンダ付けして使用します。アンテナは通常窓際など、空が見える位置に設置します。アンテナの状態にもよりますが
通常受信状態に入るまでには2~3分かかります。じっくり待ってください。
下は u-center の起動画面です(この画面では、comポートを設定してPCとの通信が成立しています)。まず、
上部のメニューから「Receiver」➡「Port」の順に進み、COMポートを指定します。PCとNEO6Mの通信が完了するとこれで下の写真の
ように右側のコラムでは衛星の国籍(主に米国)や受信感度などを示す棒グラフなどを表示し始めます。メニューはいろいろありますが、
上部のメニューから「View」➡「Sky View」をクリックすると自分の位置を中心に、数種類~十何種類かの衛星の軌道を表示します。

「View」➡「Text Console」や「Binary Console」を選ぶと下のようなNMEAデータが排出されます。最終的にセットを仕上げる段階で
このデータをPICが拾い上げLCDに表示して受信状態の確認に使います。
(NEO6Mの状態を確認するのにいちいちPCを立ち上げる訳にはいかないので、、、)。

この状態ではNEO6MのGPSモジュールはLED(緑)が1秒間隔で点滅しているはずです。本体のタイムパルス出力が1pps(1Hz)に設定されて
いるからです。このままでは位相比較につかえないのでパルス出力を10KHzに変更します。
上部メニューから「View」➡「Configuration View」と進み、左側のメニューから「TP5(Timepulse 5)」をクリックすると下の
設定画面になります。Frequencyの窓は 10000Hz に、その下の Duty は50.000000%に書き直してください。これが済むと一番下の
メニューの左から3番目「Send」をクリックして設定を完了します。今まで1秒間隔で点滅していたLEDが連続点灯になったと思います。

設定が完了しましたが、このままでは電源を落とすと設定が消えてしまいます。EEPROMに書き込んで設定を保存します。
上部メニューから「Receiver」➡「Action」と進み、そこにある「Save Config」をクリックして記録を残します。一度NEO6Mの
電源を落としUSBシリアル変換器も外して、再度電源を入れたときにLEDが連続点灯していれば設定はすべて完了です。
10KHzが出力されています。

GPSでロックアップされた標準発振機の作成

まず回路図面を表示します。NEO6Mから10KHzを取り出す場所は左写真のように
点灯しているLEDのとなりの「102」と表示された1KΩ抵抗にハンダ付けして
取り出します。アースは基板の裏面から取り出しました。
回路はまず74HC04で10MHzを発振させます。04の1番、2番ピンにぶら下がっている
Cの値(この場合は33pと27p+30pトリマーコンデンサー)は水晶により多少の値の
変更があります。SDR-3の項目でも記述しましたが、バリキャップ(この場合 1SV103)
とC(10uF)、R(75KΩ)を設置したらここに2.5Vを供給して(Vccアース間に10KΩを2個
シリーズに接続すれば、その中点は2.5V)発振周波数が10MHzプラスマイナス数百Hz
に追い込んでおけば実際に10KHzで位相比較したときにCの変更は必要なくなります。
10MHzは74HC390での片回路で1/10して1MHzに変換します。
さらに390のもう一方で1/5の200KHzに分周します。次は74HC74により1/2に分周して
100KHzを得ます。1/2分周によってデューティ比が50%になっているのでこれをコネクター経由でバックパネルから取り出せば他の
発振機で100KHzで位相比較しているものがあれば使用可能となります。この100KHzは次に74HC4017で1/5に分周して20KHzに
落します。74HC74の残り半分の回路を使用して1/2分周。最終的にデューティ比50%の10KHzを得ます。

位相比較はTC4030のエクスクルーシブ・オアーを1回路使用します。以前に盛んに利用したTC5081APないし5081BPは製造中止に
なっていてwebページを当たってみると e-bay で2千数百円で販売されているのを見つけました。とても買える値段ではありません。
このTC4030は秋月電子で1個40円で販売されています。

NEO6Mからの10KHzと、このセットの10MHzから分周してきた10KHを位相比較して、
あとはループフィルタ(10KΩ&10uF+0.1uF)を通してバリキャップに電圧を加えます。
出来上がった10MHz、100KHz、10KHzは余っている74HC04のインバータをバッファー
として利用して外部に取り出します。
左がこの回路を実際にユニバーサル基板に組んだ写真です。
一番左に74HC04、中央は上から74HC390、74HC4017、TC4030の順、右端は74HC74
です。

内部全体の写真です。手前に見える大きなICは PIC 16F886 です。LCDを抱き込むように表示基板を設置しています。
5Vの3端子レギュレータは基板の陰に隠れていますが、ケースの底板にビスナットで直に留めています。

ケース前面の写真です。ケースは IDEAL の CE-20 と言う製品です。今回はLCDの窓の配置もレタリングも”いまいち”でした。
恥ずかしながら公開します。出来上がったその日に撮影しているので張り付けたフィルムに微妙にエアーが封入されています。
通常、数カ月経過すると自然と消失します。

使用している LCD は秋月電子で販売されている16文字2行の「SC1602BBWB」です。その他PIC 16F886 や20MHzのセラロックも同店で
購入しています。最後にこのNEO6Mに対応したピック (16F886) 用のプログラムをアップロードしておきます。初期バージョンにマイナー
バグがありました。修正してアップロードしています。
「 NEO6M20200701 」(クリックしてダウンロード、解凍してHEXファイルをPIC 16F886 に書き込んでください。)
PICへのインストールが難しい方は、まずメールで確認した後に、PIC16F886と切手を貼った返信用封筒を同封してお送りくだされば
書き込みさせていただきます。

   

電源を投入した直後、あるいはアンテナの
調子が悪い時は左の表示が出て
待機状態になります。
NEO6Mが衛星を捕捉して時刻その他を
受信できるようになると右の写真のように
表示されます。TSは tracked satellite、
つまり捕捉されている衛星と言う意味で
現在は9個を捕捉し、データを受けているという意味になります。アンテナの具合にも依りますが衛星を捕捉するまでは数分かかります。
日付はうるう年も勘案しています。うるう年の計算や曜日の算出は多少複雑ですがプログラムは正確に日付、曜日を表示します。
以上です。(June/08/2020 JA3GSE M.Tsuji )

Si5351Aによる局発とVFOの2つの信号を発生(シングルコンバージョン送受信機)

長い間 AD9851 というDDS IC を愛用
していましたが、発信周波数の設定の仕方が
全く異なる「 Si5351A 」を実験的に動かして
みました。このホームページの別の項目で
述べているデジタルトランシーバー SDR-3 でも
この石が使われていて多少の興味をもって
いたことも実験の動機に繋がっていました。
初めての方には、「え!?、こんなに小さいの」
と多少驚かれるかも知れません。
写真左が秋月から発売されている25MHzの
水晶が装着済みのモジュールです。これは
0.25ピッチのユニバーサル基板にそのまま
収まるようにピン足も付いてきます。
右は Si5351A の石そのものと MSOP →DIP
の変換基板です。
ICはずいぶん小さいので変換基板に装着する
ときは十分注意して半田付けてください。
足は合うソケットなく、 10P なので別に
「丸ピンIC連結ソケット(両端オス)」と
シングルラインの丸ピンICソケットが要ります。また秋月モジュールでは25MHzの水晶がぴったりと25MHzの標準周波数に合っていません。
SSBのVFOとして使用する場合はGPSでロックされた、あるいは恒温槽できちんと周波数管理された25MHz あるいは 27MHzを使って
動作させることが必要になってきます。まずは秋月のモジュール(500円)で製作、性能イメージを掴み、水晶や外部からの
周波数ロックが出来た 25MHz (または27MHz) のクロックを用意できた暁には 10 ピンの 53512A 単体(150円)を使って完成品とする
方法でやればと思います。次に、このVFOの概略を理解して頂くため出来上がりの写真からお見せします。

左はLCD表示器を取り外した基盤の配置です。28Pの16F1938と74AC14の間には8ピンICが隣り合って二つ見えますが
下側は PCA9306 という I2C 信号を5Vラインと3.3Vラインの間で信号を橋渡しをする双方向通信 IC です。この PCA9306 には
SCL と SDA の回路にプルアップ抵抗が装着されていますので PIC の RC3 RC4 には10KΩのプルアップ抵抗の設置は
必要ありません。ただし、すべて3.3V仕様で回路設計する場合は RC3 RC4 にプルアップ抵抗を忘れないようにしてください。
その上(ど真ん中)が秋月のSI5351A モジュールです。拡大すると小さな 25MHz の水晶片が見えます。上の 74AC14 の左にあるICは
Si5351 そのものを変換基板に付けたものです。27MHz水晶も横に付いていますが、いずれ外部からGPSでロックされた27MHzを
入れるので最終的にはこの水晶は不要になります。また2個の Si5351を同時には動かせませんので27MHz水晶の場合は秋月の
モジュールはソケットから抜いておきます。7個の押しボタンはメモリー用です。この辺の構成は次の回路図面を見てもらえれば分かります。
真ん中の写真は実験途中の様子。LCDを載せると一つの Si5351A と 74AC14 が隠れます。
メモリー設定など何も操作していない「さら」の状態では電源オン後 送信周波数 7.000,000 、STEPは 3KHz、 メモリーも設定されて
いないので右上の「?」で立ち上がります。実験中のため私のコールサインが入っています。最終的にはその場所に「Si5351」の文字を
入れることにしました(右端の写真)。
右端の写真が A ボタンにメモリーさせた1例で、
3602.000 に周波数を合わせ、Aボタンを長押しメモリーは「A」に 3602.000 を記憶させています。
電源起動時はAメモリーから読み込みますので普段よく使う周波数を「A」にメモります。周波数ステップも 長押しでメモることが
出来ます。ステップは「3K、1K、100Hz、10Hz、1Hz、10K、100KHz」が設定されていて STEP ボタンを押すたびに
「3KHz → 1KHz → 100Hz → 10Hz → 1Hz → 100KHz → 3KHz 、、、」のように変化します。

     

次は、発振周波数の PURITY と精度の検討です。
GPSロックされた27MHzを使い、第一局発を455KHzにした例です。目的周波数獲得のためヘテロダイン周波数は送信周波数より上側の
ものを使います。デフォルトで 7.000,000 を送信するためには実際にはVFO信号として第1局発の例えば 455KHz を加えた
7455,000 (7455.000 - 455.000 =7.000,000) を発振します。
図中左はVFO信号を周波数カウンターで計測した写真。カウンター自身も異なるGPSで周波数管理は出来ているので Si5351 の周波数も
標準周波数にピタリと合っています。また周波数の変化はしない固定されている第1局発の 455KHz も周波数ずれはありません。
下のスペアナ写真は Si5351 のpurity をみているのですが周波数可変出来るVFOも局発信号も近接の位相ノイズはとても良いです。
1MHzに拡大(下段中央)するとややスプリアスが見えますがそれでも -80dB 程度はありそうで合格ではないかと思います。
但し、このデバイスの出力信号は矩形波です。スペアナの SPAN を 10MHz くらいに拡大しますと基本波の奇数倍、偶数倍の
周波数が多数出てきます。この辺はDDSで発生させたサイン波出力と異なる点です。
しかしミクサーの局発に矩形波を入れることは何ら問題ではないので出口でのBPFがしっかりしていれば問題無いでしょう。
(スプリアス波と逓倍波とは出現する理由が根本的に異なります)

   
     

局発を455KHz、または1.7MHzにした理由。455KHzに関しては古い時代にはバラモジにしろフィルターにしろ、455KHz周囲を扱う
パーツが多く未だに455関連ジャンクが多いだろうと想像したことが動機です。1.7MHz にした理由は、今頃の時代アナログでやるなら
PSNを使ってSSBを発生させるOMが多く、もしPSNタイプにするならばクリスタルにしろセラミックにしろ、メーカー製の455メカフィルとか
8.83MHz水晶フィルターとか、周波数が固定されたフィルターとは縁が切れる訳で、SSB信号を発生させるバラモジはどの周波数でも
よくなります。1600KHzまでは中波の放送がありますし、1.8MHz帯ではアマチュア無線バンドがあります。
従ってどちらにも関連しない周波数が良いかと、「 1.7MHz 」を選びました。
こうすること(第1局発信号、言い換えてバラモジ周波数をある程度高くすること)で、局発信号とVFO信号をかけ算した場合イメージ
周波数がかなり「ホンちゃん」とはかけ離れバンドパスフィルターの製作が容易になります。
例えば7MHzを送信するとして、 455 の場合 VFO = 455(バラモジ) + 7000KHz(送信) = 7455KHz(発振)となり
ミクサーでは 7455 + 455 = 7910 および 7455 - 455 =7000 の二つのSSB信号が発生、キャリアー漏れを加えれば3つの信号が
発生します。必要な7000の信号だけをBPFで取り出さなければいけませんが、7910はイメージ周波数で(USBになっています)
これがアンテナから発射されては困るのでこのミクサーの後でバンドパスフィルター(BPF)を入れる訳です。
正確にはキャリアーの7455KHzとイメージ信号の7910KhzもBPFで除去しなければいけません。7455KHzはミクサーでのキャリアーヌル
である程度減衰させられますが、910KHz離れたUSBを消すには少ししんどいです。
LCフィルターで作成するBPFではこれらの要求を満たすBPFを作るには素子も多くなりあまり現実的ではありません。
この点、第1局発(バラモジ)を 1.7MHz にしてやれば
VFO発振周波数 = 7000 + 1700 =8700KHzになり、8700 + 1700 = 10400(イメージ)、8700 - 1700 =7000(送信)、
8700(ミクサーの局発)で、不要なイメージ信号(USB)は 3.4MHz も向こうの 10MHz 以上になり、局発(8700)も7000から
1.7MHzも離れているのでBPFの設計製作も楽になります。
さて、
回路図面です。デジタル回路ですから配線間違いが無ければ正常に働くはずです。注意は 74AC14 のインバータは3.3Vで動かせて
ください。Si5351Aが3.3Vですので5Vの信号を送ると動作異常が起こるかも知れません。5V仕様の SC1602 LCD を使いたかったので
5Vと3.3V混在になってしまいましたが、3.3V仕様の SC0602 が手元にあれば全体を3.3Vで仕上げることも可能かと思います。
74AC14を入れた理由はGPSでロックされた27MHz発振機が5V仕様だったため、SI5351の入力としては3.3Vで働かせた74AC14で安全弁を
働かせたという意味です。さらに14のノイズに強いとされるヒステリシス特性を利用して余計なスプリアスを除く意味もありました。
(ほんまかいな??)でも確かにスペアナで観察すると 7404 よりは良さそうです。

出力のバッファーとして使った 74HC04 と 74AC14 を比較してみました。大きな違いはありませんが 7414 にすると微妙にスプリアスが
少なくなるようです。左が04のバッファー、右が14のバッファーです。右図では4MHzくらいのスプリアスが消えています。他の飛び出しも
多少減少しているようです。しかし高速過ぎる 74AC14 しか手元に無かったのでベースラインがやや高めです。
レギュラータイプの14を使えば「草むら」もう少し落ち着くはずです。

   

Si5351 というクロックICは今までとは発想の異なるユニークなアルゴリズムで設計されています。以前のAD9851のようなDDSでは
32ビットの周波数データと8ビットの設定用データの40ビットをシリアルで送信してやれば良かったのですが、Si5351では
入力クロックである25MHz(または27MHz)を、目的の周波数に合うように入力クロック周波数をPLLを利用して逓倍し
600~900MHzの範囲の周波数を発振させる。さらに目的の周波数に合うように分周比を計算して分周し最終的に目的の周波数を得る。
秋月の説明書には
fvco = fxtal * ( a + ( b/c) ) としてPLL周波数を計算すると記載されていますが、肝心の a, b, c の計算方法が提示されていません。
続いての分周方法として a, b, c の値から P1, P2, P3 を求め
MSNA * P1[17:0] = 128 * a + Floor( 128 * (b/c) ) -512
MSNA * P2[19:0] = 128 * b -c * Floor( 128 * ( b/c ) )
MSNA *P3 = c
これらの値をMSNAの場合はレジスター 26番から33番まで、MSNBの場合は34番から41番まで I2C で転送します。まさに逆の発想と
言うか、発振させたい周波数が決まると25MHz (または27MHz) を逓倍する数値( 25 * (計算数値) = 600MHz ~ 900MHz )と
その周波数を分周する数値を計算し目的を得る方法です。
fout = Fvco / ( a + ( b/c ) )
逓倍と分周に関わる a, b, c の数値を決める方法は多少ややこしく、ここでは割愛させていただきます。
(この Si5351 には入力すべきレジスターが 1 ~187 あります。このレジスター群に周波数に対応したデータを入力して逓倍数
と分周数を決めています。)
興味のある方は https://www.silabs.com/documents/public/application-notes/AN619.pdf から「 AN619 」をみてください。
英文63ページにレジスターマップ詳細が解説されています。

SSBの発生の為の90度位相のずれた2つのキャリアー( 所謂RF-PSN、正式には直交移相器 )は「7474」を使って
ある周波数を 1/4 にする過程で発生させられます。周波数の逓倍に特化したデバイス「 ICS512MLF 」という IC がありますが
それならば最初から局発の4倍周波数を出してやれば事は簡単、7474 1本でこと足ります。局発 455KHz の場合は1820KHzで
1700KHzの場合は 6800KHzを74HC74で 1/4 分周して90度位相差のある二つのキャリアー(IQ信号)を得ます。これでPSN
タイプのSSBジェネレーターの基本はほぼ出来上がります。
最下端のインストールプログラムから作ろうとするセットに対応した HEX ファイルを選んでください。
さて、74HC74 の話題がでたついでに全てのデバイスを3.3Vで動作させる回路図面を次にお見せします。秋月電子では3.3V仕様の
LCDも発売されているので3.3Vに特化した方が事は簡単になります。7474でIQ信号を作る回路も追加しています。

PIC16F1938にインストールするプログラム

クリックしてダウンロードしてください。秋月の Si5351モジュール を使う場合は 25MHz です。25Mと表示されている zip ファイルを
インストール願います。なお、送信周波数(表示周波数)は1MHz~30MHzに限定しています。

25MHzのクリスタル又は25MHzの外部クロックを使用する場合
25MHzのXTALを使用し第1局発を 455 KHz にする場合のプログラム。Si5351A_16F1938_455K_25M.zip
25MHzのXTAL、第1局発の455KHzを4倍1820KHzにして出力するプログラムSi5351A_16F1938_455K_1820_25M.zip
25MHzのXTAL、第1局発を1700 KHzにする場合のプログラム。Si5351A_16F1938_1700K_25M.zip
25MHzのXTAL、第1局発の1700KHzを4倍の6800KHzで出力するプログラムSi5351A_16F1938_1700K_6800_25M.zip

27MHzのクリスタル又は 27MHz の外部クロックを入力する場合。
27MHzのXTALを使用し第1局発を 455 KHz にする場合のプログラム。Si5351A_16F1938_455K_27M.zip
27MHzのXTALで第1局発を 455KHz の 4倍 1820KHz にするプログラムSi5351A_16F1938_455K_1820_27M.zip
27MHzのXTALで第1局発を 1700 KHz にするプログラム。Si5351A_16F1938_1700K_27M.zip
27MHzのXTALで第1局発の1700KHzの4倍の6800KHzを出力するプログラムSi5351A_16F1938_1700K_6800_27M.zip


【Si5351を使用して作製したHF送信機。JH2KEW 局 作製の一例】

このクロックジェネレータの周波数安定度や位相ノイズ、スプリアスなどは一応チェックしましたが私の場合、未だ現実の送信機には
発展していません。実際にジェネレーターなどを製作されたOMには使用感や不具合など、お知らせいただくと大変有難いです。

下の写真はいつも 3665KHz でQSOして頂いている吉田OMが作製されたSi5351(GPSでロックした 27MHz クロックを使用して、
第1局発は455KHzの構成)で作った、アナログPSN方式のSSBジェネレーターです。

   

紹介したSi5351Aを使用して実際に 3.5-3.8MHz帯の送信機を作られた
JH2KEW 氏のセットの写真を氏の了解を
得たのでアップロードします。
詳しくは夜間に3665KHzでQRVされて
いるのでご本人からお聞きください。

VFOとローカル発振に使用している「IC」は1個が安価な150円ではあるものの、高価な 「DDS IC」を使用したセットとIMD、
スタビリティ、S/N比など全く変わりはないとのレポートを頂いています。