• Система автоматизации с открытым исходным кодом на базе 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) работает прекрасно.
 
Сверху Снизу