Comments 8
Arduino ide прекрасно сохраняет bin файлы. Никуда они не пропадают.
Хотел еще поблагодарить авторов материалов которые были использованы для вдохновения:
https://habr.com/ru/articles/748198/ практический пример использования упомянутого здесь ESP32-8048S070
https://habr.com/ru/companies/epam_systems/articles/522730/ подробно про программирование ESP32
Поддержка T-Display S3 официально добавлена в Arduino (по крайней мере в текущей версии arduinoesp v3.0.2). Пошивка идет при помощи esptool через виртуальный comport. Для входа в режим прошивки нужно зажать кнопку boot и перезагрузить контроллер. Поскольку это лениво то стало интересно - как бы это автоматизировать. Традиционные способы через встроенный usb порт не работают, но в esptool есть опции для перезагрузки через "usb_reset". Нужно только поправить файл boards.txt в папке arduino - там 3 одинаковые строки для прошивки в разных режимах. а можно ведь туда и прошивание openocd через jtag добавить там где это поддерживается.
Запустил и отладку, уже на другой машин. под Linux и openocd новее. Вышло занятно: через кабель и /dev/ACM оно шьется без вопросов, та вот openocd выдавала массовые ошибки. решилось заменой usb кабеля на более короткий. Отладка прошивки в фреймворке arduino удовольствия не доставила : поскольку там либы без исходников отладчик регулярно уходил в дизасм, и вообще все подтупливало и подвешивалось. а вот чистый esp_idf ходил в отладчике без казусов.
это я все с vs code игрался. решил ради нативного esp_idf попробовать нативный expressif-ide - в девичестве не самый свежий eclipse со свежим плагином от expressif.
вызвали напряги настройки конфига для отладки, доигрался до глюков в eclipse и не работоспособностью прошивки через usb_jtag. Очистил flash через esptool (причем из arduino) и еще раз сменил usb кабель. заработало заотлаживалось. рекомендую почитать https://github.com/espressif/idf-eclipse-plugin/blob/master/README.md
Как уже говорилось , в esp_idf есть пример для работы с дисплеем по интерфейсу 8080 но не для рассматриваемой платы. Пришлось допиливать, и некоторые нюансы были вовсе не очевидны: встроенная PSRAM в ESP32S3 (SPIPSRAM надо отключить), механизмы выделения памяти под буфер экрана, некоторые gpio надо отконфигруировать самому. После этого пример хоть как то заработал, но весьма кривенько. Но эти допилы уже сделали и выложили готовые: https://github.com/krupis/T-Display-S3-esp-idf https://github.com/hiruna/esp-idf-t-display-s3
собственно с gpio в этих примерах разобрались плоховато
для подключения дисплея T-Display-S3 используются следующие сигналы.:
данные D0-D7, стробы WR,RD,DC,CS, сброс RES, управление подсветкой BL (можно сделать ШИМ управление яркостью), а также управление питанием PWRON
Библиотека liblcd которая в esp_idf сама настраивает нужные gpio но не все. RD никак не трогается, по логике он должен быть в "1", в примере lilgo так и сделано, тем не менее в примерах выше, а так же в библиотеке LVGD этот пин устанавливается в состояние подтянутого входа, что, в принципе тоже работает. А вот в библиотеке TFT_eSPI сигнал RD вполне может использоваться по назначению. А вот сигнал WR любят называть PCKL.
Заметки о подключении дисплеев к ESP32