Рабочее кряхтение
Пояснение к предыдущей рабочей фотографии. Для очередного будущего когда-нибудь, относительно быстрого и несложного проекта мне нужно выполнить одновременное подключение двух однотипных TFT-дисплеев к двум раздельным SPI-шинам ESP32.
Это самый простой, первый шажок, за которым последует огромная куча других, и его нужно сделать сейчас, вместе с некоторыми простыми тестами, чтобы прояснить реализуемость проекта и понять, стоит ли им заниматься в будущем. Как и всегда с электронным DIY всё идёт не по плану: вместо пары минут на первый шажок ушло уже несколько часов и результата нет.
Для работы с дисплеями всех типов давно придуманы мощные библиотеки, которые знают все тонкости, и всего несколькими строками можно получить изображение. Очень удобно и быстро: подключил провода, настроил пины в коде, и можно пользоваться. Только эти библиотеки постоянно не работают как надо, и так как они практически чёрный ящик, сделать с этим толком ничего нельзя.
Популярная ныне LovyanGFX, которую я ранее успешно применял с точно таким же дисплеем в проекте EBT (в моей кастомной версии ESPboy) и собирался задействовать в этом изначально, просто падает на инициализации дисплея. Никакой информации к размышлению при падении не даёт. Код на 100% совпадает с референсным примером. Отличия только в хосте: в EBT был ESP8266, сейчас ESP32, но в интернете есть подтверждения, что всё должно работать.
Более старая Adafruit_GFX успешно инициализирует дисплей и не падает. Но не показывает ничего на экране. Но изображение в дисплей всё-таки пересылается, оно мелькает на экране в момент повторной загрузки кода в плату. Второй дисплей подключить вообще нельзя: эта библиотека сообщает о недопустимом выборе выводов контроллера для второй шины SPI (а он допустимый).
Каждая попытка загрузки скетча занимает около двух минут (на i5 3.5 GHz), так как Arduino IDE каждый раз зачем-то пересобирает внутри неизвестно что. Попытка как правило оканчивается ошибкой: процесс загрузки зависает в начале, или появляется сообщение об отсутствии в системе такого COM-порта (при этом монитор порта прекрасно отображает поток с платы), или ещё какое-нибудь загадочное сообщение, например, о нестабильности сигнала.
Пробовать надо до победного, и таким образом одна попытка проверки изменения занимает 10-15 минут. Можно успеть загрузить с аудиокассеты и поиграть в игру на ZX Spectrum.
Так и живём.
кряхтение
diy
vr32
РоманC
попробуй Arduino_GFX. У меня работало два экрана даже на ESP8266, но я вручную переключал SPI Chip Select https://github.com/moononournation/Arduino_GFX
Aug 01 2024 22:30 (changed)
1
shiru8bit
Роман Соколов, спасибо, попробую! Но думаю, что на одной шине два экрана заведутся и с Adafruit_GFX. А хочется попытаться добиться работы двух шин - они же есть, и теоретически это должно быть быстрее (хотя бы можно будет сравнить с одной). И ещё непонятно, что же не так с Lovyan.
Aug 01 2024 22:35
РоманC
Adafruit_GFX же адски медленный и ограниченный по функционалу
Aug 02 2024 06:37 (changed)
shiru8bit
Роман Соколов, ну ты же знаешь, что мне нужно от подобных библиотек: только инициализация и pushpixels.
Aug 02 2024 10:57 
1
Санёк Сушка | Саня, Тащи!
Мало что понял, но очень интересно))
Aug 07 2024 02:45 

1