Comments 12
Самое странное: такой прекрасный чип, а кроме игрушек/розеток/датчиков на нём ничего дельного на рынке не присутствует... Первый вариант 8266 был безбожно глючный, счас вроде как исправились, но нет - кроме любителей альДурины пользовать этот чип желающих очереди особо не наблюдаются.
Вполне возможно, что всё из-за достаточно лёгкой перешиваемости модуля и отсутствия локов. Я вот точно не помню - а есть ли там хотя бы шифрование прошивки и хранение ключа в самом чипе. Если нет - вот и ответ, номер 1. Любой повторит схему и скопирует прошивку.
Проблема номер 2 - китайский разработчик МК. Соответственно в основном это будут сами китайцы разрабатывать на этих МК.
Жручесть данных МК, ещё. Хотя официально встречал ответ на форумах, что следующие МК будут уже на чём-то другом. Возможно или арм, или риск-в. Вот тогда, думается, может появиться интерес (особенно если риск-в)
Вот как. Неплохо. Я ещё не добрался до 32, т.к. хватало мощности 8266. Но вот esp32-s2/3 хочу испробовать, т.к. хардварный usb.
От использования esp8266 меня отталкивает их кривые фреймворки.
Ситуация: Ставим VSCode и муравья (PlatformIO). Выбираем платформу espressif8266
, плату esp07 (их есть у меня - пылились на полочке одно время, купленые рублей по 80 пару лет назад), и начинаем играть с фреймворками.
> arduino - вроди бы собирается, но нет никаких подсказок в коде. Отлично. Serial и serial - разные вещи. Прекрасно. Попадается SERIAL. Хорошо, что редко. Запуск без WiFi вроди бы возможен, но непонятно как.
> Rath-HAL - присутствует, но не поддерживает данный чип. Почему тогда присутствует?
> esp8266-rtos-sdk - Отлично! Будем писать под RTOS! Спойлер: Нет. Пустой проект не собирается, т.к. не хватает каких-то исходников. Каких - не подсказывает.
> esp-idf? Фигушки. Он есть у производителя чипов, но просто так подсунуть его к VSCode не выходит. Шикарно.
> esp8266-nonos-sdk - Последний вариант из того, что компилится и работает. Пустой проект занимает 36% RAM и 61% ROM. Прекрасно. :\
Немногим ранее баловался с ESP32 в той же IDE.
Хочешь WiFi? Подключи вот эти файлы, сделай вот так. Обработка будет вот через эти функции.
Не хочешь WiFi? Не вопрос. При компиляции они не будут добавлены в эту прошивку.
Хочешь логи в консоль? Вот тебе функция, которая это делает. Она похожа на sprintf, только нужно указать какой тип сообщения отправляешь - лог, событие, ошибка и тому подобное. Вот примеры.
У тебя есть экран? Легко. Настрой шину, настрой пины, пиши как в память. DMA тебе в помощь.
Два контроллера разных поколений, а такая разница в кодовой базе.
Фреймворк 8266 IMHO, не просто кривой, он категорически непонятный. А вот в том, что касается Esp32, ситуация чуть лучше. Но, увы, не поддерживается ассемблер (китайцы сами не в теме, как это всё работает) А если очень хочется, то см. Xtensa Instruction Set Architecture. Архитектура 1997 года. Чуть не старше Дурины.
Короче, ситуация, действительно унылая. Но всё-таки... работает. И для сегмента DIY, более чем.
У меня в Eclipse проект компилируется но когда я нажимаю на Run получаю сообщение -
Exception occurred executing command line. Cannot run program "C:\cygwin64\bin\python" (in directory "D:\Workspace_Eclipse\agro_sense"): CreateProcess error=193, %1 is not a valid Win32 application
Почему то при Run он ищет путь в C:\cygwin64\bin\python и как изменить настройки я не нашёл.
Хм... мне кажется, что причина в том, что Вы поставили cygwin python.
https://github.com/ToraNova/esp32s2-usb2pppos/blob/master/setup.jpeg?raw=true
ESP32 ESP-IDF - это Eclipse + ESP IDF (Eclipse IDF for Esp-32).
Работает без глюков.
Ставьте эту связку. ESP32 dev board содержит не RGB Led, а Led ленту из 1-го RGB led, используйте пример led_strip из ESP-IDF.
S2-S3 - это USB поддержка, OTG и другие схемы питания.
Но! Есть пользователями и вовсе все забытые оба варианта USB TinyUSB т.к. первыми были кастом чипы и Arduino USB HID и др. устройства, реализовавшие это.
Также в разработке ESP32 (S2-S3) надо различать ESP-IDF Eclipse/VStudio (выбирается версия, под которую идёт компиляция S1,S2, S3, А также выделяется версия SDK - ESP-IDF имеет версию 4.2 - 4.3, приблизительно соответствует S2- S3.
) и Arduino, не совместимы программами:
Оригинальное - Eclipse ESP-IDF (VStudio):
https://github.com/ToraNova/esp32s2-usb2pppos оригинальный TinyUSB (https://docs.tinyusb.org/en/latest/ )
https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/api-reference/peripherals/usb_device.html
Признаки Arduino в коде:
esp32-hal.h - Arduino
arduino.h - Arduino
#if CONFIG_IDF_TARGET_ESP32S2
#if CONFIG_TINYUSB_ENABLED
common/tusb_common.h
tusb.h
soc/rtc_cntl_reg.h
soc/usb_struct.h
soc/usb_reg.h
soc/usb_wrap_reg.h
soc/usb_wrap_struct.h
esp32s2/rom/usb/usb_persist.h
esp32s2/rom/usb/usb_dc.h
esp32s2/rom/usb/chip_usb_dw_wrapper.h
hidusb.h Arduino :)
https://gist.github.com/brgaulin/2dec28baf5e9e11dfd7ef8354adf103d
https://github.com/chegewara/EspTinyUSB/blob/master/examples/device/hid/keyboard/keyboard.ino
Больше, к сожалению, для Arduino.
Можете подсказать, как то можно можно для IDF (Eclipse) добавить препроцессорное объявление, чтобы его видел весь проект?
Чуть подробнее о настройке среды разработки esp-idf для разработки приложений Esp32