GPSを試用する6

20140328追:
最強のGNSSモジュールGms-g9をゲットせよ!


今年に入ってからGARMIN社のGPSレシーバーについにQZSS/GLONASS対応の機種が
出てきました!みちびき(QZSS)ではGPS補完信号のみ対応とのことですが、頭上にGPS衛星
がひとつ増えるというのは心強いことだと思います。ねむいさんもがーみんほしい…

さて、去年11月下旬以来私の方もみちびき対応のGPSモジュールPA6CをSTM32Primer2
を使ったGPSロガーの心臓部として使用しています。そして厳しい環境で功徳の実証を
重ねて市販品ロガーよりダンチな性能が出るのを確認してきました。そして私のぶろぐを
見て購入される方も沢山いらっしゃるようなので、使用に当たってのTips等を今一度お伝え
したいと思います。UP-501等他モジュールを使用されている方も一般的な部分が多いと
思うので参考にしてください!
※PC上ソフトウエアはWindowsXP/64bit版Win7の使用を想定しています。


●PA6Cにメイン電源(VCC)を供給する
一見簡単そうに見えてまともに動かそうとなると非常に難しいです。ブレッドボード上で
プロトタイピング的なつなぐだけな使い方をすると全く性能が生かせません。
GPSモジュールはGHz帯のレシーバーでもあるのでノイズ対策を十分考慮した電源周り
の構築をしなければなりません。

Gtop社が提供しているPA6Cのデータシートには推奨動作条件としてVCCのリップル許容
値や高周波ノイズを食い止める電源ラインのフィルタ回路例などがわかり易く提示さ
れていますのでこれを参考にユニットを作成するとよいでしょう。UP-501やPA6Cは単体
の消費電流が低いのでまだ影響は少ないのですがGT-723F等を使用しているときは初回
補足時に80mA程間欠的に消費されます。このときVCC,GND周りの配線がAWG26番以下の
細い電線で15cm以上長く引き伸ばすような貧弱な配線を行っていると自分でノイズを
まき散らして受信を阻害し、10分近く待っても補足できないなんてことになります。
ハードウエアにあまり詳しくない人が引っ掛かりやすい点です。

GPSモジュールを使用するシステムの基板上に実装して一体となるのが一番ノイズを抑
えられる手法ですが、後付けの場合でどうしてもというときは太く・短く・モジュールのVCC
直前にデカップリング&フィルタ回路を置くようにしましょう。


↑私もこんな風に差し替え可能なようにユニット化しています。
 メッシュアース基板や1005サイズのSMD受動部品を利用して少面積で作り、
 引き出す電源線はAWG22番線を使用しています。こちらも参考に。


また、世代が進むにつれて使用できるVCCの電圧上限も下がってきています。
UP-501やPA6Cはリチウムイオン/リチウムポリマー2次電池が使用されたモバイル機器上
で動かすことを想定されているため上限が+4.2Vとなっています。うっかり+5V系のシス
テムで使わないように気を付けましょう。特にAVRマイコン等+5Vで動くマイコンで絶対に
UARTのTxを直接しないようにしてください。モジュールが異常発熱したり即死します。



●PA6Cにバックアップ電源(VBAT)を供給する
なぜか見落とされがちな箇所ですがこれも超重要なファクターです。PA6C・UP501に
Vbat端子が存在し、常に電源を供給し続けることによりアルマナック・エフェメリス
といったGPS補足追跡のためのデータやボーレートやインターバルなどモジュールの
基本動作にかかわる設定を保持し続けます。解放していてもモジュールとしては動作
しますがこの状態だといったんVCCを切ると設定が全部失われ始めから補足し直し・
設定し直しとなってしまいます。特に単体動作の時はいったんVCCが落ちると何もで
きなくなってしまうのでVBATは常に電源を供給するようにしておきましょう。


一般的にuAオーダーの消費電流なのでVCCとは独立したコイン電池等でバックアップ
しておくとよいでしょう。リポバッテリーなどを使用してるモバイル機器の場合は
電池の出力からじかに1kohm程度の抵抗を直列に介してVbatに繋げ、コイン電池の代
わりにする方法もアリです(私の自作GPSロガーでやってる方法です)。


●PA6Cと通信する
UP-501やPA6C等の新世代のモジュールはモバイル機器に組み込まれるような使い方
を想定されているため、I/OのレベルがLVTTLのみとなっています。GT-723FはRS232C
の電圧レベルも出てますがその分中でチャージポンプが動いてるので電流消費がでか
いというわけです。ちなみに+5Vトレラントではないので+5V系のシステムとじかに
繋ぐとモジュール内部の入出力バッファが破壊されて即死します。横着せずにLVTTL
の電圧レベルを守りましょう。

また通信のプロトコルは一般的な8bit,ノンパリティ・1ストップビットのUARTでボー
レートは9600bpsがデフォルト(GT-723G,UP-501も同じ)です。GPSモジュールから垂れ流し
の信号(TxD)のみでシステムを完結させるなら受信側はRxDだけでも構いません。
ただ、後述するAGPS等の強力な機能を使用するために相互に送受信できるようにして
おきましょう。


●PA6Cを設定する
Windows機を使用している方はGlobalTop社よりPA6Cの各種設定を行うとこができるサポ
ートツールが用意されています。Linux系な方orマイコン制御な方たちはATコマンド表
片手にコマンドを送ってやれば同じことができます。


↑PA6C設定ツール"MT3339 PC Tool"の操作画面です。

基本的な衛星ID表示画面やPA6C(の中のMT3339)が持つ機能を設定できる項目があります。
単体でのインターバル補足動作や超低消費電流スタンバイモードへの移行も可能です。
スタンバイモードの移行動作はたとえばガイガーカウンタと連動してマイコン制御のモバ
イル記録装置で動作させるような時に有効です。


↑AGPSの設定画面です。

AGPS(AssystedGPS)とはGPSモジュールもしくはチップに内蔵された専用のフラッシュメ
モリにアルマナックデータをあらかじめ書き込んで置くことによって電源投入直後の初回
補足時間の短縮を図る機能で、悪天候・障害物遮蔽が多い環境で効果を発揮します。
なぜかこの機能を活用されていない人が多いのですが、ぜひとも活用しましょう!

 AGPSはPA6C(14日保持)の他にGT-723F(7日保持),UP-501(14日保持)も利用できますが、
GPSモジュール内部のチップメーカーの違いで設定をするためのツールも当然違いますので
ご注意ください。
GT-723F(Venus6)の場合はGPSViewer、UP-501(MTK3329)の場合はFastraxGPSWorkBench
…はちょっと微妙なのでTransSystemsのGPSViewや有志が作ったフリーのツールBT747
はたまた上で紹介したPA6C用"MT3339 PC Tool"でもAGPSのみですが設定可能です。


●PA6Cを"使"ってみる
ここで述べる"使う"は単なる卓上実験ではなく各システム内にGPSモジュールを組み
込んで実際のフィールド上で"使う"という意味合いです。

ねむいさんの使用例はプロトタイピングツール(←強調)であるSTM32 Primer2と組み
合わせてGPSロガーとして使用しています。こちらは以前から何度か紹介してきまし
たが、USB-MSC(USBマスストレージ)機能に加えてUSB-CDC(USB仮想COM)機能も新たに
取り入れさらに使い勝手を上げることに成功しました。


↑各機能は電源投入直後のキー操作で分かれます。
 投入直後何もしなければSTM32のクロックも24MHzまで落とし低消費電流で
 GPSロガーモードに。

↑投入直後1Sec以内に左キーを押した状態を3Sec保つと、USB仮想COMモードに
なり、ホストPCとGPSモジュール間で直接データのやり取りができます。これ
 はAGPS用のデータのダウンロードやGPSモジュールの各種設定等で別に通信
 手段を用意する手間が省けて非常に便利です!


↑投入直後1Sec以内に右キーを押した状態を3Sec保つと、USBマスストレージ
 モードになりmicroSDカードに記録されたGPSのNMEAデータをPC上からファイル
 単位で簡単に取り出せられます。

MSC/CDCバルク転送のエンドポイントはもちろんダブルバッファを構成しています。が、
おかげで複合デバイスのやり方がどうしてもうまくいかなくなって 電源投入時のキー
入力で機能選択する方式に落ち着きました。たぶんソース見たら分かる人は分かると
思いますが分離できなかったディスクリプタのWrapperを全部こしらえて機能選択時
に全部の関数のポインタを割り当てる(で表現正しいのかしら???)というかなり見苦
しいことをやっています。



↑外気温−2℃の猿が城跡にて…。
 STM32 Primer2ちゃんは生まれつき心臓(電源回路)が弱くシウツをしないと電源の
 ON/OFFだけで電源回路中のDC-DCが死んじゃう子でしたが、ねむいさんによるLDO
 への無理やりなリプレース・大容量リポ電池にリプレース等の魔改造を施されまくり、
 約2年後には極寒/灼熱の環境にもびくともせずGM-316,GT-723F,UP-501,PA6Cと
 メインのGPSモジュールを変遷させつつねむいさんの足跡をロギングし続ける
 たふすぎてそんはないSTM32Primer2ちゃんが!!
 
 …それなんか違うだろって突っ込み入れられそうですがこんだけバリバリ厳しい環境
 で使いまくってますからもう十分元は取れたと実感していますが東海自然歩道は
 まだ1/3も進んでないのdおいこらにげるなせっかくだから見て行きなさい♥










おまけ
GPSモジュールUP-501(MARY-GB基板にも使用されてます)を使用
してる人でモジュールのファームがAXN1.30の人は……
検索エンジンで"150M-ITX.1139.bin"って呪文唱えるといいことあるかもしれませんよぅ

Comments

こんばんは。
以前、MARY-GB基板から剥ぎ取ったUP-501とAVRでロガーを作って愛用しているとご報告しました。で...

>使用してる人でモジュールのファームがAXN1.30の人は……
>検索エンジンで"150M-ITX.1139.bin"って呪文唱えるといいことあるかも

やって見ましたけど、GでもYでもねむいさんのページしか出てこないんですけど(苦笑...

..実は煽動を受けてユーロ安の折、イタリアからPA6も取り寄せたんですけど、まだ火も入れていない体たらくでです。山歩きにも行きたいです。

eNasty様、こんにちは。ねむいです。

もう少しヒントを言うと一番下のあたりにテキストファイル
が引っかかるアドレスがあって上のディレクトリをたどって
いくと…幸せになれるかもしれませんよ!?

あとファームウエアの更新の途中で電源が落ちると完全に死んで
しまいますので自己責任で臨んでください。

お忙しいところ、フォローありがとうございます。
無事、getできました。
さて、いつ幸せになろうかな...

  • eNasty
  • 2012/02/09 2:23 PM

はじめまして。
私は、ハードウェアは、まったくの素人です。ですが、市販のGPSロガーは、記録時間(1日位)が短いので、自分で作ってみようと思いました。いろいろ探しているうちに、このHPにたどり着きました。そこで、PA6CのUARTという言葉が出てきて、いろいろ調べたら、シリアル通信規格までは、分かりましたが、どのようなインターフェースなのでしょうか?
例えば、RS−232cとかですか?
今一、ピンときません。
また、UARTインターフェースの詳細な事が、載っている書物なんか、あるのでしょうか?

はし様はじめまして、ねむいです。

手間暇かけて自作するより市販品のGPSロガーと共に
モバイルブースターを携行するのが使用時間伸ばす
ための一番安価で確実な方法という元も子もない回答は
置いといて…



UARTというのは他のデバイスとデータのやり取りする為の
方法の一つ"調歩同期方式通信"を行うための装置を指し、
データを時系列にシリアル化して相手とやり取りを行います。
論理的な信号(1or0)のタイミング以外は電圧等の細かい
定義はありません。

RS232-Cは上記の決まり事も含めて実際に通信を行う時の
電圧レベルやケーブル長・コネクタ・結線などの物理的な
条件もすべて網羅した決まり事(仕様)を指します。
某CQ出版「改訂新版 パソコン・インターフェース規格入門」
に詳細が解説されておりますのでご参考に。

PA6Cの場合はLVTTLと呼ばれる電圧レベルでUARTの信号を
やり取りしています。これは+3.3Vで動作している回路に
最適化されております。

よくやる間違いがこのPA6Cを+5V系のシステムや市販の
USB-シリアル変換ケーブル等(+-10~15V)を直結してしまい
破損させてしまうことです。
"書いてある通りにやったのに壊れた"という質問をよくい
ただくのですが、深くお話を伺うと7割方の方が異なる
電圧レベルの接続による破損をやっちゃってます…。

Post a Comment








Go to top of page