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

ESP32C3 заглушка DeepSleep перестала исполняться

nikolz

Well-known member
Вы невнимательно читали редми. Там сказано, что это примерно.
По-моему проблема не в том что выходит за 280мкс, а в том что снова входит в сон через 12000 мкс
В вашей таблице тоже нет ничего о времени входа в сон.
 

pvvx

Активный участник сообщества
Вы невнимательно читали редми. Там сказано, что это примерно.
По-моему проблема не в том что выходит за 280мкс, а в том что снова входит в сон через 12000 мкс
В вашей таблице тоже нет ничего о времени входа в сон.
Посмотрите три последних строки таблицы.

Обычно дается и время старта кварцевого генератора (время до стабилизации). Для часового кварца оно громадно у всех.

И у всех чипов длительный старт при подаче питания, выражающийся в десятках мс. Пока там в SoC/Flash внутренние питания установятся, кварцы стартанут и отсчитают к тысяче их тиков, потом PLL всякие и т.д....
 

pvvx

Активный участник сообщества
После отключения основных ключей SOC начинают разряжаться конденсаторы и заряжается в основном питании (а без него чип не работает). По мере этого процесса брыкаются какие-то компоненты...
Плюс любой LDO или DC-DC при переключении нагрузки в 1000 раз всегда дает выброс, что есть заряд емкости в питании = ток.
На показанном графике этот процесс (выброс БП) убран специализированным БП.
 

pvvx

Активный участник сообщества
> а в том что снова входит в сон через 12000 мкс

А в BLE 2-х летней давности ESP-IDF на ESP32-C3, вместе с передачей на 3-х каналах, весь процесс активности SoC длится до 9 мс :p
Т.е. быстрее чем ваш пример с вашими настройками.
Если правильно написать код вашего примера и выставить опции - выйдет менее 3 ms.
Но всё равно ESP не сможет соперничать с чипами nRF или TLSR и т.д.
 

pvvx

Активный участник сообщества
Любой ESP - самый худший из всех в данном классе. Именно по этому его любит народ. Все с ними возятся, чтобы добиться хоть чего-то полурабочего и от этого много описаний этой возни - это у народа считается = хорошо. :)
А если на чип нет спама - значит всё в нем работает изумительно. И это плохо для народу - не повторить возни...
 

nikolz

Well-known member
> а в том что снова входит в сон через 12000 мкс

Про это, и про причину, вам уже давно описал.
Все принты я убрал. 12 ms получается на программе в которой есть только условный оператор и индексация счетчика.
Никакой печати в заглушке нет. Это видно на последней картинке. Есть печать лишь в main.
 

nikolz

Well-known member
> а в том что снова входит в сон через 12000 мкс

А в BLE 2-х летней давности ESP-IDF на ESP32-C3, вместе с передачей на 3-х каналах, весь процесс активности SoC длится до 9 мс :p
Т.е. быстрее чем ваш пример с вашими настройками.
Если правильно написать код вашего примера и выставить опции - выйдет менее 3 ms.
Но всё равно ESP не сможет соперничать с чипами nRF или TLSR и т.д.
Благодарю за ответы.
Но, не надо ломиться в открытые ворота.
Я не утверждал что что-то написал правильно или неправильно. Я лишь взял тест разработчиков.
Относительно тока покоя. Пока я получил то, что встречал в интернете.
Плата супер мини ESP32C3 берет 0.65 ma в режиме deepsleep так как светит диод питания.
Когда диод убрал то получил 28 uA.
Относительно выхода из deepsleep без заглушки намоей картинке 1. Она похожа на Вашу.
------------------
Про программу.
В документации сказано, что заглушка запускается, когда, все кроме FastRam, отключено.
Программа заглушки такая:
Код:
RTC_FAST_ATTR uint32_t s_count = 0;
RTC_FAST_ATTR const uint32_t s_max_count = 8;

void  wake_stub_example(void)
{    s_count++;
    if (s_count >= s_max_count) {s_count = 0;  esp_default_wake_deep_sleep(); return; }
    esp_wake_stub_sleep(&wake_stub_example); }
1746675439063.png
Длительность работы заглушки 39-26=13 ms (квант времени 0.5 ms) время в ms.
Можете правильно написать, чтобы было 3 ms?
---------------
А вы знаете чип nRF или TLSR и т.д. с таким RAM и FLASH и скоростью процессора? И по таким ценам?
 

pvvx

Активный участник сообщества
Выведите на GPIO отладочные импульсы (на осел и на второй канал ток питания) и узнайте точно, где и какая задержка.
Может это так у вас стартует сам SOC и всякие глупости типа ожидания PLL от кварца или калибровка RC генератора. чтобы якобы настроить правильное время sleep (что совершенно бесполезно, т.к. в sleep будет другое напряжение и RC генератор гарантированно будет иметь другой период)...
 

pvvx

Активный участник сообщества
Плата супер мини ESP32C3 берет 0.65 ma в режиме deepsleep так как светит диод питания.
Когда диод убрал то получил 28 uA.
У вас там все в мА. О каких мкА вы говорите? О измерении тестером, потом, когда уже все колебания уляжутся?
А вы знаете чип nRF или TLSR и т.д. с таким RAM и FLASH и скоростью процессора? И по таким ценам?
При чем тут "скорость" процессора?
Производительность у Cortex больше, чем у ESP-C3. Тормоза у ESP в кэшировании Flash. Это особенно сказывается в сложных вычислениях и проектах, когда весь исполняемый код не влезает в RAM у ESP - тогда он тупит на уровне 16 МГц любого STM32F103.
 

pvvx

Активный участник сообщества
Даже дешевый WCH по старту считывает Flash в RAM, а говорит что у него типа всего до сотни кб RAM, но есть опции увеличения за счет меньшего "объема" Flash :)
А из RAM поток максимум с 1 тактом ожидания в некоторых ситуациях, при частотах CPU за 80 MHz.
SPI Flash в ESP - всего до 80/2/4 Мега слов (команд CPU) в секунду...
Так что о какой производительности в ESP идет разговор? О закэшированном "while(i++);" ? :) :)
 

nikolz

Well-known member
пардон в проге пропущен оператор:
Даже дешевый WCH по старту считывает Flash в RAM, а говорит что у него типа всего до сотни кб RAM, но есть опции увеличения за счет меньшего "объема" Flash :)
А из RAM поток максимум с 1 тактом ожидания в некоторых ситуациях, при частотах CPU за 80 MHz.
SPI Flash в ESP - всего до 80/2/4 Мега слов (команд CPU) в секунду...
Дело в том, что мне не надо примитивный излучатель рекламы температуры или выключатель лампочки.
Мне нужен автономный полноценный вычислитель с беспроводным обменом информацией
Как вариант сейчас хочу собрать TLSR8208+ESP32C3.
 

pvvx

Активный участник сообщества
Или разговор о тормозной шине ко всей периферии у ESP?
 

pvvx

Активный участник сообщества
Мне нужен автономный полноценный вычислитель с беспроводным обменом информацией
Как вариант сейчас хочу собрать TLSR8208+ESP32C3.
Они будут на равных по производительности. Тут смотря как писать код.
Но TLSR я считаю тормозом. Он сильно тупит если код в SPI-Flash - значительно более чем в 3..4 раза, чем исполнение из RAM. И рывками - чтение SPI-Flash происходит как и у ESP мелкими блоками. Но ему с его токами питания это простительно. Что ну никак не сказать про любой ESP. Там всё наоборот - если начал тупить на кэше из Flash, то потребление растет. А должно быть наоборот. Что там наворотили - неизвестно. На ожидании выборки жрет больше :oops:
 

pvvx

Активный участник сообщества
К примеру, чтобы 2xCPU ESP32 работалb на полную, нужен поток инструкций в 240*2=480 M.слов. Это более 1Гегабaйта в секунду. Это выборка в 1 наносекунду из RAM :) Тактирование всего этого должно быть ещё в пару раз больше. И где там попрятались ГеггаГерцы? :ROFLMAO:
Самым быстрым ранее был Микрочип - у него более 1-ой (в среднем) инструкции за такт. Но потом частот RAM не хватило....
 

nikolz

Well-known member
К примеру, чтобы 2xCPU ESP32 работалb на полную, нужен поток инструкций в 240*2=480 M.слов. Это более 1Гегабaйта в секунду. Это выборка в 1 наносекунду из RAM :) Тактирование всего этого должно быть ещё в пару раз больше. И где там попрятались ГеггаГерцы? :ROFLMAO:
Самым быстрым ранее был Микрочип - у него более 1-ой (в среднем) инструкции за такт. Но потом частот RAM не хватило....
Что можете рекомендовать?
 

pvvx

Активный участник сообщества
Что можете рекомендовать?
Не использовать deep-sleep в ESP-С3 во время работы. Только если сон надолго.
Выигрыша всё равно нет, т.к. в питании нужен LDO или DC-DC на 1A. А они хорошо кушают. И на фоне этого тока разница простого sleep и deep-sleep ничтожна. А время пробуждения после deep-sleep может вносить больший расход энергии в среднее потребление.
Надо считать оптимум, на какую паузу целесообразно использовать deep-sleep. (Или вообще какие либо sleep - может и простого понижение частоты или остановке CPU даст лучший результат).
Для WiFi пауза исчисляется в beacon AP 102.4 мс. Всякие режимы сбережения типично используют до 3-х этих периодов, т.е. для удержания соединения с AP надо пробуждаться не позже 307.2 ms.
 
Сверху Снизу