MSP430な超低消費電力、振動ロガー(単3で1年動作)
MSP430を使用した超低消費電力な加速度(振動)ロガーを製作しました。
概要
- 単3電池×3で半年~、単3×4で1年動作
- MicroSDカード(SDHC対応)へのデータ保存(FAT/FAT32)
- MicroSDなので入出力インターフェイスが不要。
- カウント機能(万歩計みたいな感じ)
写真は「TAKACHI 防水・防塵アルミダイキャスト(AD10-7-4/W100×D65×H40)」に入れたものです。基板は厚さ約6mm以下になります。
仕様
項目 | 値 | 備考 |
---|---|---|
計測加速度範囲 | ±3G | 重力加速度を含め測定します。換算すると±2943cm/ss |
計測精度 | 2.16gal | 12bit-ADC*1 |
サンプリング周波数 | 32Hz | 生データ記録時の最大。カウントのみなら128Hz程度まで可能*2 |
カウント可能振動 | 8Hz以下 | サンプリング周波数÷4程度が目安 |
記録媒体 | MicroSD (SD/SDHC) | SanDisk製を推奨 |
平均消費電流 | 約0.3mA | 供給電圧により変化する |
連続稼働時間 | 単3×3で半年以上 | 計算上は300日。実証が必要。 |
生データ記録容量 | 16MB/1日 | 32Hz記録時。4GB-SDHCで200日以上。 |
時計精度 | 月差5分以内 | 最悪値。常温付近ならば月差1分程度 |
大きさ(mm) | W100×D65×H40 | TAKACHI 防水・防塵アルミダイキャスト(AD10-7-4) |
質量 | 約350g | 単3電池含む |
- センサーをADXL345に変更すれば平均消費電流が0.1mA程度低下し、単3電池3本で1年動作する見込みです。
- 本機は加速度センサーですが、本機をベースに温度センサーや湿度センサー等様々なセンサーを接続することが可能です。その場合もスタンドアローンで長期間動作します。
回路図と部品表
部品 | 部品名 | 型番 | 備考| |
---|---|---|---|
U1 | 降圧型DCDCコンバータ | LTC1878 | SW内臓。低電時にも低消費電力 |
U3 | 1.8V電圧レギュレータ | TPS79718 | Ti製。低静止電流(1.2uA) |
U4 | MSP430マイコン | MSP430F5418 | RTC/ADC/SPI等内臓 |
U5 | 加速度センサー | ADXL330 | 180uA(1.8V時) |
U6 | パワースイッチ | FPF1005 | 低静止電流(1uA) |
J1 | MicroSDコネクタ | DM3AT-SF-PEJ | ハセヒロ |
J2 | JTAGコネクタ | - | 汎用差込端子。Spy-By-Wire用 |
SW2,3 | PUSHスイッチ | LS6J2M | オフ-モメンタリ。5.2mm×5.2mm×2.5mm |
XT1 | 32768Hz水晶振動子 | FC-135 32.7680KA-A3 | ±20ppm。CL12.5pF |
L1,L2 | インダクタ | NR6045T220M | 6mm×6mm×2.5mm |
L3 | チップインダクタ | GLGR2012T4R7M-HC | 2012サイズ |
C* | チップ積セラ | - | 電解不可(漏れ電流のため) |
D3 | SBDダイオード | - | シリコンダイオード不可 |
- 回路図と写真の回路は若干異なります。
- L1がDCDCのコイルです。適当に22uHを選びましたが、この値も突き詰めると変換効率が変わると思います。
- L2,L3はノイズ除去用です。無くてもよさそうですが。
- C16はSDカードの定番としては10uFですが、突入電流で電圧降下が起こりMSP430にリセットがかかるため2.2uFにしました。L2を取り払ったり、電源の積セラを増やした方がよさそうです。
- JTAGコネクタはSpy-By-Wire式での端子になっています。D3のSBDとR9はJTAGから給電する細工です。
- C20/C21はクリスタル安定用です。温度補償用セラミックコンデンサ(C0G/NP0)で補償を取りたいためMSP430内臓のCLはオフにしてます。*3
- C26~C28は0.33uに変更した方がいいかも知れません。カットオフは0.22uで22.6Hz、0.33uで15.1Hz。
低消費電力動作の細工
- ADXL330は駆動電圧があがると消費電流が増えます。なおADXL330は生産中止が決まっておりピン互換のADXL335は消費電流が多いため、ADXL345への変更を推奨。
- LTC1878は1mA以下の領域での変換効率が高いものを選びました。一般に高効率DCDCと言っても1mA以下では変換効率が50%以下というものも少なくありません。LTC1878より良いものがありましたら教えてください。
- AVccとVddに異なる電圧を与えるとMSP430内で端子が接続されているので発熱してしまいます。ADC基準電圧はVRefで与えるべきです。
- 動作電圧はなるべく低くしたいのですが、SDをきちんと動作させるために2.7Vが必要です。Vdd=2.7V付近にしています。
- MSP430F5418Aが登場すればよりCPUコア電圧を下げられるため、より低消費電力にできます。*4
- FPF1005はSDカードの電源を切断するためのものです。SDは電源を与えるだけで数mAの電流を消費してしまいます。1分に1度、SDへ書き込みするときのみ電源を投入しています。MSP430側もSPIモードに設定するとSDが電流を消費してしまうため、書き込み終了後Outputモードに切り替え、Lowを出力します。*5
ファームウェアの細工
MSP430のアプリケーションノート等にあるように、全体を割り込みによるイベントドリブン型として製作してあります。メインプログラムは、初期化処理終了後に
// CPU halt __bis_SR_register(LPM3_bits);
しています。
- ADCは1/32秒に1回センサーを観測
- RTCは1秒に1回、時刻情報読み取り
- SDは1分に1回、SPIを初期化しMicroSDに記録
その他、箇条書き。
- 動作周波数は1MHzで、SPIクロックを同じにしています。ADCクロックもMCLK(1MHz)を参照しています。
- FatFsは毎回(SD電源投入ごとに)初期化するのではなく、最初に初期化してファイルを開いたままSDの電源を切ります。
SDの電源投入 → SPI&SD初期化 → FatFsでアクセス(f_sync) → SD&SPIの終了
ソースコード(ファームウェア)
- logger-src.lzh(中にあるREADME.txtを参照のこと)
- ソースの一部であっても勝手に流用することは厳禁です。事前にご相談ください。
16KBまでフリーで使用できるTiの統合開発環境Code Composer Essentialsを使用しました。JTAGはMSP-FET430UIF($99)です。
連絡等
興味ありましたら事情を明記の上で連絡ください。研究用途や面白そうな話等、場合によってはサンプルを貸し出したり協力することも可能です*6。上の基板は20枚ぐらいあまっていますが(笑)*7
センサー載せ変えれば加速度以外でもだいたいのものが測れます。