2016/06/16

[esp8266]DeepSleepとIO16

そのうち試そう、と思いつつ、ESP8266の省電力機能は試していない。
今回も試さないのだけど、いつか試すときのために、と思ってIO16とRSTをショートさせている。

たとえば、ドキュメントのLow Power Solutionを見ると、Deep-sleepの項目には、

image

などと書かれている。

EXT_RSTBはESP8266の呼び名。
External reset signalで、WROOM-02ではRSTピンになる。

じゃあIO16は何なのかというと、ESP8266ではXPD_DCDCピンになっている。
Datasheetだと、Deep-Sleep Wakeup兼GPIO16だそうだ。

 

Technical Referenceによると、GPIO16は他のGPIOピンと違い、RTCモジュールと関連づけられているそうだ。
内部でプルダウンしているとかは書いてあるのだが、それ以上の記述は見つけきらんかった。

WakeupとRSTが接続されていることになるから、Deep-Sleepから起き上がったらIO16がLowになって自動的にリセットされる、という流れだろう。
起き上がる、と書いたが、RTCモジュールとつながっていることと、system_deep_sleep()というAPIが引数に時間をとることから、時間によってWakeupさせるのであればIO16との接続がいるのだろうけど、ボタン操作とかの割込みでWakeupするのであれば直接RSTをたたき落とせばよいだけなのだろう。

なので、もしかしたらGPIO16とRSTを接続しなくてもDeep-Sleepは使えるんじゃないだろうか。。。と推測だけしているのだが、試していない。


ESPr Door Sensor - スイッチサイエンス
これのWikiに、開閉したらリセットがかかると書いてあったので、たぶん起動時にWiFi接続して送信したら、Deep-Sleepするのだろうと思う。
その後でWakeupするトリガは、IO16ではなくて、直接RSTをLOに落とすんじゃなかろうか、という気がしている。

回路図ではRSTにIO16もつながっているけど、スイッチらしきものもつながっているから、うーん、自信がないね。
こういう回路を、さらっと読めるようになりたいのだ。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。