• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Вопрос DeepSleep в ESP12

Superbizone

New member
Всем доброго дня!
Как то непонятно себя ведёт модуль ESP12 при режиме спячки.

У меня программа сделана так, что после резета модуль делает дела и впадает в DeepSleep. После окончания заданного времени спячки, как известно, модуль сбрасывает сам себя и всё должно повториться.

Так вот проблема в том что модуль через заданное время просыпается только если интервал был меньше минуты %\......всё прекрасно работает (оставлял на сутки) , А вот если ставлю больше - не просыпается.... было что просыпался несколько раз (раза три подряд) потом тишина...

Я так рассуждаю, что если бы было что-то не так подключено, то он бы не просыпался при любых интервалах. Программа одна и та же ( просто меняю интервал) ... Как бороться?
 

ivy

New member
Пин 16 подключен к пину Ресет через 470 Ом?
Пин ресет подключен к плюсу через 10к?
От чего питается модуль? Батарея? Регулятор?
 

Superbizone

New member
Пин 16 подключен к пину Ресет через 470 Ом?
Пин ресет подключен к плюсу через 10к?
От чего питается модуль? Батарея? Регулятор?
да.

Я так рассуждаю, что если бы было что-то не так подключено, то он бы не просыпался при любых интервалах. Программа одна и та же ( просто меняю интервал) ...
 

pvvx

Активный участник сообщества
Правильно притяните ножки ответственные за режим старта модуля с flash.
 

Superbizone

New member
Правильно притяните ножки ответственные за режим старта модуля с flash.
Притянул всё по документации...
опять же - если неправильно притянуты ножки ответственные за режим старта модуля с flash, то почему всё хорошо когда спит меньше минуты?
 

Сергей_Ф

Moderator
Команда форума
Притянул всё по документации...
опять же - если неправильно притянуты ножки ответственные за режим старта модуля с flash, то почему всё хорошо когда спит меньше минуты?
На ножках может сохранятся потенциал некоторое время, я сам мучился когда ноги в воздухе висели - то ноль, то единица на порту. Если замкнеш кратковременно на землю - пару минут на ножке ноль, замкнеш на плюс - пара минут единица. Точнее там пограничное напряжение 1.32 вольта и как его интерпретирует еспишка одному китайскому богу известно.
 

nikolz

Well-known member
да.

Я так рассуждаю, что если бы было что-то не так подключено, то он бы не просыпался при любых интервалах. Программа одна и та же ( просто меняю интервал) ...
Вы неправильно рассуждаете, например, может происходить переполнение при работе с большими интервалами.
---------------------------------------------------------
Нет программ без ошибок,потому, что всегда есть ошибки, для которых время еще не наступило.
 

pvvx

Активный участник сообщества
Вы неправильно рассуждаете, например, может происходить переполнение при работе с большими интервалами.
---------------------------------------------------------
Нет программ без ошибок,потому, что всегда есть ошибки, для которых время еще не наступило.
В SDK нет переполнения:
void system_deep_sleep(uint32 time_in_us)
Частота тактов RTC примерно 5..6 us. Время deep_sleep задается в тактах RTC в регистр IO_RTC_SLP_VAL (0x60000704).
Если time_in_us меньше 0x00FFFFF, то кол-во тактов вычисляется так:
(time_in_us <<12)/ system_rtc_clock_cali_proc()
Если time_in_us больше 0x00FFFFF, то кол-во тактов вычисляется так:
(time_in_us/ system_rtc_clock_cali_proc())>> 12
2pow32 - это 71 минута.
--------
Если в пользовательском коде нет ошибок, то вся причина в неверном подключении модуля (подтяжки и прочее).
 

Superbizone

New member
Всем спасибо за участие!

заработало.. Вроде бы проблема была в том, что у меня по схеме TX и RX были притянуты к земле. повесил в воздух - пока работает.

Задумывалась девайсина с аккумулятором, и преобразователем USB-UART... чтобы при подключении к компу и аккумулятор заряжался и была возможность прошить/настроить без дополнительных подключений и преобразователей.
Питание на микросхему USB-UART (CH340) подаётся только при подключении к компу... в остальное время,чтобы зря не садить акум, питание на неё не подаётся, а без питания она тянет rx и tx к земле ((, что и сказалось таким странным образом (

Видимо всё таки придётся без неё...
 

Сергей_Ф

Moderator
Команда форума
@Superbizone попробуйте разрывать "землю" у ch340, а не "плюс". Может так будет работать нормально. А прошивать можно и "по воздуху". Добавить в веб сервер загрузку прошивки элементарно. Примеры есть.
 

nikolz

Well-known member
можно диодами создать третье состояние (большое сопротивление).
 

Superbizone

New member
Для написания и прошивки сейчас использую ардурнинувскую сдк...есть примеры для неё с прошивкой по воздуху? просто мне пока не попадалось...
 

Сергей_Ф

Moderator
Команда форума
@Superbizone загляните в примеры у Ардуино IDE в раздел esp, там есть и ОТА и веб- обновления. Я использовал веб (HTTP) работает прекрасно.
 
Сверху Снизу