• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь Работа deepsleep и lightsleep

Пытаюсь разобраться с работой функций для снижения потребления энергии. В частности есть документ, в котором всё это достаточно подробно описано – Low Power Solutions.

При этом у меня не модуль ведет себя совершенно не так, тестирую на ESP-07. Задача очень простая: ввести систему в режим сна и выводить её из этого состояния либо "по кнопке", либо "по таймеру".

Функция power_lightsleep выглядит таким образом:
Код:
void power_lightsleep(uint32 duration){
  os_printf("power_lightsleep\n");
  os_delay_us(1000);

  wifi_station_disconnect();
  wifi_set_opmode(NULL_MODE);
  wifi_set_sleep_type(LIGHT_SLEEP_T);
  wifi_fpm_open();

  PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTCK_U,3);
  gpio_pin_wakeup_enable(13, GPIO_PIN_INTR_ANYEDGE );
  wifi_fpm_set_wakeup_cb(power_cb);
  wifi_fpm_do_sleep(0xFFFFFFF);

}
При этом "просыпание" по таймеру срабатывает отлично, а вот по при нажатии кнопки на GPIO13 - ничего не происходит. В чем может быть ошибка?

С system_deep_sleep еще хуже. Функция выглядит так:
Код:
void power_deepsleep(uint32 duration){
  os_printf("power_deepsleep\n");
  os_delay_us(1000);
  system_deep_sleep(duration*1000);
}
Через заданное время чип не поднимается, он так и остается "спать". Если длительность занулить (system_deep_sleep(0): there is no wake up timer; in order to wakeup, connect a GPIO to
pin RST, the chip will wake up by a falling-edge on pin RST. ) и попытаться поднять модуль из спячки кнопокой на RST - тоже ничего не происходит.

Куда хоть капать-то?
 
Сверху Снизу