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

Энергопотребление ESP(новое)

nikolz

Well-known member
У нормальных людей стоит инвертор, если есть автономное оборудование. И в розеточках ~220B. Всё равно DС-DC, вставленные в розеточки, не дают нормального КПД для аварийных датчиков.
Вас спросил - есть ли какие предложения по поводу увеличения их КПД и привел примеры использования, где это актуально. Если нет хороших решений - то значит нет. :)
Других вариантов у меня нет. А у Вас есть лучше предложение?
 

pvvx

Активный участник сообщества
Чем объяснить такой большой интервал между первым (очевидно настройкой) и рабочим передача по UDP по времени.
Чем ещё, как не работой SDK?
Вы про нештатную, не по спецификации, работу WiFi?
По штатной там не менее 6-ти фаз:
0) Объявление о выходе в WiFi эфир.
1) Активный или пассивный поиск по всем каналам AP (время тут кол-во каналов * 1 сек в среднем, чтобы найти к примеру AP с неафишируемым именем)
2) Соединение с AP (время тут зависит от роутера, но в большей степени от качества ПО в модуле по обработке шифрации. Если аппаратное, и роутер не дешевый, то значительно быстрее)
3) Получение IP в сети (бывает до 0.7 сек)
4) Получение через DNS IP сервера по запросу имени (тут зависит от DNS)
5) Соединение с внешним сервером (Зависит от удаления сервера и пинга к нему)
...
6) Отключение от AP.

На вашей диаграмме, нечто похожее имеем в начале:
https://esp8266.ru/forum/attachments/upload_2017-10-14_18-45-10-png.4808/
Но там и половины протокола не задействовано. Т.е. работа не по стандарту WiFi.
Не вижу там xxx ms, а вижу xx секунд.

Пример замеров с учетом всех описанных пунктов на чистом SDK без изысков: Тест на требуемую энергию для соединения модуля RTL8710BN с внешней AP в SDK 4.0b.
Остановка всех процессов RTOS (и её самой), переход в sleep, выход из sleep, запуск RTOS и передача 1 пакета в WiFi на RTL занимают до 1 ms (с вычетом времени проведенного в sleep).
Аналогично и у ESP-32S, но у него нет расширенной PMU и жрет CPU при старте больше. Т.е. не умеет делать некоторые необходимые для уменьшения потребления вещи в таком алго-режиме. Надо хакать, начиная с ROM-BIOS и выкидывать всё, что сейчас наработано на него. А у RTL серии "B" - такие возможности даны в базе и базовом SDK.
 
Последнее редактирование:

nikolz

Well-known member
Чем ещё, как не работой SDK?
Вы про нештатную, не по спецификации, работу WiFi?
По штатной там не менее 6-ти фаз:
0) Объявление о выходе в WiFi эфир.
1) Активный или пассивный поиск по всем каналам AP (время тут кол-во каналов * 1 сек в среднем, чтобы найти к примеру AP с неафишируемым именем)
2) Соединение с AP (время тут зависит от роутера, но в большей степени от качества ПО в модуле по обработке шифрации. Если аппаратное, и роутер не дешевый, то значительно быстрее)
3) Получение IP в сети (бывает до 0.7 сек)
4) Получение через DNS IP сервера по запросу имени (тут зависит от DNS)
5) Соединение с внешним сервером (Зависит от удаления сервера и пинга к нему)
...
6) Отключение от AP.

На вашей диаграмме, нечто похожее имеем в начале:
https://esp8266.ru/forum/attachments/upload_2017-10-14_18-45-10-png.4808/
Но там и половины протокола не задействовано. Т.е. работа не по стандарту WiFi.
Не вижу там xxx ms, а вижу xx секунд.

Пример замеров с учетом всех описанных пунктов на чистом SDK без изысков: Тест на требуемую энергию для соединения модуля RTL8710BN с внешней AP в SDK 4.0b.
Остановка всех процессов RTOS (и её самой), переход в sleep, выход из sleep, запуск RTOS и передача 1 пакета в WiFi на RTL занимают до 1 ms (с вычетом времени проведенного в sleep).
Аналогично и у ESP-32S, но у него нет расширенной PMU и жрет CPU при старте больше. Т.е. не умеет делать некоторые необходимые для уменьшения потребления вещи в таком алго-режиме. Надо хакать, начиная с ROM-BIOS и выкидывать всё, что сейчас наработано на него. А у RTL серии "B" - такие возможности даны в базе и базовом SDK.
----------------------------
Все, что Вы перечислили у меня происходит в первом сеансе связи, при включении питания модуля либо при потере связи с сервером. В этом случае общее время активности составляет от 1 до 3 секунд.
--------------------------------
В последующих сеансах пункты 1,2,3,4,5 не исполняются, так как в них нет надобности.
Пункт 6) исполняется после отсылки сообщения серверу т е после этих 150 мс (от импульса в начале до первого импульса в конце).
Сервер у меня внутренний - т е комп. и ответ от него приходит после этих 150 мс , как правило время ответа от 2 до 10 мс.
------------------------------------
Вопрос остался открытым как уменьшить интервал 150 мс и зачем он нужен?
Или как внутри него отключать приемник скажем на 100 мс, а потом процессор и ждать прерывание от приемника?
 

pvvx

Активный участник сообщества
Или как внутри него отключать приемник скажем на 100 мс, а потом процессор и ждать прерывание от приемника?
Никак - это время работы инициализации китайского SDK с WiFi.
Он не может просто восстановить работу блока WiFi. Он его инит по полной. В Espressif SDK нет такой функции и любых описаний на блок WiFi. Вы и сами это написать не сможете.
В режиме DTIM(x) модуль должен принять beacon от AP и только далее действовать...
Через время вы должны подтвердить режим сна с DTIM(x). Это опять будет тысячи ms с пиками за 200 mA.
А ещё через время, у вас выйдет потеря связи. Например по периоду смены ключа у AP роутера. Вы же не слушаете AP и нарушаете протоколы WiFi (игнором всего что можно на модуле ESP8266). Роутер обязательно выкинет такое соединение или через несколько DTIM(n) будут идти длинные переключения и никаких ваших 150 мс...
 
Последнее редактирование:

nikolz

Well-known member
Никак - это время работы инициализации китайского SDK с WiFi.
Он не может просто восстановить работу блока WiFi. Он его инит по полной.
В режиме DTIM(x) модуль должен принять beacon от AP и только далее действовать...
beacon это 100 мс а зачем еще 50?
Если смотрю пакеты в сети на сервере, то ответ сервера посылается через 94 мкс после пакета от модуля.
Может быть что-то посоветуете как подглядеть (установить ) фактически куда идут эти 150 мс.
Может быть в ESP установлен какой-то таймер и жестко задан этот интервал.
Например, если в конце deep-sleep поставить "waiti 0" то время перехода в сон у меня уменьшилось на 30 мс .
----------------------------------------------------------------------------
Может еще что-то в консерватории исправить?
 

pvvx

Активный участник сообщества
beacon это 100 мс а зачем еще 50?
А как он спящий (в режиме DTIM(n)) может послать пакет? :)
Например, если в конце deep-sleep поставить "waiti 0" то время перехода в сон у меня уменьшилось на 30 мс .
Нашли очередной глюк в ESP? :)

Варите глко-кашу для вашего роутера? С этим никто вам не поможет.

Измените настройки LPS (Leisure Power Save) и IPS (Inactive Power Save), включите wakelock wlan и будет вам счастье на любом другом модуле имеющем управление этими режимами. Даже deep_sleep не потребуется - будет жрать меньше ESP8266 c deep_sleep и всегда активен. Т.е. реакция,например на кнопку у модуля к серверу, будет в один baecon при среднем потреблении менее 1.5..2 мА.
 
Последнее редактирование:

nikolz

Well-known member
А как он спящий (в режиме DTIM(n)) может послать пакет? :)
Нашли очередной глюк в ESP? :)
1) Не понял про спящий. Вне зависимости от того сколько спит 2 секунды или 20 секунд у меня время сеанса не меняется (если не теряем сервер) т е чистое время без старта 180 мс.
Чтобы гарантированно принять beacon надо 101 мс. Но принять мы может и в 1 мс и в 101-ю.
По-умному надо, если приняли в 1-ю, то во 2-ю посылаем письмо серверу. И таким образом сеанс будет максимум 10 мс.
Если в 101 то соответственно максимум 110.
А имеем тупо 180.
Хочу, чтобы было адаптивно.
 

pvvx

Активный участник сообщества
1) Не понял про спящий. Вне зависимости от того сколько спит 2 секунды или 20 секунд у меня время сеанса не меняется (если не теряем сервер) т е чистое время без старта 180 мс.
Чтобы гарантированно принять beacon надо 101 мс. Но принять мы может и в 1 мс и в 101-ю.
По-умному надо, если приняли в 1-ю, то во 2-ю посылаем письмо серверу. И таким образом сеанс будет максимум 10 мс.
Если в 101 то соответственно максимум 110.
А имеем тупо 180.
Хочу, чтобы было адаптивно.
Это уже сделано - Есть режим сна для станции у ESP8266 LIGHT. Он просыпается к приходу beacon (на окно приема).
Откройте спецификации WiFi и не выдумывайте свой личный глюко протокол для вашего глюко роутера...
 
Последнее редактирование:

nikolz

Well-known member
Это уже сделано - Есть режим сна для станции у ESP8266 LIGHT. Он просыпается к приходу beacon (на окно приема).
Откройте спецификации WiFi и не выдумывайте свой личный глюко протокол для вашего глюко роутера...
Вы не поняли меня.
Если я не критикую вас, когда Вы рассказываете очевидное или написанное в документации, это не значит, что я этого не знаю.
Режим ligt - это не то что мне надо.
Более того, Вы как прусский офицер - "если в уставе сказано спать в окопе, то спать в окопе".
режим ligh существенно не снижает потребления. Проверял.
Я же говорю об управлении включением и выключением приемника без его перестройки. Никаким инструкциями это не запрещено.
 

pvvx

Активный участник сообщества
Вы не поняли меня.
Если я не критикую вас, когда Вы рассказываете очевидное или написанное в документации, это не значит, что я этого не знаю.
Режим ligt - это не то что мне надо.
Более того, Вы как прусский офицер - "если в уставе сказано спать в окопе, то спать в окопе".
режим ligh существенно не снижает потребления. Проверял.
Я же говорю об управлении включением и выключением приемника без его перестройки. Никаким инструкциями это не запрещено.
Такой функции в SDK нет, есть только включить :) :
bool wifi_set_opmode (uint8 opmode)
Parameters:
uint8 opmode: WiFi operating modes:
0x01: station mode
0x02: soft-AP mode
0x03: station+soft-AP
 

nikolz

Well-known member
Можно не возиться вообще с WiFi, а нанять кого - пусть в журнал пишет :)
Проблема есть и надо как-то ещё решать. DC-DC не умеет работать на такой диапазон нагрузок с нормальным КПД.
Как Вам такое решение?
upload_2017-10-16_8-31-6.png

upload_2017-10-16_8-21-52.png

Регулировка нагрузки при разных условиях нагрузки приведена в таблице ниже. Входное напряжение во время этого теста был 350 В постоянного тока.
upload_2017-10-16_8-22-31.png

110VDC: Pin=2.3W, Vout1=12.07V/0.062377A, Vout2=12.04V/0.06655A, Vout3=5.8V/0.06A,Efficiency: 82.7%
380VDC: Pin=2.622W, Vout1=12.06V/0.0623A, Vout2=12.02V/0.06645A, Vout3=5.8V/0.06A,Efficiency: 72.4%
 

nikolz

Well-known member
есть еще такое решение:
PMP20637 RevA
Test Report  390V – 48V/1kW high frequency resonant converter
 950kHz resonant frequency with less than 210g weight
 Utilize TI HV GaN FETs as input switches
 Optimized LLC SR conduction with UCD7138/UCD3138A
 Achieve peak 97.6% efficiency
 Power Stage dimension: 2” x 2.1” x 1.7”

upload_2017-10-16_8-41-50.png



upload_2017-10-16_8-42-53.png


upload_2017-10-16_8-43-22.png
 

Вложения

nikolz

Well-known member
А как он спящий (в режиме DTIM(n)) может послать пакет? :)
Хочу узнать Ваше мнение по следующему моменту.
Вот график тока ESP в режимеLoRFCalParam .
Выбран интервал, когда подстройка не осуществляется.
upload_2017-10-16_12-46-32.png

До 130 - это старт.
После 280 - это обмен по UDP.
Меня интересует область от 130 ms до 280 ms .
Ход мыслей следующий.
Так как eSP выходит из deep-sleep в произвольное время (интервал сна 2 секунды) то никакой синхронизации в это время
с роутером нет.
Тем не менее, все временные интервалы на активном участке работы eSP постоянны.
Поэтому можно предположить что они задаются внутри ESP
--------------------------
Интервал от 130 до 150 мс - это очевидно период подстройки передатчика и он в данном случае отсутствует т к задан режим подстраиваться не каждый раз. и фактически его можно было бы для этого случая сделать равным нулю.
---------------------
Таким образом, в интервале от 140 до 280 работает приемник и нет никаких сигналов передатчика.
Следовательно роутер ничего не знает о том что ESP спал и ничего не следил.
Поэтому сигнал синхронизации от сервера поступит на интервале не более 100 ms.
При это никаких сигналов ESP не посылает.
Но интервал до готовности связи с момента включения приемника равен 150 ms.
ВЫВОД - это время задано для включения передатчика в режим готовности к работе
и определяется программно в ESP
и WIFI к этому интервалу не имеет никакого отношения.
Теоретически оно может быть равно нулю.
Т е лишь участок от 280 мс до 290 мс является интервалом связи по WIFI и действительно необходим.

======================
А теперь ВНИМАНИЕ, вопрос к знатокам.
Как уменьшить интервал от 130 до 280 мс до минимального значения?.
Спасибо
 

pvvx

Активный участник сообщества
2c-esp8266_non_os_sdk_api_reference_en.pdf v2.1.2:
RF initialization will do the whole RF calibration which will take about 200 ms;
 

nikolz

Well-known member
2c-esp8266_non_os_sdk_api_reference_en.pdf v2.1.2:
RF initialization will do the whole RF calibration which will take about 200 ms;
А это Вы почему пропускаете?
• 1: RF initialization only calibrate VDD33 and Tx power which will take about
18 ms; this reduces the current consumption.
• 2: RF initialization only calibrate VDD33 which will take about 2 ms; this has
the least current consumption.
Я использую всегда либо 1 либо 2 и никогда 3.
-----------------------------------
И как по Вашему согласовывается это утверждение в 200 мс c графиком выше на котором 150 мс.
И как тогда будет выглядеть график в режиме 2 (2 мс)
 

pvvx

Активный участник сообщества
А это Вы почему пропускаете?
• 1: RF initialization only calibrate VDD33 and Tx power which will take about
18 ms; this reduces the current consumption.
• 2: RF initialization only calibrate VDD33 which will take about 2 ms; this has
the least current consumption.
Я использую всегда либо 1 либо 2 и никогда 3.
-----------------------------------
И как по Вашему согласовывается это утверждение в 200 мс c графиком выше на котором 150 мс.
И как тогда будет выглядеть график в режиме 2 (2 мс)
Зачем гадать что-то с вашим безликим графиком (?), если существует logUART и терминал пишет что происходит с метками времени? Так сложно вставить в код метки вывода событий хотя-бы "1", "2" и посмотреть ход отработки старта?
Есть и элементарные Saleae анализаторы до 200 руб, по которым построен график Rapid_Loader/ESP-01-StartSignals.gif at master · pvvx/Rapid_Loader · GitHub
В инициализации китай-глюко-Espressif SDK инициализируется не только RF часть и время этого процесса вам не известно. По вашему безликому графику скорее всего это оно и есть.
Кто вас знает - может у вас там ваша любимая Lua и инится пустой блок SPIFFS?
Исходник то нема и не будет, вы же скрываете всё. Может и сам график нарисован от руки или с массой ошибок в измерении по дискретности времени и вообще замеру в каком месте питания и ... :)
 
Последнее редактирование:

nikolz

Well-known member
Зачем гадать что-то с вашим безликим графиком (?), если существует logUART и терминал пишет что происходит с метками времени? Так сложно вставить в код метки вывода событий хотя-бы "1", "2" и посмотреть ход отработки старта?
Есть и элементарные Saleae анализаторы до 200 руб, по которым построен график Rapid_Loader/ESP-01-StartSignals.gif at master · pvvx/Rapid_Loader · GitHub
В инициализации китай-глюко-Espressif SDK инициализируется не только RF часть и время этого процесса вам не известно.
Ну и зачем Вы это все написали?
Сначала из документации строчку списали ( т е очевидное излагаете)
Но выбрали то, что ближе к ответу
Потом рассказывать о том как Вы измеряете .
Я Вас разве об этом спросил?
Не нравится мой график?
Покажите на своем время прошедшее от старта до ответа по WIFI и объясните его.
На Ваших картинках этого нет
И не надо ляля про ваши приборы.
Просто сказали бы что не знаете ответ и такие данные видите впервые.
А что Вы намерили за 200 рублей -там нет вообще что-либо про работу WIFI.
Короче, не знаете, а сказать об этом стесняетесь. Бывает..
 

pvvx

Активный участник сообщества
Ну и зачем Вы это все написали?
Сначала из документации строчку списали ( т е очевидное излагаете)
Но выбрали то, что ближе к ответу
Потом рассказывать о том как Вы измеряете .
Я Вас разве об этом спросил?
Не нравится мой график?
Покажите на своем время прошедшее от старта до ответа по WIFI и объясните его.
На Ваших картинках этого нет
И не надо ляля про ваши приборы.
Просто сказали бы что не знаете ответ и такие данные видите впервые.
А что Вы намерили за 200 рублей -там нет вообще что-либо про работу WIFI.
Короче, не знаете, а сказать об этом стесняетесь. Бывает..
Я не обладаю каналом телепатии к вашим модулям и что вы там насобирали. Может это вообще у вас не ESP8266. :p
На свои замеры я подробно описываю и/или даю исходники для любых уточнений. Устройства для измерений я тоже привожу самые доступные, чтобы любой мог повторить и только тогда могут быть какие-то обсуждения. А пока занимаемся гаданием "на кофейной гуще" - ваших наскальных рисунках.

Пример: В RTL-ках есть функция считывания регистров блока WiFi, используемая при переключениях режимов работы WiFi блока. Время восстановления регистров части чипа с WiFi запомненными значениями составляет время работы шины к данной периферии CPU и кол-ву регистров. Как вы дуамаете, сколько будет в мкс восстановление пусть пары сотен значений регистров? :)
 
Последнее редактирование:

nikolz

Well-known member
Я не обладаю каналом телепатии к вашим модулям и что вы там насобирали. Может это вообще у вас не ESP8266. :p
Кто о чем, а вшивый о бане.
Я что спрашивал Ваше мнение о моих модулях?
Я же тоже не знаю на чем Вы там свои картинки рисовали и сейчас всем лапшу на уши вешаете по RTL
Потому что никто не подтвердил Ваши картинки.
Я Вас спросил знаете ли Вы время которое проходит от старта до начала связи по WIFI в ESP
и привел Вам свои результаты.
Нет у Вас других результатов?
ну тогда причем здесь телепатия?
Не знаете, не надо мне цитаты из документации или из вики писать я и сам это могу прочитать.
 

pvvx

Активный участник сообщества
Кто о чем, а вшивый о бане.
Я что спрашивал Ваше мнение о моих модулях?
Я же тоже не знаю на чем Вы там свои картинки рисовали и сейчас всем лапшу на уши вешаете по RTL
Потому что никто не подтвердил Ваши картинки.
Это сделали и вы, сняв график работы примера в GitHub - pvvx/SDKnoWiFi: ESP8266 Open SDK without WiFi (startup < 30 ms to complete the flash cache) :p

Я Вас спросил знаете ли Вы время которое проходит от старта до начала связи по WIFI в ESP
Я вам отвечал - в Lua это время бывает и за несколько секунд, т.к. это время инициализации Lua до пользовательского вызова WiFi если стоит SPIFFS и он сильно фрагментирован.
В других случаях с Espressif SDK время от старта (срабатывания RESET) до рабочего пользовательского вызова работы с WiFi (инициализации всей системы, включения LwIP, таймеров и прочего необходимого) измеряется от 200 ms. Не менее.
Описанная у Espressif калибровка WiFi - это один из сотни процессов инициализации до работоспособности SDK.
 
Сверху Снизу