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

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

pvvx

Активный участник сообщества
Так уж и быть, раз копаюсь счас в CH592F… Но это RISC-V. А про STM32 сами найдете :p
Вам так сложно самому измерить то, что вам требуется :) :)

У CH592F на первой странице PDF в графе про Flash написано:
  • Basically, zero-wait at the system frequency of 20MHz
И в PDF есть подробные данные о времени пробуждения SoC во всех режимах…

Вот для сравнения время старта SoC после sleep с отключением внутренних питаний из примера “WCH\ch592\EVT\EXAM\BLE\Broadcaster”:
1746958148092.png

В данный пример “ Broadcaster ” вкорячил скопированную процедуру из примера для ESP:
C:
int speed_test(int a) {
  volatile int b = 0;
  volatile int c;
  a++;
  b++;

  c = a + b;
  a = c + b;
  b = a - c;
  b = b * c;

  c = a + b;
  a = c + b;
  b = a - c;
  b = b * c;

  c = a + b;
  a = c + b;
  b = a - c;
  b = b * c;

  c = a + b;
  a = c + b;
  b = a - c;
  b = b * c;

  c = a + b;
  a = c + b;
  b = a - c;
  b = b * c;

  c = a + b;
  a = c + b;
  b = a - c;
  b = b * c;

  c = a + b;
  a = c + b;
  b = a - c;
  b = b * c;

  c = a + b;
  a = c + b;
  b = a - c;
  b = b * c;

  c = a + b;
  a = c + b;
  b = a - c;
  b = b * c;

  c = a + b;
  a = c + b;
  b = a - c;
  b = b * c;

  return b;
}
...
        GPIOA_SetBits(bRXD1);
        GPIOA_ResetBits(bRXD1);
        GPIOA_SetBits(bRXD1);
        speed_test(22);
        GPIOA_ResetBits(bRXD1);
        GPIOA_SetBits(bRXD1);
...

Исполнение идет из Flash, после старта SoC:
1746958223277.png
Время подписано желтеньким... 8.56 us - в этом интервале и вывод в GPIO в десяток нс и можно не учитывать.
 

pvvx

Активный участник сообщества
И оно-же при выполнении из RAM
1746959025114.png

Что-же будет если возьмем одинаковый по CLK CPU чип WCH c ESP32-C3? К примеру CH32F208W?
 

pvvx

Активный участник сообщества
И вот то-же самое из CH32F203 на его 144MHz
1746964753740.png
Уже 1.48 us
И как выглядит процедура в
Код:
00000268 <speed_test>:
     268:    1141                    addi    sp,sp,-16
     26a:    c402                    sw    zero,8(sp)
     26c:    47a2                    lw    a5,8(sp)
     26e:    0505                    addi    a0,a0,1
     270:    0785                    addi    a5,a5,1
     272:    c43e                    sw    a5,8(sp)
     274:    47a2                    lw    a5,8(sp)
     276:    953e                    add    a0,a0,a5
     278:    c62a                    sw    a0,12(sp)
     27a:    47b2                    lw    a5,12(sp)
     27c:    4722                    lw    a4,8(sp)
     27e:    97ba                    add    a5,a5,a4
     280:    4732                    lw    a4,12(sp)
     282:    40e78733              sub    a4,a5,a4
     286:    c43a                    sw    a4,8(sp)
     288:    4722                    lw    a4,8(sp)
     28a:    46b2                    lw    a3,12(sp)
     28c:    02d70733              mul    a4,a4,a3
     290:    c43a                    sw    a4,8(sp)
     292:    4722                    lw    a4,8(sp)
     294:    97ba                    add    a5,a5,a4
     296:    c63e                    sw    a5,12(sp)
     298:    47b2                    lw    a5,12(sp)
     29a:    4722                    lw    a4,8(sp)
     29c:    97ba                    add    a5,a5,a4
     29e:    4732                    lw    a4,12(sp)
     2a0:    40e78733              sub    a4,a5,a4
     2a4:    c43a                    sw    a4,8(sp)
     2a6:    4722                    lw    a4,8(sp)
     2a8:    46b2                    lw    a3,12(sp)
     2aa:    02d70733              mul    a4,a4,a3
     2ae:    c43a                    sw    a4,8(sp)
     2b0:    4722                    lw    a4,8(sp)
     2b2:    97ba                    add    a5,a5,a4
     2b4:    c63e                    sw    a5,12(sp)
     2b6:    47b2                    lw    a5,12(sp)
     2b8:    4722                    lw    a4,8(sp)
     2ba:    97ba                    add    a5,a5,a4
     2bc:    4732                    lw    a4,12(sp)
     2be:    40e78733              sub    a4,a5,a4
     2c2:    c43a                    sw    a4,8(sp)
     2c4:    4722                    lw    a4,8(sp)
     2c6:    46b2                    lw    a3,12(sp)
     2c8:    02d70733              mul    a4,a4,a3
     2cc:    c43a                    sw    a4,8(sp)
     2ce:    4722                    lw    a4,8(sp)
     2d0:    97ba                    add    a5,a5,a4
     2d2:    c63e                    sw    a5,12(sp)
     2d4:    47b2                    lw    a5,12(sp)
     2d6:    4722                    lw    a4,8(sp)
     2d8:    97ba                    add    a5,a5,a4
     2da:    4732                    lw    a4,12(sp)
     2dc:    40e78733              sub    a4,a5,a4
     2e0:    c43a                    sw    a4,8(sp)
     2e2:    4722                    lw    a4,8(sp)
     2e4:    46b2                    lw    a3,12(sp)
     2e6:    02d70733              mul    a4,a4,a3
     2ea:    c43a                    sw    a4,8(sp)
     2ec:    4722                    lw    a4,8(sp)
     2ee:    97ba                    add    a5,a5,a4
     2f0:    c63e                    sw    a5,12(sp)
     2f2:    47b2                    lw    a5,12(sp)
     2f4:    4722                    lw    a4,8(sp)
     2f6:    97ba                    add    a5,a5,a4
     2f8:    4732                    lw    a4,12(sp)
     2fa:    40e78733              sub    a4,a5,a4
     2fe:    c43a                    sw    a4,8(sp)
     300:    4722                    lw    a4,8(sp)
     302:    46b2                    lw    a3,12(sp)
     304:    02d70733              mul    a4,a4,a3
     308:    c43a                    sw    a4,8(sp)
     30a:    4722                    lw    a4,8(sp)
     30c:    97ba                    add    a5,a5,a4
     30e:    c63e                    sw    a5,12(sp)
     310:    47b2                    lw    a5,12(sp)
     312:    4722                    lw    a4,8(sp)
     314:    97ba                    add    a5,a5,a4
     316:    4732                    lw    a4,12(sp)
     318:    40e78733              sub    a4,a5,a4
     31c:    c43a                    sw    a4,8(sp)
     31e:    4722                    lw    a4,8(sp)
     320:    46b2                    lw    a3,12(sp)
     322:    02d70733              mul    a4,a4,a3
     326:    c43a                    sw    a4,8(sp)
     328:    4722                    lw    a4,8(sp)
     32a:    97ba                    add    a5,a5,a4
     32c:    c63e                    sw    a5,12(sp)
     32e:    47b2                    lw    a5,12(sp)
     330:    4722                    lw    a4,8(sp)
     332:    97ba                    add    a5,a5,a4
     334:    4732                    lw    a4,12(sp)
     336:    40e78733              sub    a4,a5,a4
     33a:    c43a                    sw    a4,8(sp)
     33c:    4722                    lw    a4,8(sp)
     33e:    46b2                    lw    a3,12(sp)
     340:    02d70733              mul    a4,a4,a3
     344:    c43a                    sw    a4,8(sp)
     346:    4722                    lw    a4,8(sp)
     348:    97ba                    add    a5,a5,a4
     34a:    c63e                    sw    a5,12(sp)
     34c:    47b2                    lw    a5,12(sp)
     34e:    4722                    lw    a4,8(sp)
     350:    97ba                    add    a5,a5,a4
     352:    4732                    lw    a4,12(sp)
     354:    40e78733              sub    a4,a5,a4
     358:    c43a                    sw    a4,8(sp)
     35a:    4722                    lw    a4,8(sp)
     35c:    46b2                    lw    a3,12(sp)
     35e:    02d70733              mul    a4,a4,a3
     362:    c43a                    sw    a4,8(sp)
     364:    4722                    lw    a4,8(sp)
     366:    97ba                    add    a5,a5,a4
     368:    c63e                    sw    a5,12(sp)
     36a:    47b2                    lw    a5,12(sp)
     36c:    4722                    lw    a4,8(sp)
     36e:    97ba                    add    a5,a5,a4
     370:    4732                    lw    a4,12(sp)
     372:    40e78733              sub    a4,a5,a4
     376:    c43a                    sw    a4,8(sp)
     378:    4722                    lw    a4,8(sp)
     37a:    46b2                    lw    a3,12(sp)
     37c:    02d70733              mul    a4,a4,a3
     380:    c43a                    sw    a4,8(sp)
     382:    4722                    lw    a4,8(sp)
     384:    97ba                    add    a5,a5,a4
     386:    c63e                    sw    a5,12(sp)
     388:    47b2                    lw    a5,12(sp)
     38a:    46a2                    lw    a3,8(sp)
     38c:    4732                    lw    a4,12(sp)
     38e:    97b6                    add    a5,a5,a3
     390:    8f99                    sub    a5,a5,a4
     392:    c43e                    sw    a5,8(sp)
     394:    47a2                    lw    a5,8(sp)
     396:    4732                    lw    a4,12(sp)
     398:    02e787b3              mul    a5,a5,a4
     39c:    c43e                    sw    a5,8(sp)
     39e:    4522                    lw    a0,8(sp)
     3a0:    0141                    addi    sp,sp,16
     3a2:    8082                    ret
 

pvvx

Активный участник сообщества
Всё как описано в PDF:
CH32V203 is based on 32-bit RISC-V core design of industrial-grade enhanced low-power general-purpose microcontrollers, high-performance, in the product features support 144MHz main frequency zero-wait operation, equipped with V4B core, work and sleep power consumption significantly reduced year-on-year.
  • Available with 224KB program memory CodeFlash (zero-wait application area + non-zerowait data area)

В итоге почти в 20 раз быстрее ESP32-C3...
 

aZholtikov

Active member
Уважаемый @pvvx!
Просто хочу узнать Ваше мнение.
Так ли принципиально для конечного "естественно тупого пользователя вумного дома" замена батарейки за 20 руб раз в пол года, а не раз в 6 лет?
Так ли принципиально для конечного "естественно тупого пользователя вумного дома" время ответа от "вумного выключателя" в 10 мкс или достаточно и 10 мс?
Так ли принципиально для конечного "естественно тупого пользователя вумного дома" покупать все эти вундервафли или ему главное цена?
 

pvvx

Активный участник сообщества
Уважаемый @pvvx!
Просто хочу узнать Ваше мнение.
Так ли принципиально для конечного "естественно тупого пользователя вумного дома" замена батарейки за 20 руб раз в пол года, а не раз в 6 лет?
Так ли принципиально для конечного "естественно тупого пользователя вумного дома" время ответа от "вумного выключателя" в 10 мкс или достаточно и 10 мс?
Так ли принципиально для конечного "естественно тупого пользователя вумного дома" покупать все эти вундервафли или ему главное цена?
По многочисленным issue бесконечно сыплющихся в github по BLE/Zigbee термометрам выходят такие запросы и пожелания "естественно тупого пользователя вумного дома":
1. Желают замены батарейки - никогда. Пол года расстраивает и прилепляют другие, более большие батарейки, даже печатая чехлы на 3D принтере.
2. На время включения-выключения у IR датчика движения были предложения припаять другой резистор, чтобы сократить время его фильтра... В других случаях и без мнения "естественно тупого пользователя вумного дома" в специализированной литературе описано много измерений реакций человеко-бабизян по поводу отклика на любую кнопку или прочее событие - для не шумахеров и игрнучиков достаточно уложиться в 200 мс. Это не вызывает беспокойства и находится в пределе комфортной реакции любой системы для человеко-бабизян.
3. Большинство покупают то, что покупают другие. К примеру большинство покупает Xiaomi LYWSD03MMC, хотя есть другие модели и раза в три дешевле, с более качественным дисплеем. Но так заведено и на это есть ответ Лемминги...
 

pvvx

Активный участник сообщества
Я думаю, что вам следует посмотреть, сколько в инет споров по поводу у кого быстрее открываются окошки или скролит экран - на Apple или на Android смартфоне? :)
Или у кого больше кадров в секунду на мониторе …
 

pvvx

Активный участник сообщества
Просто хочу узнать Ваше мнение.
Если нужно мое личное мнение, то вот, к примеру, по поводу тупых датчиков оно такое:
1746972909045.png
Квадратное – это продаваемое и любимое в рядах Zigbee Xiaomi решение.
Более детализированное – это перепрошитое устройство в BLE.

И меня не устраивает показания любых датчиков, делающих измерения с периодом более 10 секунд.
А для некоторых желательно усреднение непрерывного опроса с периодом передачи итога до 30 сек.

Вторым, для особо значащим фактором для меня является возможность поменять место датчику – и это его размеры.
Т.е. максимальным по размеру батареек считаю 2xAAA (они дешевле и везде есть) с работой в течении более 1.5 года. Всё остальное – это стационар и проводное решение.
 

nikolz

Well-known member
Лично меня интересует возможность сделать беспроводное устройство, максимально компактное, работающее от батарейки не менее 30 дней (чем больше тем лучше) . Это умные устройства типа спектрометр с распознаванием состава веществ для полевых работ, устройство ориентации в пространстве для незрячих , кардиомонитор с диагностикой состояний в реальном времени, неинвазивный измеритель давления ну и т д и т п
Для умного дома сейчас сделал датчик утечки воды который потребляет в не аварийном режиме 1 микроампер. размером 1x2 см2
 

pvvx

Активный участник сообщества
Лично меня интересует возможность сделать беспроводное устройство, максимально компактное, работающее от батарейки не менее 30 дней (чем больше тем лучше) . Это умные устройства типа спектрометр с распознаванием состава веществ для полевых работ, устройство ориентации в пространстве для незрячих , кардиомонитор с диагностикой состояний в реальном времени, неинвазивный измеритель давления ну и т д и т п
А ранее писали что от чипа нужна производительность... Во всех описанных задачах основа - сенсор. И он жрет больше всех. А производительность от MCU вообще не требуется.
Для умного дома сейчас сделал датчик утечки воды который потребляет в не аварийном режиме 1 микроампер. размером 1x2 см2
Зачем делали, если типовой даже от Tuya потребляет менее 1 мкА.
Если взять любой из чипов BLE/Zigbee и прикрутить к нему батарейку, то в задаче пробуждения из deep-sleep по GPIO они все будут кушать гарантированно менее 1 мкА. Входной ток у GPIO в области наноампер - это и есть ваш датчик.
Но если это датчик аварий, то системе и пользователю нужно знать что он работает. Это значит он должен проявлять себя в системе контроля хотя-бы раз в минуту, с отчетом о батарее. И тут уже получите малое превышение 1 мкA.
 

pvvx

Активный участник сообщества
Благодарю за ответ.
На счет производительности любого SoC всё очень просто.

Если SoC использует SPI-Flash, тогда все коды, которые требуют быстрого исполнения должны быть загружены в RAM один раз при старте питания чипа. А в режиме deep-sleep питание с этой области RAM не снимается. Так и сделано во всех современных BLE/Zigbee чипах использующих SPI-Flash.

Это дает значительно меньшие энерго-затраты и скорость выполнения нужных функций, чем подгрузка кода на ходу из SPI-Flash (XIP) при каждом пробуждении SoC из режимов sleep.

А в ESP всё сделано наоборот и даже такты ожидания при работе XIP почему-то дают увеличение потребления, не говоря уже о критическом падении производительности… Всё это выглядит как вредительство при разработке чипов ESP.

О падении производительности в таких случаях у ESP как раз и предоставил вам простейшие измерения…
 
Сверху Снизу