• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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 - тоже ничего не происходит.

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