2015年8月28日金曜日

ESP-WROOM-02のメモ(11):3つのSleepの使い分け

ESP-WROOM-02(ESP8266)には3種類のスリープ機能がある
それぞれのざっくりしたイメージは以下のようになる

 ・Modem-Sleep
   →無線通信関連の部分(モデム部分)をスリープ

 ・Light-Sleep
   →CPU部分を含めてスリープ

 ・Deep-Sleep
   →RTC(リアルタイムクロック)部分以外をすべてスリープ

下にいくほど深いスリープとなる
各モードでの消費電流は以下の表を参照

データシートより/状態別の消費電流

3種のスリープはDeep-Sleepとそれ以外で扱いが大きく異なる


Deep-SleepはRSTピンに対するリセット信号が入力されないと復旧しない
この復旧処理はほぼ通常時のリセット動作と同じ
プログラムは冒頭から再実行される
 (※復旧時にいくつか設定を保持しているような記述があり調査中
RTCは自分で任意時間後にリセット信号を出力するために用いる

スリープするトリガーはユーザーのESP.deepSleep()関数実行による


Modem-SleepとLight-Sleepは無線通信などの割り込みによって復旧する
Deep-Sleepとは異なりプログラムがリセットされることは無い
スリープ自体も自動的に行われるため、スリープ/復旧ともにユーザーが意識することは無い
スリープというよりは未使用のリソースをサスペンドする省電力動作モードのイメージの方が近い
スリープに入っても無線接続等は維持される

スリープ時にどちらのスリープに入るか(またはスリープしないか)の設定が可能
この設定にはwifi_set_sleep_type()関数が用いられる
デフォルト設定はModem-Sleep
以前に電流値を測定した際、入力待ち状態で15mA程度であったので符合する


実際の処理および消費電流の実測は次回

0 件のコメント:

コメントを投稿