We have done a lot of optimizations on deep sleep in SDK lib and all optimizations are based on EST_RSTB(GPIO16---EXT_RSTB).
If you use CH_EN(GPIO16---CH_EN), then many of these optimizations can not be used each time the system restarts. Besides, the results can be unpredictable if GPIO16 is connected to CH_EN in this case.
The optimization can be summarized as below.
1) RTC memory can not be used to store data for the next wakeup.
For example, a temperature sensor to measure at the interval of 10seconds, but sent out data at the interval of 30minutes. So the firmware can store the measurement data into RTC memory, and then go to deep-sleep. At the 30min interval, the firmware send out data by WiFi.
This solution save the energy greatly, since WiFi connections need more time and more current.
2) some optimized function for deep-sleep can not be used any more, for example:
system_deep_sleep_set_option(uint8 option)
However, a new SDK in the end of July, may add more options for the applications, which may power-on rather than deep-sleep wakeup.
Thanks.Statistics: Posted by Espressif_Kelly — Wed Jul 22, 2015 8:30 pm
]]>