Немного информации о ESP

ESP8266-01, 07 и т.п.
Ответить
Anydy

Немного информации о ESP

Сообщение Anydy »

Интересный коментарий к статье на хабре о машинках с управлением по WiFi
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 двухядерный процессор, вроде можно один выделить чисто под свой код, на который внутренний код от производителя не будет влиять, но это сложно и требует нестандартных процедур при программировании.
https://habr.com/ru/post/574156/
AndrejK
Сержант
Сообщения: 120
Зарегистрирован: 20 фев 2020, 13:16
Откуда: Вильнюс
Имя: Андрей

Немного информации о ESP

Сообщение AndrejK »

Очень правильная статья. Бьюсь с ESP32. Делаю управление откатными воротами командами с телеграм. При обращении к богу, программа действительно зависает на секунду, либо при прерывания по ДХ вообще не реагирует на команды. Даже при выводе в уарт заметно подвисание на 30 мс. Раскидал задачи по разным ядрами- бота, wifi, ota в нулевое, а основной цикл в 1- ое. Помогло. И сериал.принт на 0 ядре не подвисает.
Последний раз редактировалось AndrejK 26 авг 2021, 14:46, всего редактировалось 1 раз.
ecoins
Полковник
Сообщения: 4009
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

Немного информации о ESP

Сообщение ecoins »

AndrejK писал(а): 26 авг 2021, 06:33 Раскидал задачи по разным ядрами- бота, wifi, ota в нулевое, а основной цикл в 1- от. Помогло. И сериал.принт на 0 ядре не подвисает.
Не могли бы об этом поподробнее. И если возможно с примерами на C++.
А мы бы возможно встроили эту особенность в пользовательские блоки.
AndrejK
Сержант
Сообщения: 120
Зарегистрирован: 20 фев 2020, 13:16
Откуда: Вильнюс
Имя: Андрей

Немного информации о ESP

Сообщение AndrejK »

Это сырой вариант, прошу не пинать.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Немного информации о ESP

Сообщение Sancho »

ecoins писал(а): 26 авг 2021, 12:19
AndrejK писал(а): 26 авг 2021, 06:33 Раскидал задачи по разным ядрами- бота, wifi, ota в нулевое, а основной цикл в 1- от. Помогло. И сериал.принт на 0 ядре не подвисает.
Не могли бы об этом поподробнее. И если возможно с примерами на C++.
А мы бы возможно встроили эту особенность в пользовательские блоки.
ссылка
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
aidar_i
Полковник
Сообщения: 3360
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

Немного информации о ESP

Сообщение aidar_i »

Я даже блоки сделал, так не было времени окончательно испытать и выложить.
Задачу можно сделать только на 0 ядро, а ардуино остальное запустит в 1 ядре.
Аватара пользователя
Rovki
Полковник
Сообщения: 5726
Зарегистрирован: 22 апр 2016, 17:25
Откуда: Чехов
Имя: Анатолий
Благодарил (а): 68 раз
Поблагодарили: 222 раза
Контактная информация:

Немного информации о ESP

Сообщение Rovki »

Пошли модели ЕСП32 с одним ядром так же. :smile427:
Электронщик до мозга костей и не только
aidar_i
Полковник
Сообщения: 3360
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

Немного информации о ESP

Сообщение aidar_i »

Rovki писал(а): 26 авг 2021, 18:49 Пошли модели ЕСП32 с одним ядром так же. :smile427:
пока сыроватые :)
ecoins
Полковник
Сообщения: 4009
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

Немного информации о ESP

Сообщение ecoins »

AndrejK писал(а): 26 авг 2021, 14:45 Это сырой вариант, прошу не пинать.
Большое спасибо.
Правильно ли я понял - Вы сделали проект на FLProg, а затем доработали скетч .ino?
aidar_i
Полковник
Сообщения: 3360
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

Немного информации о ESP

Сообщение aidar_i »

ecoins писал(а): 26 авг 2021, 21:31
AndrejK писал(а): 26 авг 2021, 14:45 Это сырой вариант, прошу не пинать.
Большое спасибо.
Правильно ли я понял - Вы сделали проект на FLProg, а затем доработали скетч .ino?
Да, он так сделал.
Здесь я выложил свои блоки.
edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20 сен 2019, 11:38
Имя: Эдуард

Немного информации о ESP

Сообщение edyapd »

Если не ошибаюсь, то эта тема поднималась года полтора или два назад. Тогда кто-то предлагал задействовать системное ядро на ESP32. На что ему ответили, что если его бездумно использовать, то будут те же самые проблемы, что и с ESP8266.
При нормальном подходе на ESP8266 крутится даже большой код, взять ту же лампу Гайвера.
JonyBest
Сержант
Сообщения: 269
Зарегистрирован: 18 ноя 2015, 22:42
Откуда: Близко к Ставрополю
Имя: Евгений
Поблагодарили: 2 раза

Немного информации о ESP

Сообщение JonyBest »

aidar_i писал(а): 26 авг 2021, 22:30 Да, он так сделал.
Здесь я выложил свои блоки.
Спасибо! Исследование не проводили? Стабильность устройства улучшается?
aidar_i
Полковник
Сообщения: 3360
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

Немного информации о ESP

Сообщение aidar_i »

JonyBest писал(а): 27 авг 2021, 12:56
aidar_i писал(а): 26 авг 2021, 22:30 Да, он так сделал.
Здесь я выложил свои блоки.
Спасибо! Исследование не проводили? Стабильность устройства улучшается?
Я только работоспособность проверял, исследования прошу форумчан провести.
Serg_Grn
Лейтенант
Сообщения: 338
Зарегистрирован: 11 фев 2018, 13:07
Имя: Сергей
Благодарил (а): 5 раз
Поблагодарили: 1 раз

Немного информации о ESP

Сообщение Serg_Grn »

Тема очень интересная. Я с ESP32 работаю уже второй год, в основном для выхода в интернет и управления оттуда железом. Проблема зависаний основного кода по разным причинам - это очень актуально. Собственно если бы не это, то у чипа наверно не было бы недостатков, как по мне :)
sergserg
Сержант
Сообщения: 186
Зарегистрирован: 25 фев 2021, 14:26
Имя: Сергей

Немного информации о ESP

Сообщение sergserg »

Serg_Grn писал(а): 29 авг 2021, 19:30 Проблема зависаний основного кода по разным причинам - это очень актуально
проблема только в коде. пользовательском. скорее даже в библиотеках.
Ответить

Вернуться в «Справка по ESP8266»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя