https://habr.com/ru/post/574156/ESP32 и ESP8266 работают не так, как обычные микроконтроллеры. В обычных разработчик чипа предоставляет полное аппаратное описание чипа, и пользовательская прошивка - это единственный код, который работает в микроконтроллере. Программа пользователя только записывает и считывает биты в регистры. А дальше микроконтроллер делает всю работу аппаратно. Это позволяет точно знать число тактов, сколько занимает каждая команда. И, например, задавать точные временные интервалы при генерации ШИМ сигнала. А также вовремя реагировать на прерывания. А у ESP часть архитектуры закрыта, а доступ к аппаратным функциям делается через софтверный API. То есть, параллельно с вашей прошивкой, внутри ESP крутится какой-то код от производителя чипа. Он жрет много ресурсов и приводит к непредсказуемым задержкам. Поэтому ESP не могут выдерживать точные временные интервалы. Это приводит к куче проблем с управлением электродвигателями и сервоприводами (даже с использованием внешних аппаратных драйверов). Моторы могут дергаться, врубаться неожиданно на полный газ и все такое. По этой же причине на ESP возникают проблемы у софтверных реализаций протоколов UART/I2C/OneWire и при обработке прерываний.
В общем, для очень многих точных аппаратных задач esp НЕ МОГУТ заменить ардуино или stm. И это очень жаль, потому что ESP действительно классные и дешевые чипы. Было бы круто все делать чисто на них. Хотя благодаря большой частоте 80/160/240 МГц, эта проблема сглаживается, конечно. Если подключить обычную серву, то она на первый взгляд, даже заработает. Но может непредсказуемо дергаться и глючить. Аналогично с попыткой собрать на базе ESP энкодер на датчиках холла для определения скорости вращения быстрых моторов, с этим совсем беда. Оно то работает, то пропускает прерывания.
Но для простых задач - вроде обработать нажатия кнопок и обеспечивать web интерфейс, ESP прекрасно подходят. Да и пауза между постоянно пересылаемыми GET запросами там на практике всего около 30 мс, что очень круто. Можно на базе ESP делать радиоуправление в почти реальном времени. Но надо быть готовым к тому, что в любой момент ESP может зависнуть на 300-1500 мс. При этом, если вы своим кодом задержите ESP то ли на 1 мс, то ли на 10 мс, то она молча упадет. Вот такая несправедливость =). Через websocket, который держит соединение постоянно открытым и имеет меньше накладных расходов, пауза между пакетами чуть меньше 20 мс (но сами библиотеки weboscket жрут довольно много памяти, если ее не хватает, проще делать на обычных GET запросах, разница невелика).
P.S. В ESP32 двухядерный процессор, вроде можно один выделить чисто под свой код, на который внутренний код от производителя не будет влиять, но это сложно и требует нестандартных процедур при программировании.
Немного информации о ESP
Немного информации о ESP
Интересный коментарий к статье на хабре о машинках с управлением по WiFi
Немного информации о ESP
Очень правильная статья. Бьюсь с ESP32. Делаю управление откатными воротами командами с телеграм. При обращении к богу, программа действительно зависает на секунду, либо при прерывания по ДХ вообще не реагирует на команды. Даже при выводе в уарт заметно подвисание на 30 мс. Раскидал задачи по разным ядрами- бота, wifi, ota в нулевое, а основной цикл в 1- ое. Помогло. И сериал.принт на 0 ядре не подвисает.
Последний раз редактировалось AndrejK 26 авг 2021, 14:46, всего редактировалось 1 раз.
-
- Полковник
- Сообщения: 4009
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 153 раза
Немного информации о ESP
Не могли бы об этом поподробнее. И если возможно с примерами на C++.AndrejK писал(а): 26 авг 2021, 06:33 Раскидал задачи по разным ядрами- бота, wifi, ota в нулевое, а основной цикл в 1- от. Помогло. И сериал.принт на 0 ядре не подвисает.
А мы бы возможно встроили эту особенность в пользовательские блоки.
Немного информации о ESP
Это сырой вариант, прошу не пинать.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Немного информации о ESP
ссылкаecoins писал(а): 26 авг 2021, 12:19Не могли бы об этом поподробнее. И если возможно с примерами на C++.AndrejK писал(а): 26 авг 2021, 06:33 Раскидал задачи по разным ядрами- бота, wifi, ota в нулевое, а основной цикл в 1- от. Помогло. И сериал.принт на 0 ядре не подвисает.
А мы бы возможно встроили эту особенность в пользовательские блоки.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
-
- Полковник
- Сообщения: 3360
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 13 раз
- Поблагодарили: 100 раз
- Контактная информация:
Немного информации о ESP
Я даже блоки сделал, так не было времени окончательно испытать и выложить.
Задачу можно сделать только на 0 ядро, а ардуино остальное запустит в 1 ядре.
Задачу можно сделать только на 0 ядро, а ардуино остальное запустит в 1 ядре.
- Rovki
- Полковник
- Сообщения: 5726
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 68 раз
- Поблагодарили: 222 раза
- Контактная информация:
Немного информации о ESP
Пошли модели ЕСП32 с одним ядром так же. 

Электронщик до мозга костей и не только
-
- Полковник
- Сообщения: 3360
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 13 раз
- Поблагодарили: 100 раз
- Контактная информация:
-
- Полковник
- Сообщения: 4009
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 153 раза
Немного информации о ESP
Большое спасибо.
Правильно ли я понял - Вы сделали проект на FLProg, а затем доработали скетч .ino?
Немного информации о ESP
Если не ошибаюсь, то эта тема поднималась года полтора или два назад. Тогда кто-то предлагал задействовать системное ядро на ESP32. На что ему ответили, что если его бездумно использовать, то будут те же самые проблемы, что и с ESP8266.
При нормальном подходе на ESP8266 крутится даже большой код, взять ту же лампу Гайвера.
При нормальном подходе на ESP8266 крутится даже большой код, взять ту же лампу Гайвера.
-
- Сержант
- Сообщения: 269
- Зарегистрирован: 18 ноя 2015, 22:42
- Откуда: Близко к Ставрополю
- Имя: Евгений
- Поблагодарили: 2 раза
-
- Полковник
- Сообщения: 3360
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 13 раз
- Поблагодарили: 100 раз
- Контактная информация:
-
- Лейтенант
- Сообщения: 338
- Зарегистрирован: 11 фев 2018, 13:07
- Имя: Сергей
- Благодарил (а): 5 раз
- Поблагодарили: 1 раз
Немного информации о ESP
Тема очень интересная. Я с ESP32 работаю уже второй год, в основном для выхода в интернет и управления оттуда железом. Проблема зависаний основного кода по разным причинам - это очень актуально. Собственно если бы не это, то у чипа наверно не было бы недостатков, как по мне 

Немного информации о ESP
проблема только в коде. пользовательском. скорее даже в библиотеках.Serg_Grn писал(а): 29 авг 2021, 19:30 Проблема зависаний основного кода по разным причинам - это очень актуально
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя