• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Недавнее содержимое от pvvx

  1. pvvx

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

    Безусловно :ROFLMAO: , так как тактирование GPIO и шины у ESP8266 всего 26МГц, то ногодрыгом можно добиться в пределе 13 МГц - два такта - вывод "0" и "1". Но на изменение SDA надо ещё такт шины, и имея 3 такта с кривым SCL получим 8.7 MГц. Но надотъ уметь это писать на ASM с опциями компилятору...
  2. pvvx

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

    @nikolz - Стоит ли из-за 2Мега операций с 32-х битными целочисленными значениями в секунду использовать чип с таким диким потреблением? Это особенно касается всяких Sleep режимов и если идет soft обращение к Flash (любимый у народа диск во Flash), приводящее к сбросу всех кэшей у всех типов ESP….
  3. pvvx

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

    Сигнал с ноги /CS у Flash: На выборку тестовой процедуры потребовалось считать 10 блоков из Flash. Каждый блок по ~2 мкс с CLK 80 МГц -> 160 тактов DIO.
  4. pvvx

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

    Вот тот-же тест, но в Flash режиме DIO: И вместо 11 us время исполнения уже 20 us.
  5. pvvx

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

    Так-же смотрим в ассемблере, как располагаются константы и адреса вызовов и данных после сборки сишных исходников. Константы и адреса располагаются в конце процедуры. Это значит, что кэш должна была выбрать блок по адресу старта процедуры и блок в конце процедуры, чтобы CPU смог исполнить...
  6. pvvx

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

    Проверить качество кода и производительность ESP можно очень просто. Собираем какой пример с WiFi и RTOS. Для RTOS ставим частоту тиков в 1 мс. Частоту CPU в 16 MHz. Должен успевать качать и всё делать по WiFi без доп. задержек – т.е. 800 килобайт в сек в TCP. RTL87xx на Corteх M0 в 16 MHz всё...
  7. pvvx

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

    Оптимизация компилятора по размеру кода с включением подфункций даст самый большой тормоз в ESP :P
  8. pvvx

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

    С кэшированием Flash у ESP можно извратиться по полной, написав код в шахматном порядке (команды jmp или вызовы call с ret в сторону уменьшения адресов расположенными с интервалами равными блоку считываемого из Flash контроллером XIP). Тогда на каждый ret или jmp будет читаться блок в кэш из...
  9. pvvx

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

    Поглазел что пишут про deep-sleep в ESP Zigbee SDK... И указывают тоже-самое - deep-sleep более затратный для ESP чем light-sleep: Глубокий сон не используется SDK. Разработчик должен управлять им в своих приложениях. Для получения дополнительных методов пробуждения вы можете обратиться к...
  10. pvvx

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

    Реальные задачи могут содержать множество вызовов отдельных процедур, которые будут кэшироваться по мере их вызова. И скорость выполнения может ещё больше просесть. В принципе так оно пашет в любой задаче WiFi с MQTT - там кода более мегабайта и он в жизнь не влезает в кэш и ESP тупит по черному.
  11. pvvx

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

    Разницы не должно быть. Производится измерение времени выполнения процедуры, а тип среды IDE тут ни при чем. Цель тут в том, чтобы добиться линейного кода, когда отрабатывается заполнение кэш. Хорошая оптимизация компилятором может оптимизировать данный код вообще в nop, т.к. результат вызова...
  12. pvvx

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

    Кто-то там говорил о производительности ESP32-C3. Попробуем посчитать реальную производительность ESP32-C3 для больших объемов кода или для задач, где фигурирует чтение-запись Flash (вызывающая полное опустошение кэша CPU). Для примера создадим задачу из трех сумм и одного умножения 32-х битного...
  13. pvvx

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

    И расчет сколько это проработает от батарейки CR2032 указывает на 7 дней :ROFLMAO: Далее сбой из-за просадки напряжения ниже 1.6B при токе в 32 мА на старте инициализации Arduino.
  14. pvvx

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

    И для сравнения в nRF Power Profiler Kit II (PPK2) тоже самое (при установке напряжения 3.3В): В низу график GPIO вывода...
  15. pvvx

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

    Не тот диапазон тока включил (срабатывало ограничение в 24 мА). На большем диапазоне, чтобы видно было ток работы в Arduino: Клетка тока как и указано для синего - 5 мА.
Сверху Снизу