На вскидку разрешение там около 256х64 пикселей (но это не точно). Размеры железной рамки 146х52 мм. От дисплея идет тонкий 17 пин шлейф на печатную плату.
Потыкал осциллографом и мультиметром во все пины шлейфа и вот что обнаружил: логика и напряжение питания находятся на уровне 3.3 вольта, но на некоторых контактах обнаружены различные странные напряжения, видимо нужные для регулировки контрастности. Составил “таблицу” пинов от 17 до 1 (в обратном порядке):
+3.3 | CLK (NC) | DH | +3.3 | DL | DH | DL | +3.3 | GND | -8.3 (NC) | +2.0 | +0.7 | -6.0 | -7.3 | -8.6 | +3.3 | +3.3
Где NC - дорожка на плате никуда не идет, пин висит в воздухе.
DH - пин на котором замечены изменения уровня при смене на дисплее информации, в простое он +3.3V.
DL - пин на котором замечены изменения уровня при смене на дисплее информации, в простое он 0V.
CLK - явно сигнал тактирования, частотой 5.6 кГц, но он тоже никуда не подключен и создается дисплеем
Какой это может быть протокол связи? не похож на большинство графических ЖК дисплеев, требующих 8 data-пинов и еще штуки 4 пинов по типу CS/RS. Может быть SPI?
Какой это может быть контроллер дисплея и какая библиотека под ардуину может к нему подойти?
Ну и было бы неплохо узнать его точную распиновку.
Всем заранее спасибо.
Дополнение: дисплей ну очень похож по размерам на OLED дисплеи 5.5 дюймов 256х64 на драйвере SSD1322, и этот драйвер как раз поддерживает и параллельный интерфейс, и SPI.
Дополнение 2: у дисплея разрешение оказалось 212х58, и в интернете ни одного дисплея с таким разрешением не удалось найти. Подключен он действительно по SPI, и даже примерно понял его распиновку, но подключив этот дисплей через ESP32 даже при использовании прерываний и быстрой работы с GPIO мне не удалось перехватить пакеты по этой SPI шине, она какая то очень быстрая не смотря на то что микроконтроллер который в магнитоле управляет этим дисплеем не имеет аппаратного SPI и работает на частоте 32 мгц против 240 у ESP32. Единственное что остается попробовать - подключить напрямую к аппаратному SPI у ESP32 (который в теории может на частоте до 80 мгц работать) и сохранить передаваемые дисплею данные в какой то буффер, а потом на маленькой скорости отправить их дисплею. Ну и потом анализируя и изменяя пакеты понять как с этим дисплеем работать и написать какую то библиотеку.
Дополнение 3: Чтобы упростить задачу перехвата пакетов ESP32, собрал преобразователь последовательной шины в параллельную на 8 битном сдвиговом регистре и 3 битном двоичном счетчике, таким образом преобразовав ~8 мгц последовательный сигнал в ~1 мгц параллельный сигнал.
Это уже удалось вполне стабильно перехватывать и декодировать на ESP32, и после пары попыток отправки этих пакетов обратно на дисплей - он их принял! После ручного анализа и осознования этих пакетов они оказались достаточно простыми, отправляются 8 групп каждая по 212 байт каждая, в каждой такой группе - область дисплея 212х8 пикселей, один байт = 8 вертикальных пикселей. Определив обязательные команды инициализации и очистки дисплея, написал свою прослойку для Adafruit_GFX, и оно работает!