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設定、ペリフェラル管理、通信パラメータ調整まで全域にわたる設計規律だ。