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