Garmin'Meの作り方

Last update 11-Oct-98
ドキュメントV1.03
プログラムV1.03


What's New !
11-Oct-98 関連リンクに追加
15-Sep-98 V1.03 赤外線リモコン対応
18-Apr-98 このページをマザーボード付きの新Kit対応に更新。


Garmin'Meとは?

Garmin'MeはGarmin製GPS用に作成したn2iH8の事です。
n2iはNMEA to IPSの意味でn2iH8はH8版であることを示し、秋月電子通商H8マイコンボードで動作します。

これを使うとGarminなど多くのGPSで使われているNMEA(National Marine Electronics Association)フォーマットのGPS情報をSONY IPSシリーズもしくはETAKフォーマットに変換することができ、手持ちのGarmin製ハンディGPS、RockwellのZodiacチップセットを使ったJupiterDelorme tripmateなど数多くの優れたNMEAフォーマットの機器で、

と言ったNMEAフォーマットは受け付けないがIPSフォーマットなら受け入れるアプリケーションを使うことが出来ます。IPS,ETAKともAll in view機では無いのでフォーマットが異なるため使えなかったAll in view機が使えるメリットは大きいです。実際私はIPS5000を持っているのですがどうしてもGarmin GPSII+を使いたかったのでこれを作成し、IPS5000は人に譲ってしまいました。

これに各GPS用のケーブルを付けるとそれぞれ、

Garmin用はGarmin'Me
Jupiter用はJupiter'Me

と称します。^_^;

Garmin'Meは単にフォーマットを変換するだけでなく、IrDAによるコードレス接続(一部のノートPCではポートリプリケータが不用になるので特に便利)、赤外リモコンサポート、原理的に精度のでないGPS高度ではなく気圧計から高度を出力する、ユーザーインターフェースを持たないGPSのための液晶表示など多彩な機能を持っています。

応用範囲は広く、NMEAフォーマットも受け付けるGoGoNavi等でもETAKフォーマットを使う事によってリモコンが使えるようになるといメリットがあります。

なお、ハードウェアAki-H8とプログラムn2iH8は対応するGPSによらず同じ物で接続用のケーブルのみ各GPS専用です。このページでは基本形、Garmin'Meの作り方を説明します。
実績は基本部分については既に18,000km以上、V1.01になってからでも15,000kmに達します。


電子工作好きの方へ

n2iH8はせっかく作っても「ふーん、なんの役に立つの_」と言われることの多い電子工作の中で実際に役に立ち、しかも秋月で売っているようなセンサ、ガジェットをつけると実際に用途が広がると言う珍しい例ですが、GPSにもカーナビゲーションにも興味が無くてもH8で何か作る場合の参考になると思います。試してみると動かないのがお約束のデータシートやアプリケーションノートの例と違い多くのデバイスを実際に使っており、さらにシリアルだけをとっても

RX0 -- NMEA入力は解析しやすいように行構造を持つ交代バッファ
TX0 -- 主にエコーバックなのでリングバッファ
RX1 -- 頻度が低く速度も必要ないのでただの行バッファ
TX1 -- 元データは性質上、随時更新、送信時にバッファリング

と一つとして同じ構造/手法になっていません。

あるいはCコンパイラを買ったもの環境が作れずどうやって動かせばいいものやら途方に暮れている人にも役立つと思います。

H8関連の質問その他はGPSとH8(電子工作)の掲示板にお願いします。


必要なもの

  • 秋月電子通商H8マイコンボードキット。部品はこれだけしかありません。公称1.5MIPSとVAX11/780より早く、消費電力は最大でわずか50mAという優れものです。Garmin'Meでは不要な回路の電源を切る、処理速度は十分なのでクロックを落とすなど節電に努めて全体で18mA程度と低消費に仕上げています。128KBのFlash ROM,4KのRAM,2chのシリアル、8ch 10BitのA/D,2ch 8bitのD/A,5っものユニバーサルタイマ/カウンタ、4chのDMACなどなんでもかんでも載っている上にそれぞれが多機能なので工夫次第で大抵のことはこなします。わずか2,000円という低価格でCコンパイラが用意されているのである程度規模のあるプログラムも簡単に作成、保守できるのも美点でしょう。以前はこの板の他にユニバーサル基板でFlash ROM書き込み用ボードを作らねばならず初心者には少しハードルが高かったのですが最近のキットはマザーボードと称する専用基板に組み込むようになり簡単になりました。
  • GPSとの接続ケーブルもしくはコネクタ。
  • PCとの接続ケーブルもしくはコネクタ。
  • シガレットライターケーブル等の電源ケーブル。
  • 15Vの電源。(Flash ROMの焼き込みに必要)12Vのきちんとした電源があれば12Vのレギュレータをバイパスすれば良いので不要です。
  • 10Pin L型のコネクタ。(大きめのケースに入れる場合は不要)
  • 上記L型のコネクタに合うコネクタとケーブル。
  • ケース。
  • その他、一般に電子工作に必要なもの。
  • プログラムを焼き込むためのPC。

プログラム

n2i。現在はV1.03です。Garmin'Meは秋月からH8マザーボードが出る前に作られたのでLED,LCDのアサインが違います。このため、ソース中のAKI_H8_MOTHERというシンボルでそれぞれのオブジェクトが作成できるようになっています。

n2i103h8.zip 136K

Cによるソースコード、Cを持っていない人のためのオブジェクト、開発環境構築用のバッチファイル、秋月のアセンブラ、リンカではそのまま使えない日立提供のH8/300H用モニタプログラムとのリンク方法、H8関連URLなどのドキュメントが入っています。ドキュメントについてはまだ更新が不十分なのでこのページの方を参照ください。 103にはGarmin'Me,秋月マザーボード両方のバイナリが入っています。自分でコンパイルする時は、LED,LCDをこのページの説明通りに作った方はAKI_H8_MOTHER 0、マザーボードをそのまま使う方はAKI_H8_MOTHERを1に書き換えた後、バイナリを作ってください。またV1.03はリモコンを使うのに都合が良い様に以前のバージョンと違い%IR0,%12がデフォルトになっています。適宜書き換えてください。

バイナリはさらにモニタの有無で二種類、

作成できますがH8/300H用モニタは日立の著作物なのでモニタ付きのMの方はアーカイブに含まれていません。各自で作成してください。コンパイルされたオブジェクトそのもの及びリンク後のGarmin'Meとしての動作はどちらも同じです。


H8ボードの組み立て

ここでは全体を薄く作るためにCN4を別に購入したL型のものに替えています。こうしないとこのケースには入りません。キットの説明書はピンヘッダを裏側に付けるように指示していますが厚くなるので部品側に付けています。ただしこの場合、別途マザーボードとの接続ケーブルを用意する必要があります。ケーブル作成時、偶数ピンと奇数ピンの関係を間違えないよう注意してください。接続を間違えると致命傷になりかねません。
三端子レギュレータも背が高いので寝かせて取り付けます。ここではキット付属の物では無く低ドロップタイプのものになっていますがこれはバッテリー駆動を考慮したもので今回のようにシガーライターから電源を取るときはキット付属のもので構いません。右下のレギュレータの足に直付けしている空色のコンデンサも10倍以上も大ぐらいのJupiter GPSにも電源を供給するためのものでこれも必要ありません。
なお、許容入力が12Vまでと低いので今回のようにシガレットライターから電源を取る場合には向きませんが小型の超低消費レギュレータに換えるという手もあります。
電解コンデンサも薄く仕上げるためにRS232Cのレベルコンバータの上に寝かせます。この写真では分かりませんが放熱を邪魔しないようにわずかに空間が空けてあります。といっても全部合わせても電池で何日も動く程度の電力しか食わないので浮かせなくても大した問題ではありません。

収まっているケースはタカチSW95。W58xH18xD95。厚みは本当にぎりぎりです。
この写真は薄く作るためにわざとキットの指示と違う形に組んだものです。そのままではマザーボードに付きません。

マザーボードの組み立て

次にキットのマニュアルにしたがってマザーボードを作り、組上がったらキットのマニュアルに従ってアーカイブ中のGarminU.MOT、もしくは作成したGarminM.MOTを書き込みます。

この写真では、キットに以下のものが加えてあります。
  • 基板の脚
  • LCDを支える脚
  • DCジャック
  • NMI SW
  • Reset SW
  • GPS(シリアルポート)
  • IrDAポート
  • コントラスト調整(LCD - D/A間の白いリード線)
また、ON-OF-ONタイプのSWが入っていたのでRun-Off-Progとなるように配線しL字のピンヘッダにハンダ付けして基板に固定しました。GPS用のシリアルポート、IrDAポートのピンアサインは通常のAT互換機のマザーボード上にあるものと互換にしてあります。キット付属の9pinコネクタはオスなのでそのままではGPSとの接続には使えません。
なお、H8ボードは見栄えの観点からごちゃごちゃとケーブルで繋がなくなてはならない薄く作成したものではなくキットの指示通り作成したものを挿しています。
マザーボード上のDipSw,LED,LCDも使えますが、マサーボードは巨大なのでこれをこのまま携帯性が重要なGarmin'Meとして使うのは無理があります。

GARMIN'Me用ケーブルの作成

ここでは、
  • Garminとは専用コネクタ(ラリーさんのシェアハードウェア)で接続、
  • PCとはDsub 9pinメスコネクタで接続、
  • 電源はシガレットライターソケットから取る
  • GPSはGarmin GPSII+
とします。


この場合、以下のように配線します。このページはある程度、熟練した人を対象にしているので一度しか言いませんが「チェックされていない配線は必ず間違っている」と思って作業してください。さもないと高価なPCやGPSを修理に出す羽目になりかねません。

  CN4- 1 POWER  シガレットライターケーブルのプラスへ。
                Garmin プラスへ。

注意GPS12のような電源電圧5-8V系のGPSには絶対に接続してはいけません。

  CN4- 2 GND    シガレットライターケーブルのマイナスへ。
                Dsub 9pinメスコネクタ5 SGへ。
                Garmin マイナスへ。
  CN4- 3 5V     繋ぎません。
                (GPS12のような電源電圧5-8V系の場合はGarmin プラスへ)
                (IrDAアダプタを使用する場合は電源として使います)
  CN4- 4 RxD1   Dsub 9pinメスコネクタ3 TxDへ。
  CN4- 5 RxD0   Garmin Tへ。
  CN4- 6 TxD1   Dsub 9pinメスコネクタ2 RxDへ。
  CN4- 7 TxD0   Garmin Rへ。
  CN4- 8 VPP    繋ぎません。
                 (将来、パラメータの書き込みなどを行う場合は必要です。)
  CN4- 9 MD2    繋ぎません。
  CN4-10 RES    繋ぎません。
                (リセットSWを繋ぐ場合は使用します。)

この写真のケーブルは、

と安上がりに作られています。かかった費用はH8キット中のFlash Writerの分(ライタ付き7,800円、ボードのみ4,300円(最近、4,000円に値下げされました)なので3,500円)を除けばGarmin純正のパワーデータケーブル以下でしょう。プログラムも最初の版はボードを作った翌々日に稼動、実走テストできました。


オプション

好みと必要に応じて以下の物が付けられます。

設定用DipSW

マザーボードのものと同じですのでマザーボードで使う場合は不要です。
Garmin'Meとしては8bitのDipSWが必要。なお、DipSW未接続時は総てoff扱いですがリンク時にon/offの意味を反転させる指定が出来るのでハード的なスイッチが無くても初期値は決められます。
DIPスイッチはPort2にアサインされています。このポートは内部でプルアップできるので、プルアップ抵抗は必要ありません。GNDはCN3-40などから取ります。(各ビットのアサイン、意味は今後、変えるかも知れません)
        接続             意味                          関連コマンド
   CN3-30    GND   0:4800,1:9600 - NMEA BPS            %48,%98
       29    GND   0:AUTO,1:OFF - use ADC for Alitude  %AD0,%AD1
       28    GND   0:OFF,1:ON - ECHO                   %EC0,%EC1
       27    GND   0:ALL,1:RMC - use RMC location only %AL,%RM
       26    GND   0:IPS,1:SMAT - output format        %08,%12,@KT,@KE
       25    GND   0:Check,1:ignore - NMEA Check sum   %CS0,%CS1
       24    GND   0:Disable,1:Enable - IrPHY out      %IR0,%IR1
       23    GND   0:DMS,1:DMD - LAT,LON format        @DMS,@DMD
スイッチの値は、動作中も読み込み、変化のあったものだけ反映されます。コマンドで変更した物は関連するスイッチを操作しない限り変更されません。例えば最初にスイッチを%08側にして起動し、コマンドで%12に変更したとします。この場合、IPS/SMAT以外のスイッチを操作してもフォーマットは%12のままです。なお、スイッチ設定は総てコマンドで変更可能です。

DIPスイッチ反転指定(参考)

スイッチを接続していないが初期値は変更したい場合に有用です。ソースファイル中で定義されているSWMASKの反転したいビットを0に落としてください。例えば、0FF->0F7にすると初期値が%08から%12に反転します。DIPスイッチを繋がず、この設定も変更しない場合、総てoff-'0'として扱われます。
動作確認用LED

マザーボードとはポートのアサインが違います。また、マザーボードはシンク(吸い込み)では無くソース(吐き出し)で点灯となっています。電流の取れる吸い込みの方が有利だと思うのですが..

LEDと電流制限抵抗が必要です。電流制限抵抗は3.3KΩから510ΩのあいだでかつLEDの定格を越えない範囲で選んでください。もちろん値が小さいほど明るく光りますが消費電力も増えます。私はあまり明るくても車内で目立って気が散るだけと考えて3.3KΩをつけています。
LEDはPort Bの最下位Bitにアサインされています。

接続:VCC(CN1-35など) - >R -> LED -> PB-0(CN1-16)

リセットSW

ダイレクトモードから抜ける時に便利です。DipSWが繋がっている場合はそちらでも抜けられます。
RESET(CN4-10,CN3-4など)とGNDをスイッチに接続します。

NMI SW

モニタ付きの場合、NMIで強制的にモニタで停止させることが出来ます。デバッグ用に便利です。(と言ってもマザーボード版になるまでNMIは付けていませんでした。)
NMI(CN3-5)とGNDをスイッチに接続します。

IrDAモジュール

AT互換機用のIrDAモジュール、TEKRAMのIRMate220(210ではありません)が接続出来ます。%IR1指定で有効。これはPC I/Fと別なので併せて二つの出力が出せることになります。デフォルトは%IR0です。

ITUA0(CN1-10)に出力パルスが出ます。
ITUA1(CN1-12)に入力パルスを入れてください。

例1. ASUSのIrDAモジュールと接続する場合。

   GarminMe      ASUS IrDA
                 10pinオス()内は5pinオス
   CN1-36       - 1(1) +5V
       12 ITUA1 - 3(3) IRRX
        2       - 5(4) GND
       10 ITUA0 - 7(5) IRTX

ASUSのIrDAモジュール
*コネクタは支えのためのもので関係ありません
例2. 市販の赤外LEDを使う場合(送信のみ)

秋月電子通商の赤外線投光器キットは赤外LEDが56個も付いていて1,000円とお得です。これを使ってIrPHYの送信が出来るのではというので検討してみました。これには二種類あって私が購入したのはwebに出ていないソルダーレスブレッドボードと一緒になったプラスチックの部分が青いものですが透明なものの方が適しているようです。

IrDAチップ、HSDL1000の発光ピークが975nm、受光側ピークが980nmなのに対してこちらのLEDは950nmピークです。しかしIrDAの規格は980-950nmということでHSDL1000はかなり広い範囲に感度があり、少々非効率ですがいけそうということで試してみました。

結果は案ずるより生むが易しで動いてしまいました。R=100Ωと大電流短パルスのIrDAにしては控えめなので到達距離は光軸をしっかり合わせてやっと1mですがバッファのmax.500mA、LEDのMax.1A(パルス)に対して20mA程度しか流してないので悪くない成績だと思います。200mAくらいが適正かと思うのですがこの辺は各自で詰めてください。

回路は至って簡単で、
    +-100Ω-+
   LED      5V
    |       IrRX(NC)
PA2003----- GND
    +------ IrTX(CN1-10)

試しに組んでみたもの。
PA2003はフラッシュライターで使われていてゲートが余っているので簡単に実験できると思います。

両者ともでNavin'Youの動作を確認しています。私の実験結果はIrDAでカーナビゲーション実験記をご覧ください。

シリアル接続IrDAアダプタ

Tekram IRMATE210等のシリアル接続用IrDAアダプタが接続できます。(IRmate220は繋げません。紛らわしいので注意してください。Garmin'MeとしてはIrDAモジュールの方が本命です。)
      Garmin'Me IRmate210
      9pinメス    9pinメス
         2     -     3
        ( 3     -     2 ) 必要が無ければ繋がなくてOK。電力の無駄ですし。
         5     -     5
                     7 <- Vcc
と繋ぎます。IRMate210は信号線、制御線の総てにDiを入れNSの超低消費レギュレータで3.3Vを作っているのですがこの構成では信号線だけしかないため電力が足らず、至近距離でも化け化けなので制御線7にGarmin'MeのVcc、5Vを繋いで電力を供給しています。ほんとは保護抵抗を入れるべきだと思うのですが値を詰めていません。33オームくらいかな?
こういう非標準の物にうっかり他のケーブルを繋ぐと嫌なので別に専用コネクタをつけるべきでしょう。Rx,Txがあって5VもあるPS/2マウスコネクタあたりが良さそうです。当然IRMate側も付け替えることになります。
AL-N2/4の場合、仮想ポートではなくIrDA物理ポートCOM2を指定すれば、そのままNavin'Youが動きます。 N4に8時間バッテリならノートPCには何も繋がなくて済みます。また、IrDA(厳密には上位レイヤーを持っていないので物理層だけ、IrPHYなのですが通りが悪そうなのでIrDAと呼んでいます)の到達範囲なら複数台で同時受信も可能です。

気圧高度計その1

半田鍍金さん作の気圧計を接続できます。この場合、高度はGPSのものでなく気圧から計算した値になります。
AN0(CN2-12)に接続してください。n2iは%AD0指定時、ADポートの値を調べ未接続の時の値、0FFFF近辺で無い場合、気圧計が接続されているものと判断します。%AD1指定の時はADコンバータ自体を節電のため停止します。

気圧高度計その2(製作中)

秋月電子通商のアナログ気圧計キット。

液晶表示器

Jupiter,Tripmateのような単体でUIをもたないGPSのために液晶表示器を付けることができます。Garminの場合は本体にUIを持っているので付ける意味はありません。秋月電子通商の16文字2行液晶、20文字4行液晶等、インターフェースICがHD44780のものが必要です。


16*2での表示例
緯度 速度(km/h) 方向(deg)
N3419216 055 210
経度 高度(m) 状態(3:2D, 4:3D)
E13826076+0526 4
マザーボード上ではLCDは4bit I/Fです。それはともかく、R/W信号がWで固定のため、LCDからの読み込みが出来ません。Busyフラグすら読めないのはちよっと..
なるべくマザーボードに寄せた方が面倒がないので将来はGarmin'Meも4bit、ただし、ちゃんとR/W信号有りにするかも知れません。BackLight制御、コントラスト調整を行うにはそれ用の結線をGarmin'Meと同様に接続してください。その他、起動時にSW1が押されているかどうかで20文字と40文字の切換えが出来ます。
結線

使用したLCDはSC1602BSLB(サンライク)
M1632とピン互換但しピン番の割付が逆だそうです。

VCC         - LCD-1(VDD)
CN3-2(GND)  -     2(Vss)
CN2-18(DA0) -     3(CONTRAST ADJ)
CN3-3(P4-4) - CN3-2(GND)
    4(P4-5) - LCD-4(RS)
    5(P4-6) -     5(R/W)
    5(P4-7) -     6(Enable)
    7(P3-0) -     7(DATA0)
    8(P3-1) -     8(DATA1)
    9(P3-2) -     9(DATA2)
   10(P3-3) -    10(DATA3)
   11(P3-4) -    11(DATA4)
   12(P3-5) -    12(DATA5)
   13(P3-6) -    13(DATA6)
   14(P3-7) -    14(DATA7)
 1と3以外はCN3にそのまま挿せます。但し、1はGNDとVCCなのでくれぐれもショートさせないよう注意してください。

コマンド

%LC+コマンドでコントラストが強く、%LC-でコントラストが弱くなります。また、%LC[A-Z]で直接、指定することもできます。%LCAがもっとも強く、%LCZがもっとも弱くなります。デフォルトは%LCMです。
 CONTRAST ADJは10KのVRで調整することも出来ます。なお、コントラスト調整となっていますがLCD駆動系の電源なのでμAオーダーとは言えさすがにオープンでは動作しないのでかならず接続してください。

バックライト付きの液晶を買った人は液晶の資料にしたがって配線してください。レギュレータの負荷が増えることをお忘れなく。コマンドでOn/OFFしたい人はPortBのBit1(CN1-17)が、%BL0コマンドでL,%BL1でHになるのでPA2003,TD62003等のTrアレイを使ってON/OFFしてください。直接繋ぐ場合、Trアレイを使うときとは逆にLで点灯、Hで消灯になるよう作ります。シンク10mA以下なのでよほど小さな物以外は無理ですから素直にTrアレイを使うことを強く勧めます。

なお、%SOコマンドで、LCD:xのxがa-zで現在のLCDコントラストを示します。バックライトONの時はA-Zと大文字になります。

注意:アナログ系に5V以外の電圧を使うと、調整範囲が変わるので適当にソースを修正してください。

20文字4行液晶の場合

Port4のbit4(CN3-3)をHにすると20x4用の表示に切り替わります。切り替えない場合、20x4でも16x2の範囲で表示されます。逆に20x4の設定で16x2も使えますが大幅に欠けます。但し情報量は変わりません。余裕を使って項目名や単位も表示するだけです。必要に応じてカスタマイズしてください。^-^;
なお、16x2と40x4では電源ピンの極性が逆という恐ろしい違いがあるので注意が必要です。
      16x2 LCD
      (1) +5V ------------+ x -- GND (CN3-1)
      (2) GND ---------+-------- GND (CN3-2)
      (3) CONTRAST-+ x +-------- P4-4(CN3-3)

      20x4 LCD
      (1) GND ------------------ GND (CN3-1)
      (2) +5V ---------+--- x -- GND (CN3-2)
      (3) CONTRAST-+ x +-------- P4-4(CN3-3)

16文字2行は窮屈、20文字4行はちよっと大きすぎるので、新たに加わった24文字*2行液晶もサポート予定です。


温度センサ

将来、気圧高度計の温度補正を行うためにサポートしています。これも秋月電子で購入した高精度3端子型CMOS温度センサを使っています。今は値を読みとるだけで何も使っていません。
AN1(CN2-12)に接続します。

赤外線リモコン受信

ETAKのように赤外線リモコンから受信したコードをアプリケーションに送信します。GoGoNaviなどの対応アプリケーションと組み合わせればカーナビのようにリモコンで操作できます。現在、対応しているリモコンはECRIPSE NR500(NEC D6600Aチップ)のみです。使いやすく入手製の良いリモコン募集中です。なお、当然ですが近い波長を使うIrDAと干渉することがあるので%IR0コマンドでIrDAを禁止するか配置を工夫してください。多くのアプリケーションがETAKフォーマットの時のみリモコンを受け付けるので%12コマンドでETAKフォーマットにしておいた方が無難でしょう。1.03はリモコン追加が主な変更なので%IR0,%12がデフォルトになっています。

左上
70
SYS15E

10
SYS133
右上
30
SYS160

D0
SYS135
ENTER
08
SYS15C

50
SYS134
左下
F0
SYS15F

90
SYS132
右下
B0
SYS15D
POS
80
SYS153
MENU
00
SYS158
縮小
A0
SYS151
拡大
20
SYS152
案内
40
SYS156
音声
E0
SYS155
再探索
C0
SYS157
MODE
28
SYS17E
*9/12に訂正しました。
フラッシュメモリ搭載(設計中)

1MB or 2MBフラッシュメモリに数日分のGPSログデータを書き込みます。

DTMFデコーダ(製作予定)

DTMFを解析して受信したコードをETAKフォーマットでアプリケーションに送信します。対応アプリケーションと組み合わせればDTMFの出せる電話機、ダイアラで操作できます。また、DIPスイッチ、コマンドと同様、n2iH8の動作モード変更も出来ます。
DTMFエンコード(製作予定)

D/Aポートを利用して1,2,3,A,4,5,6,B,7,8,9,C,*,0,#,DのDTMF音を発生します。今のところ使い道はありません。

IRIG-B(製作予定、Jupiterのみ)

IRIG-Bタイムコードを発生します。

バッテリーバックアップ(製作予定)

秋月電子通商で売っているバッテリーバックアップBOXを接続します。

コンバクトフラッシュ(製作予定)

コンバクトフラッシュもしくはIBM製コンパクトフラッシュ型HDDにGPSログデータを書き込みます。

動作確認

マザーボードなら25pinコネクタを、Garmin'MeならメスコネクタをPCのシリアルポートに繋いで、ハイパーターミナルなどでそのポートと接続してください。通信条件は9600,8bit,NonParity,1stopビット、フロー制御無しです。

NMEAモードにしたGARMINをGPS/オスコネクタに接続し、電源を繋ぎます。必要ならシュミレーションモードにして方向、速度を設定します。

SONYもしくはSMATで始まる文字列が出力されれば正常。もし出力されない場合はキーボードから']'を打ってください。

GarminUの場合:サインオンメッセージを表示。
GarminMの場合:モニタが起動する。

であればPC側は正常です。Garminのモードと接続を確認してください。
こうならない場合はまずPCとの接続を確認してください。

LEDを接続した方は、まず、電源投入時に点灯する事を確認してください。点灯しない場合はH8ボードが動作していないかプログラムが書き込まれていません。

 初期化終了後、LEDは$GPRMCセンテンス受信中のみ点灯します。つまり、2秒もしくは1秒間隔で点滅します。点灯したままになる場合はGPSから信号が来ていません。GPSを直接PCに繋いでデータが送られてくるか確認してください。

動作を確認したら適当なケースに収めておしまいです。


使用上の注意

測地系

NMEAセンテンスでは測地系が判定できません。初期状態の測地系は東京ですのでGPSの測地系(Datum)も必ずTokyoにしてください。これを怠ると誤差が出ます。

GPSがGARMINの場合は、測地系を自動判別してIPS出力に反映します。ただし、判別出来るのはTokyoとWGS84のみです。IPS出力の測地系が何であってもTokyoとして扱うNavin'YouのようなアプリケーションもあるのでGARMINであってもTokyoに設定してください。

通信速度

n2iH8は設定された通信速度でエラーが多発する場合、もうひとつの通信速度に自動的に切り替えるので4800bpsか9600bpsかはそれほど気にしなくても大丈夫です。

ダイレクトモード

n2iH8は入力と出力を直接、接続するダイレクトモードを持っています。これはサンプリングで実現している(入力ポートを読んで出力ポートに書いている)ため通信形式、プロトコル、bpsの制限はありません。直接ケーブルで繋いだのと同等と考えて結構です。GARMINプロトコルを使ってデータをダウンロードする時などに使います。ダイレクトモードからは、電源断、リセットSW、DipSWの変更で抜けられます。

コマンド

以下の%で始まる独自コマンドを受け付けます。

%SO サインオンメッセージを表示。現在の設定も表示されます。

%MN モニタに制御を移します。(GarminMのみ。G 5000でリスタート)

%DI ダイレクト接続モードに切り替え。コマンドでは復帰できません。

%08 8ch(IPS)フォーマットに切り替え(デフォルト)
%12 12ch(ETAK)フォーマットに切り替え

%RM $GPRMCセンテンスが来る度に出力します。
GARMINの場合ほぼ、2秒に1回。Jupiterの場合、1秒に1回。
%AL $GPRMCに限らず時刻の異なる座標情報センテンスが来る度に出力します。
GARMINの場合ほぼ1秒に1回になりますが他のセンテンスのタイミングによってはしばらく2秒に1回になることがあります。(デフォルト)
Garminの場合、%ALがレスポンスの点でお勧めです。Jupiterでは$GPRMCが1秒おきなのでどちらでも同じです。

%AD0 AD converterの使用を許可します。
気圧計が接続されている場合はGPSによる高度ではなく気圧計による高度を用います。(デフォルト)
%AD1 AD converterの使用を禁止します。常にGPS高度が使われます。

%EC0 GPSからの入力をGPSにエコーバックしません。(デフォルト)
%EC1 GPSからの入力をGPSにエコーバックします。
TripMateのASTRALエコーなどに使います。NMEA出力のGPSの場合、GPSへの送信はほとんど必要が無いのでTx0を別のコネクタに繋げばIPSとNMEA両方の出力が使えます。さらにIrDAモードを使えばIPSシリアル出力、NMEAシリアル出力、IPS IrPHY出力と同時三系統出力も可能です。

%CK0 CPUクロックを1/1、フルスピードにします。
%CK1 CPUクロックを1/2、標準スピードにします。(デフォルト)
%CK2 CPUクロックを1/4、スロースピードにします。
通常の使い方ではスロースピードでも問題有りません。負荷のかかるオプションを指定して不都合が出た場合、フルスピードにしてみてください。なお、速度を上げると電力消費が増えます。
条件によって変わりますが実測値は23mA(フル)、18mA(標準)、15mA(スロー)でした。なお、この呼び方は勝手に付けたものでH8のデフォルトは1/1です。

%CS0 NMEAチェックサムを調べます。(デフォルト)
%CS1 NMEAチェックサムを調べません。
通常はチェックサムを調べる方を選択してください。なお、コンパイルオプションで'*'インジケータが無い場合はチェックしないようにすることも出来ます。

%IR0 IrDAモジュール用出力を行いません。(デフォルト)
%IR1 IrDAモジュール用出力を行います。

%LC+ LCDモジュールのコントラストを上げます。
%LC- LCDモジュールのコントラストを下げます。
%LCx LCDモジュールのコントラストをx:[A-Z]に設定します。
コントラスト設定値は%SOコマンドで表示されます。デフォルトは'm'です。

%BL0 LCDモジュールのバックライトをOFFにします。(デフォルト)
%BL1 LCDモジュールのバックライトをONにします。

IPSコマンド

@SKx 測地系切り替え。
このコマンドではIPSフォーマットの測地系インジケータを文字'x'にするだけで実際には切り替わりません。Garminの場合、ToKyo,WGS 84は自動判別なのでGPSがこのどちらかに設定されている場合、このコマンドは無効です。それ以外の場合、GPS側も切り替えることで正しく動作します。デフォルトは'B':Tokyoです。

@DMS 緯度/経度の表示形式をDM.Sにする。デフォルト。
@DMD 緯度/経度の表示形式をDM.Dにする。

@KT IPSフォーマットに切り替え
(このコマンドの本来の意味と同じかどうかは不明)
@KE ETAKフォーマットに切り替え
(このコマンドの本来の意味と同じかどうかは不明)

これ以外の@PT等の@で始まるIPSコマンドは総て無視されます。

位置づけ

これを作成してからしばらくしてNifty FGPSにGPS Player(GPS パソコンカーナビの部屋)の納さんによってNMEA出力のGPSでnavin'Youを動かすプログラムがupされました。こちらはソフトだけで済みますが、Garmin'Meなどn2iH8系はソフトだけでは出来ないIrDA対応、気圧高度計からの高度入力、リモコン対応などの機能を持っています。また純粋にハードウェアで実現しているため、対応するOSや機種、環境、アプリケーションを選ばない、レスポンスに優れるという強みがあります。特に非力なPCで起こる、角を曲がってからその角を曲がるように音声ガイダンスされるなどという極端な遅れ現象は全くありません。このあたりはハードウェアで実現している強みです。


関連ページ(このサイト)

IrDAでカーナビゲーション実験記
n2iH8のIrDA出力の実験記録です。少しましな見栄えの1号機、抱腹絶倒の「後ろの車もナビできます」IrDA投光器などの写真もあります。

アンテナによる受信感度の違い
読んで字の如しです。一覧あれ。

GPS Jupiter Report
姉妹品Jupiter'Meの作り方。SPAが販売してるJupiter GPSユニット版の作り方です。

GPSとH8(電子工作)の掲示板
最新βなど新しい情報はまずこちらに書き込まれます。意見、誤りの指摘、要望、質問などもこちらをご利用ください。現在、次期n2i用ハードウェア、Garmin'We(我ながらなんとセンスの無いネーミング..)の計画が進んでいます。

GPSとH8(電子工作)の掲示板バックナンバー
バックナンバーもご覧ください。ノートPCマウンタなどの写真もあります。

Garmin'Me/You/We関連リンク(掲示板登場の方達)
半田鍍金さんのページ
Garminのケーブル、ずっと見栄えのする兄弟機Garmin'You、n2iH8がサポートしている気圧高度計の回路図、Garminの専用コネクタについての評価などがあります。
秋月電子製 AKI-H8利用記
MasaakiSATOさんのページ。私が当然の事として省略してしまいがちなことをきちんとフォローしてくださっています。
コンピュータを操る
sanさんのページ。AKI-H8関連の回路図、CADデータなどもあります。
AKI-H8 for GPS
宮崎さんのページ。Jupiter版です。

AKI-H8でGPS
Electoronics ROOM
コンパクトフラッシュ接続をやっていらっしゃいます。

AKI-H8関連
Hitachi H8 MCU Page
SRAM増設、gccでの開発環境など<。BR>
付録 アサイン一覧
Pin func Mode 7で可能なピン機能 Garmin'Me AKI MB
36 DR P1-0
37 P1-1
38 P1-2
39 P1-3
40 P1-4
41 P1-5
42 P1-6
43 P1-7
45 DR
Pup
P2-0 DIP SW
46 P2-1 DIP SW
47 P2-2 DIP SW
48 P2-3 DIP SW
49 P2-4 DIP SW
50 P2-5 DIP SW
51 P2-6 DIP SW
52 P2-7 DIP SW
27 DR P3-0 LCD Data
28 P3-1 LCD Data
29 P3-2 LCD Data
30 P3-3 LCD Data
31 P3-4 LCD Data LCD RS
32 P3-5 LCD Data LCD E
33 P3-6 LCD Data (LCD RW)
34 P3-7 LCD Data
18 DR
Pup
P4-0
19 P4-1
20 P4-2
21 P4-3
23 P4-4 LCD Type SW1
24 P4-5 LCD R/S SW2
25 P4-6 LCD RW SW3
26 P4-7 LCD E SW4
53 LED
DR
Pup
P5-0 LED0
54 P5-1 (LED1)
55 P5-2 LCD_BL
56 P5-3
58 DR P6-0
59 P6-1
60 P6-2
69 P6-3
70 P6-4
71 P6-5
72 P6-6
78 In
Only
P7-0/AN-0 Alitude
79 P7-1/AN-1 Thermo
80 P7-2/AN-2
81 P7-3/AN-3
82 P7-4/AN-4
83 P7-5/AN-5
84 P7-6/AN-6/DA-0 LCD Contrast
85 P7-7/AN-7/DA-1 (DTMF out)
87 DR
SH
P8-0/IRQ0
88 P8-1/IRQ1
89 P8-2/IRQ2
90 P8-3/IRQ3
91 P8-4
12 DR P9-0/TxD0 GPSのRxへ
13 P9-1/TxD1 PCのRxへ
14 P9-2/RxD0 GPSのTxへ
15 P9-3/RxD1 PCのTxへ
16 P9-4/SCK-0/IRQ-4
17 P9-5/SCK-1/IRQ-5
93 DR
SH
PA-0/TP-0/TEND-0/TCLKA
94 PA-1/TP-1/TEND-1/TCLKB
95 PA-2/TP-2/TIOCA-0/TCLKC IrRxへ
96 PA-3/TP-3/TIOCB-0/TCLKD
97 PA-4/TP-4/TIOCA-1 IrTxへ
98 PA-5/TP-5/TIOCB-1
99 PA-6/TP-6/TIOCA-2 IR Remote Rx
100 PA-7/TP-7/TIOCB-2
2 LED
DR
SH
PB-0/TP-8/TIOCA-3 LED
3 PB-1/TP-9/TIOCB-3 LCD BL
4 PB-2/TP-10/TIOCA-4
5 PB-3/TP-11/TIOCB-4
6 PB-4/TP-12/TOCXA-4
7 PB-5/TP-13/TOCXB-4
8 PB-6/TP-14/DREQ0
9 PB-7/TP-15/DREQ1/ADTR

[Return to home]|[GPSとH8(電子工作)の掲示板]|[掲示板]|[Bulletin board]