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

Все, что вы знали о ESP32 - забудьте! Будет ESP32S

igrr

Moderator
Команда форума
Вы не ответили на два ранее заданных мною вопросов.
Можно ли уменьшить время входа в deep-sleep для ESP8266?
Какое минимальное время входа в deep-sleep для ESP32?
Вы не знаете ответов?
Тогда Все Ваши обещания, о новых возможностях в софте ESp32, это просто очередное ля..ля .
Не увидел ваш пост, простите.
В esp8266, как верно заметил pvv, ничего уменьшить нельзя без хирургического вмешательства в SDK. Сколько время в esp32 сейчас замерю.
 

nikolz

Well-known member
Не увидел ваш пост, простите.
В esp8266, как верно заметил pvv, ничего уменьшить нельзя без хирургического вмешательства в SDK. Сколько время в esp32 сейчас замерю.
Спасибо.
В чем проблема вмешаться в SDK ? это же просто набор функций, а не святая корова.
------------------------
Сейчас у ESP8266 при работе передатчика 50 ms время входа в сон 430 ms из них 200 - это ресет.
-----------------------------------------------
Немного расширю предыдущий вопрос.
Какое потребление у ESP32 в режимах WIFI и BLE
и какое минимальное время активности в этих режимах.
Спасибо
 

igrr

Moderator
Команда форума
По предыдушему:

Код:
Going into deep sleep for 1us

ets Jun  8 2016 00:22:57

rst:0x5 (DEEPSLEEP_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)


Wake count 1
Duration: 556 ticks, 3 ms

configsip: 0, SPIWP:0x00
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3ffc0000,len:0
load:0x3ffc0000,len:920
load:0x40078000,len:2836
ho 0 tail 12 room 4
load:0x40098000,len:692
entry 0x4009813c
Время от вызова API до вызова пользовательского обработчика — 3ms. Наверное можно меньше, но пока никто из кастомеров не просил это оптимизировать.

В чем проблема вмешаться в SDK ? это же просто набор функций, а не святая корова.
Технически — никакой проблемы. Вопрос исключительно в ресурсах и экономической целесообразности. Если эта фича реально нужна для продукта — пишите мне, мы посмотрим что можно сделать.

Edit: а, впрочем вы уже написали.
 

nikolz

Well-known member
По предыдушему:

Код:
Going into deep sleep for 1us

ets Jun  8 2016 00:22:57

rst:0x5 (DEEPSLEEP_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)


Wake count 1
Duration: 556 ticks, 3 ms

configsip: 0, SPIWP:0x00
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3ffc0000,len:0
load:0x3ffc0000,len:920
load:0x40078000,len:2836
ho 0 tail 12 room 4
load:0x40098000,len:692
entry 0x4009813c
Время от вызова API до вызова пользовательского обработчика — 3ms. Наверное можно меньше, но пока никто из кастомеров не просил это оптимизировать.


Технически — никакой проблемы. Вопрос исключительно в ресурсах и экономической целесообразности. Если эта фича реально нужна для продукта — пишите мне, мы посмотрим что можно сделать.

Edit: а, впрочем вы уже написали.
Это круто. Осталось дождаться живых.
-------------------------------------
А какие возможности с использованием двух ядер.
Что можно делать параллельно?
 

igrr

Moderator
Команда форума
А какие возможности с использованием двух ядер.
Что можно делать параллельно?
Несколько примеров... Я делал демку с камерой OV7725 и ESP32. Пока пиксели из камеры заливаются через параллельный I2S по DMA, первое ядро преобразует цветовой формат (YUV4:2:0 -> Y8). Второе ядро в это время гоняет библиотеку распознавания QR кодов, и когда распознает, отправляет HTTP запрос (LwIP, WiFi).
Второй пример. Эмулятор NES на ESP32 использует первое ядро чтобы гонять сам эмулятор, а второе ядро в это время эмулирует видеодрайвер.
Третий пример. Ардуино для ESP32 гоняет "setup" и "loop" на втором ядре. На первом живут wifi/bt и lwip.
 

nikolz

Well-known member
Несколько примеров... Я делал демку с камерой OV7725 и ESP32. Пока пиксели из камеры заливаются через параллельный I2S по DMA, первое ядро преобразует цветовой формат (YUV4:2:0 -> Y8). Второе ядро в это время гоняет библиотеку распознавания QR кодов, и когда распознает, отправляет HTTP запрос (LwIP, WiFi).
Второй пример. Эмулятор NES на ESP32 использует первое ядро чтобы гонять сам эмулятор, а второе ядро в это время эмулирует видеодрайвер.
Третий пример. Ардуино для ESP32 гоняет "setup" и "loop" на втором ядре. На первом живут wifi/bt и lwip.
А есть примеры организации mesh на ESP32?
Есть ли протокол типа ESP-NOW?
Какая скорость ответа на запрос?
Какое максимальное число узлов в сети возможно?
Спасибо
 

igrr

Moderator
Команда форума
mesh и esp-now для esp32 нет.
Реализация mesh для esp8266 довольно странная, и портировать ее на esp32 смысла не вижу. Сейчас коллеги изучают, какие из стандартных mesh решений влезут в esp32.
ESP-NOW в планах, но после 1.0, вместе с low rate.
 

nikolz

Well-known member
mesh и esp-now для esp32 нет.
Реализация mesh для esp8266 довольно странная, и портировать ее на esp32 смысла не вижу. Сейчас коллеги изучают, какие из стандартных mesh решений влезут в esp32.
ESP-NOW в планах, но после 1.0, вместе с low rate.
Не совсем по теме, вопрос. Планируется ли дальнейшее развитие ESP8266.
Полагаю что этот чип имеет свою нишу так как существенно дешевле и проще.
Есть много примитивных задач , которым не нужно два ядра и много памяти, например модули умного дома.
Спасибо.
 

igrr

Moderator
Команда форума
В основном планируются багфиксы и сопровождение существующих клиентов, также обсуждается перенос RTOS SDK на рельсы ESP-IDF. Одноядерная версия ESP32 тоже будет, и должна получиться дешевле чем 8266 (по предварительным оценкам).
 

nikolz

Well-known member
В основном планируются багфиксы и сопровождение существующих клиентов, также обсуждается перенос RTOS SDK на рельсы ESP-IDF. Одноядерная версия ESP32 тоже будет, и должна получиться дешевле чем 8266 (по предварительным оценкам).
Ну есть так, то хорошо.
Вопрос лишь как скоро.
 

sharikov

Active member
Даташит на модуль ESP-32S кто нибудь видел (пинаут и чертеж) ?
Нигде нет, включая ai-thinker. Там где дш на esp-32s есть фактически лежит дш от Wroom-32, они абсолютно идентичны что ли ?
 

pvvx

Активный участник сообщества
В основном планируются багфиксы и сопровождение существующих клиентов, также обсуждается перенос RTOS SDK на рельсы ESP-IDF. Одноядерная версия ESP32 тоже будет, и должна получиться дешевле чем 8266 (по предварительным оценкам).
Пока GitHub - espressif/esp-idf: Espressif IoT Development Framework. Official development framework for ESP32. походит на большое строительство пьедестала на отсутствующий в продаже чип... Не рухнет ли это дело, если всё так и будет развиваться, как c ESP8266 ?
Есть же уже Home | mbed В нем вроде уже как-то поддерживается RTOS и практически совместим с Arduino...
У RTL-ов либа к Mbed уже описана и как не странно все процедуры работают... Остается только всё это сконфигурировать под условия Home | mbed
 
Последнее редактирование:

A_D

Active member
Может кому интересно будет - вебинар по ESP32:

Приглашаем на вебинар «Wi-Fi и Bluetooth в миниатюрном решении ESP32 Espressif Systems» инженеров и разработчиков беспроводных устройств.

ESP32 - обещает снова совершить революцию в мире IoT, как в свое время совершил его предшественник - ESP8266.


Вебинар проведут Денис Можайков и Эдуард Тихонов, ассы "ЕвроМобайл", которые вот уже 12 лет работают на передовой с беспроводным оборудованием и технологиями.


Вебинар состоится 24 ноября в 11.00 по московскому времени.


Программа вебинара:

•Популярный чипсет ESP32: экономичность и лёгкая интеграция •Основные характеристики ESP32 •Питание, энергопотребление и Sleep режимы •Режимы работы модуля и конфигурация •SDK и AT команды •Способы обновления программного обеспечения •Примеры применения

Для регистрации на вебинар пройдите по ссылке «Wi-Fi и Bluetooth в миниатюрном решении ESP32 Espressif Systems»
 

igrr

Moderator
Команда форума
Тогда задайте вопрос: Размер кода на 15% меньше чем что? :)
А так-же чем отличаются последние чипы ESP32 от предварительных.
Ответ на этот вопрос они вряд ли знают.
Вот примерный список отличий:

- У ESP31B было ассиметричноe адресное пространство для двух ядер. Одна и та же ячейка памяти имела разные адреса в CPU1 и CPU2. В ESP32 адресное пространство симметричное, то есть один и тот же код может выполняться на любом ядре (SMP).
- В конфигурациии ядра использованной в ESP31B не было FPU. В ESP32 есть FPU.
- В ESP31 не было memory protection unit с контролем отдельных процессов RTOS-а
- Не было части периферии: сопроцессора в RTC, Motor PWM, LED PWM
- Не было режима параллельного входа/выхода у I2S
- В ESP32 новый дизайн некоторых элементов в аналоговой части, соответственно улучшился EVM
- В ESP32 есть несколько багов в цифровой части которых не было в ESP31B :)

Edit: 1. поправил фразу про адресное пространство 2. добавил про FPU.
 
Последнее редактирование:

igrr

Moderator
Команда форума
mbed В нем вроде уже как-то поддерживается RTOS и практически совместим с Arduino
Да, на mbed мы безусловно смотрели когда думали про то каким должен быть SDK для ESP32 (тот который ESP-IDF).
Основная причина, по которым мы не взяли его за основу — mbed не предусматривает работу в многопроцессорной системе. Соответственно RTOS нужно переделывать, драйвера нужно переделывать чтобы правильно блокировали доступ к ресурсам. HAL поверх периферии всё равно писать нужно. Остаются только C++ библиотеки написанные вокруг HAL-а. Это ценно, но мы решили что использовать mbed ради этой одной части не очень осмысленно.

Исходя из этого, решили строить свой велосипед вокруг FreeRTOS, в который добавили поддержку SMP.
Что касается "не рухнет ли", посмотрим.
 

pvvx

Активный участник сообщества
Это ценно, но мы решили что использовать mbed ради этой одной части не очень осмысленно.
А esp-idf/components/mbedtls at master · espressif/esp-idf · GitHub остался?
С текущими либами возможно подключение внешнего PHY (изернет) к той-же копии LwIP?
Ещё интересный вопрос, как с одной последовательной Flash работают оба CPU (SMP), т.е. насколько падает производительность в таких случаях? В 3 или 4 раза?
 
Последнее редактирование:

igrr

Moderator
Команда форума
А esp-idf/components/mbedtls at master · espressif/esp-idf · GitHub остался?
С текущими либами возможно подключение внешнего PHY (изернет) к той-же копии LwIP?
mbedTLS изначально стали прикручивать еще к 8266, по сути сейчас это единственная библиотека с приемлемой лицензией и хорошей поддержкой разных алгоритмов.

Что касается Ethernet — драйвер для MAC периферии сейчас проходит код ревью... Замечаний довольно много, думаю что будет в master на следующей неделе. Работа с драйвером PHY идет через таблицу функций, которая передается драйверу MACа при инициализации. В изначальной версии у нас будет один драйвер для PHY (не помню название чипа; если нужно — могу уточнить).
Собственно драйвер PHY — две с половиной функции, думаю это не будет проблемой.

Что касается интеграции с LwIP — да, она есть. Не знаю что там с форвардингом пакетов между интерфейсами, но вроде можно включить. Только опцию протащить из lwipopts в Kconfig.
 
Сверху Снизу