STM32L152 GPS Data Logger
 in XYLISH Case

IMAGE12.GIF - 2,801BYTES

2013年5月5日 新規作成

1 はじめに
2 使用例
3 HW/SW構成
4 サンプルプログラム
meijiのXYLISHガムのケースに入れてみました。 CPU基板、センサー基板、GPSモジュール、
それにLiPoバッテリが入っています
meijiのXYLISHガムのケースに入れてみました。 基板は全て入るか心配でしたが、何とか入りました
バラックでのDEBUG SPI動作確認中
SD-Card(左上)、GPSコネクタ(右上)
大気圧センサー2個(左下)、Gセンサー(右下)
大気圧センサーMPL115A2(上)
大気圧センサーBMP180(左下)
加速度センサーKXP84-2050



1 はじめに
IMAGE12.GIF - 2,801BYTES
TOP02_001.PNG - 934BYTES

<GPSロガー再び>

 PIC24を使用してGPSデータロガーを製作したのが、2010年の初めでした。
 その後、STM32LのOlimex基板で同じようなGPSロガーを製作しましたが、携帯できるような形状ではありませんでした。
 ガムの空き箱を手にした時に、再度GPSロガーの製作を思いつき何とか全ての回路を入れることが出来ました。
 2個目を手作りするつもりはありませんが、現在販売しているガムの箱には私が使った形状のものがありません。
 
 変わり映えのない機能ですが、ちょっとした旅行には持参しています。


<データロガーの特徴>

概要をまとめると下記の様になります。

項目 主要部品
/機能
コメント
CPU STM32L152RBT6 64Pin
GPS GM-318 買い置きのGM-318モジュールを使用しています。現在は入手が難しいのでしょうか?
Micro-SD 16GB ChaNさんのFatFs R0.09aを使用させていただきました
原因不明の不具合:SDカードのファイルをPC(WindowsXP)でDeleteしただけでは、次の書込みが上手くいかない。ファイルを削除した際にはフォーマットをし直して使用している。
LCD 16x2
SB1602BW
LEDバックライト付きを使用していますが、バックライトは制御していません
Gセンサー KXP84-2050 基板へ未実装のタイプを手ハンダで実装しました。疲れます
大気圧
センサー
BMP180
MPL115A2
BMP180は精度が良さそうです
電池 3.7V LiPo
1400mAh
単四を三本使用して使用出来るだけにスペースが確保されています


2 使用例
IMAGE12.GIF - 2,801BYTES
TOP02_001.PNG - 934BYTES

<データ構成>
下記にデータロガーの記録例を示します。

$GPRMC,002926.000,A,3515.7870,N,13942.9139,E,0.00,,030513,,,A*7E
$GPGGA,002927.000,3515.7870,N,13942.9139,E,1,07,1.1,10.0,M,39.7,M,,0000*6C
$GPGSA,A,3,05,24,18,21,15,26,09,,,,,,2.4,1.1,2.1*37
$ADC,20130503,092927,101074,10112,4071,3329,1212,812,-186,201,1071*00
$GPRMC,002927.000,A,3515.7870,N,13942.9139,E,0.00,,030513,,,A*7F
$GPGGA,002928.000,3515.7870,N,13942.9139,E,1,07,1.1,10.0,M,39.7,M,,0000*63
$GPGSA,A,3,05,24,18,21,15,26,09,,,,,,2.4,1.1,2.1*37
$ADC,20130503,092928,101069,10130,4066,3327,1212,812,-178,207,1070*00
$GPRMC,002928.000,A,3515.7870,N,13942.9139,E,0.00,,030513,,,A*70
$GPGGA,002929.000,3515.7870,N,13942.9139,E,1,06,1.2,10.0,M,39.7,M,,0000*60
$GPGSA,A,3,05,24,18,21,15,26,,,,,,,2.5,1.2,2.1*3C
$ADC,20130503,092929,101073,10118,4063,3327,1212,814,-177,213,1074*00
$GPRMC,002929.000,A,3515.7870,N,13942.9139,E,0.00,,030513,,,A*71
$GPGGA,002930.000,3515.7870,N,13942.9139,E,1,06,1.2,10.0,M,39.7,M,,0000*68
$GPGSA,A,3,05,24,18,21,15,26,,,,,,,2.5,1.2,2.1*3C
$ADC,20130503,092930,101068,10130,4063,3327,1212,831,-170,184,1084*00

 $GPxxxはGPSレシーバーからの情報をそのまま記録しています。
 $ADCは、下記の様に独自データを記録しています。

$ADC,20130503,092929,101073,10118,4063,3327,1212,814,-177,213,1074*00
$ADC . Hearder
. 20130503,092929 . 2013年5月3日午前9時29分29秒(JST)
. . 101073 . 大気圧データ(BMP180) : 1010.73hPa
. . . 10118 . 大気圧データ(MPL115A2): 1011.8hPa
. . . . 4063,3327 . バッテリー電圧:4.063V
CPU電圧:3.3327V
. . . . . 1212,814,-177,1074 . Gセンサー出力 3軸合成: 1.074G
X軸: 1.212
Y軸: 0.814
Z軸: -0.177 
. . . . . . 00 Checksum(ダミーデータ)

<データ処理>
 PIC24でも紹介している、この方法と変わっていません。
 流れは下記の様になります。

順序 作業 使用ソフト 備考
1 ファイルの読み込み PCエクスプローラ Micro-SDカードを取り出し、PCに接続して読出します
USB経由で読み出すことが今後の課題です
2 ファイル連結 FCONNECT 収集したテキストファイルを連結します
3 GPSデータ変換 GPSBabel 地図データベース上で収集したGPSデータを表示するためにデータ変換します
4 データ表示 Google Earth 収集データを表示します
5 ADCデータ 未対応です



3 HW/SW構成
IMAGE12.GIF - 2,801BYTES
3.1 <HW構成>
TOP02_001.PNG - 934BYTES

 結線はこのPDFの様になっています

主なポイント
 GPSの電源ON/OFFはGM-813では不要で、PWR_CTRL端子のロジックレベル変更で対応可能です。
 PCとの通信ラインは、必要に応じて接続すればDEBUG時に有効に使用できます。
 DEBUGはJTAGにて接続できるようにPIN配置が出来ています。
 電源電流は、下記のような測定データがあります(但し測定は公開したプログラムでの値ではありません)。

測定条件 電流 条件
通常動作時 最大63.95mA、最少48.39mA、平均50.96mA 電源電圧 3.675V
STOP時 全体電流 2.28mA、3.3Vレギュレータ出力側 1.44mA SDカード用レギュレータを含め電源IC分か



3.2 <SW構成
TOP02_001.PNG - 934BYTES

先にも述べましたが、STM32Lを利用したGPSロガーの実験を2012年に実施しています。
下記の情報は、今回のデータロガーでも関係する内容です。
参考にしてください。

その他の情報は、下記に示します。

3.2.1.FreeRTOS
 FreeRTOS V7.4.0を使用しています。
 

3.3..2.Gセンサー
 GPSデータから下記のようないくつかデータを抽出しています。


3.2.3.大気圧センサー
 ChaNさんのFatFs(R0.09a)とねむいさん作成のMMC Driver ( mmc_stm32l.c )を使用させていただきました。


3.2.4.その他
 今回、LCD制御のDebugが一番大変でした。
 初めにJTAG使用でLCD表示が乱れたことをBugと思ってしまい、ソースコードとにらめっこする羽目に陥りました。
 LCD制御は、かなりソースコードを読みこなさないと理解できない部分が多く、苦労しました。
 下記に私の理解した制御の流れを簡単に記述してみた。



4 サンプルプログラム
IMAGE12.GIF - 2,801BYTES
TOP02_001.PNG - 934BYTES

サンプルプログラムは、ここに置いてあります。
STM32L152_64pin_FreeRTOS_GPS_wrk1.zip
Olimex基板用も同じホルダーないですので、間違えないようにダウンロードしてください。












































































































2013/5/5=1