shiru8bit

shiru8bit 

Программист, музыкант, самоделкин, ретрогеймер

87subscribers

813posts

Рабочее кряхтение

Пояснение к предыдущей рабочей фотографии. Для очередного будущего когда-нибудь, относительно быстрого и несложного проекта мне нужно выполнить одновременное подключение двух однотипных 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.
Так и живём.
попробуй Arduino_GFX. У меня работало два экрана даже на ESP8266, но я вручную переключал SPI Chip Select https://github.com/moononournation/Arduino_GFX
Роман Соколов, спасибо, попробую! Но думаю, что на одной шине два экрана заведутся и с Adafruit_GFX. А хочется попытаться добиться работы двух шин - они же есть, и теоретически это должно быть быстрее (хотя бы можно будет сравнить с одной). И ещё непонятно, что же не так с Lovyan.
Adafruit_GFX же адски медленный и ограниченный по функционалу
Роман Соколов, ну ты же знаешь, что мне нужно от подобных библиотек: только инициализация и pushpixels.
Мало что понял, но очень интересно))
Subscription levels6

Микро 16

$0.23 per month
Просто потому что нельзя 8. Даже самая малая поддержка важна. Спасибо!

База 128

$1.79 per month
Для тех, кто просто хочет поддержать. Спасибо!

Супер 256

$3.6 per month
Для тех, кто хочет поддержать. Спасибо!

Кило 320

$4.5 per month
Для тех, кто сильно хочет поддержать. Спасибо!

Мега 640

$9 per month
Для тех, кто очень хочет поддержать. Спасибо!

Гига 1024

$14.4 per month
Для тех, кто крайне хочет поддержать. Спасибо!
Go up