CPU実験室

誰も見向きもしない古いCPUをいじって動かしてみようというプロジェクトです

GPSユニット動作テスト

イメージ 1

GPSユニットから9600bpsで流れてくるデータをPICのUSARTで受けてLCDに表示させました。

データはASCII形式で出力されているのでそのままLCDに渡せば文字列が表示されるはずなのですが
最初は文字が化け化けで原因がわからず嵌りました。
ハードに原因があるのではないかと疑っていたのですが、結局はUSARTの設定ミス。
ボーレートレジスタに分周比64をセットしようとして

movlw 64 ;baud=9600bps
movwf SPBRG1

と書いていたのですがアセンブラは基数指定を省略すると16進とみなしていました。

movlw D'64' ;baud=9600bps
movwf SPBRG1

として10進を明示してうまく行きました。

受け取ったデータから$GPGGAセンテンスを抽出、整形して表示したのが上の図です。
UTC時刻、測位フラグ、捕捉衛星数、緯度経度の秒小数部、高度を示しています。
図のように室内では受信ができません。ベランダの庇の下では衛星3個を捕捉して測位ができました。

また電池で動作させていますがこの時点で消費電流が150mAもあります。
CPUをスリープさせるなどの対策も要りそうです