STM32L152 GPS Data Logger
in XYLISH Case
2013年5月5日 新規作成
1 はじめに 2 使用例 3 HW/SW構成 4 サンプルプログラム
1 はじめに
<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
SB1602BWLEDバックライト付きを使用していますが、バックライトは制御していません Gセンサー KXP84-2050 基板へ未実装のタイプを手ハンダで実装しました。疲れます 大気圧
センサーBMP180
MPL115A2BMP180は精度が良さそうです 電池 3.7V LiPo
1400mAh単四を三本使用して使用出来るだけにスペースが確保されています
2 使用例
<データ構成>
下記にデータロガーの記録例を示します。
$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データ x 未対応です
3 HW/SW構成
3.1 <HW構成>
結線はこの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構成>
先にも述べましたが、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 サンプルプログラム
サンプルプログラムは、ここに置いてあります。
STM32L152_64pin_FreeRTOS_GPS_wrk1.zip
Olimex基板用も同じホルダーないですので、間違えないようにダウンロードしてください。
2013/5/5=1