Bluetoothモジュールのスリープモードと消費電力最適化
電池駆動IoTデバイスにおいて消費電力は決定的な制約条件だ。適切に設定されたBluetoothモジュールは、同じ電池で2〜5年の動作を実現できる。本記事ではBLEモジュールのスリープモードと実際の消費電流を左右する設計判断を詳解する。
BLEモジュールの電源状態
| 状態 | 電流(典型値) | 起動遅延 | RAM保持 |
|---|---|---|---|
| Active TX (0 dBm) | 5〜7 mA | — | あり |
| Active RX | 4〜6 mA | — | あり |
| アイドル | 1〜3 mA | — | あり |
| Sleep (System ON) | 1.5〜10 µA | <1 ms | あり |
| Deep Sleep (System OFF) | 0.1〜1 µA | 250〜500 ms | 部分/なし |
| Hibernate | 0.02〜0.1 µA | >500 ms | なし |
平均電流の計算
1000ms間隔でアドバタイズする場合:TX電流5.5 mA、TX時間1.5 ms、スリープ電流2.5 µA → I_avg ≈ 10.75 µA。1000 mAh電池で理論上10.7年、実際は3〜5年(CR2477)。
実装上の重要事項
- ビジーウェイト禁止:全待機はWFE状態で実施
- 未使用ペリフェラル無効化:アイドルUARTは約1 mA消費
- GPIO適切設定:フローティング入力で最大100 µA/ピンのリーク
- DC-DCコンバータ有効化:LDOより約1.5 mA節約
センサー電力ゲーティング
多くのBLEセンサーノードではセンサー自体がBLEモジュールより大きな消費電力となる。GPIO制御PMOSまたはロードスイッチで測定間にセンサーへの電源を完全遮断することが必須。10 µAのスリープ電流でも5年間では1年分の電池消耗となる。
コネクション接続パラメータ最適化
コネクション間隔500ms〜2秒+スレーブレイテンシ設定で、低スループットセンサーアプリの平均電流を一桁µA台に削減できる。スレーブレイテンシ9+100msコネクション間隔で実効的に1秒ポーリングレートを実現。
Bluetoothモジュールの省電力ファームウェアは、ハードウェア選定からSoC設定、ペリフェラル管理、通信パラメータ調整まで全域にわたる設計規律だ。