2021/05/06

Bluetooth LE の消費電流

 EBYTE の nRF51822 モジュールは、電波発信せずにループさせると、4mA程度で動いている。スリープらしきコードを埋め込むと、なるほど下がったが、それでも、1mA台で、これでは、ボタン電池で何ヶ月も持つなんてことはない。なんか細かいことをしないと、きちんと止まらないのかな。いかんせん、Arduino で使うのはそもそもイレギュラーなのか資料が少ない。

 接続した後は、ビビビ、と剣山みたいな通信が始まる。データを送っても極端に消費は増えないが、ビビビは切断まで続く。待ち時間は、徹底的に消費を抑えるのが、BLEデバイスなんだな。

EBYTE E73-2G4M04s1D nRF51822 SoC

 ちなみに、前に紹介したBLEモジュールで試してみると、なるほど、スリープ時には、かなり消費が少ない。
JDY-19 BLE 4.2 モジュール

 きちんとスリープが出来るコードが書けないと、話にならない。うーん、何とかなりそうにないな。


追記 2021-05-10

 プログラムを書き込んだ後、一度リセットしないと、デバッグモード?とかのままで、余計に電気が流れるらしい。電源にスイッチを挟んで、リセットの代わりにした。立ち上げ直すと、0mA付近になった。ま、テストだけなので、実際に動かすとどうかは分からないが。

 BLE が低消費電力と言われているのは、主に、未接続のアドバタイズ状態のことを言っているのであって、接続し余計な通信し続けるならば、必ずしも低消費とは言えないだろう。ボタン電池で、何ヶ月も動く!っていったところで、要は発信時間、つまり電気消費を、ひたすら少なくするって話。

 リアルタイム性が必要なデバイスは、接続した後、リンクが切れないよう最低限の通信を定期的に行うスリープを使い、割り込みで処理するのだろう。

 非リアルタイムデバイスの場合は、アドバタイズデータ自体に、データも埋め込めばいい。アドバタイズデータを受信するだけなら、接続しなくても済む。
※ 技適マーク無しの無線デバイスの実験は、日本国外で行いましょう。

0 件のコメント:

コメントを投稿