Arduino и десплей от видеорегистратора
- Войдите на сайт для отправки комментариев
Добрый вечер, уважаемые форумчане!
Есть дисплей от видеорегистратора texet dvr-101hd. Ни схему на регистратор, ни схемы подключения дисплея ничего не нашёл. Пробовал искать тип контроллера по шлейфу дисплея и нашел три варианта: 1. SPFD5408B, 2. ILI-9325/9328 3. ST7789S. От третьего не нашел драйвера. От драйвера ili9341 дисплей ожил. И графику и текст правильно отображает. Разрешение экрана 240*320. Но цвет был всего лишь один- синий. Покопавшись в даташите от st7789s нашел адреса которые отвечают за битность цвета и выставил, чтобы дисплей считывал 12-битные данные цветности и о чудо- я стал наблюдать 2 цвета- синий и зеленый. Далее проинвертировал биты дисплея с BGR на RGB и стал видеть красный и зеленый и желтый. Фото прилагаю того что получилось. Определить тип контроллера прогой для тестирования от adufruit_lcd не удалось- пишет 0(ноль) неизвестный дисплей. Получается что команды и биты очень похожи от 9341, но не оно. Подскажите где в adafruit_tftlcd находятся команды записи цвета для 9341. Я так понимаю, что 16битный цвет должен разбиваться на 2 по 8 бит и по очереди передаваться в контроллер дисплея, а этого не происходит.
Добрый вечер, уважаемые форумчане!
Я так понимаю, что 16битный цвет должен разбиваться на 2 по 8 бит
На 2 по 5 бит и 1 по 6 бит, или 3 по 5 бит.
arduinec, это я разобрался, что цвет состоит из R- 5бит, G-6бит, B-5бит, спасибо. А где в adufruit_tftlcd.cpp находится команда отправляющая код цвета на дисплей? Я хочу разобраться по какому принципу записываются данные о цвете пикселя/символа в память дисплея- т.е. это мой дисплей игнорирует следующий байт с цветом или же из программы надо подавать синхроимпульс для записи следующего байта цвета в дисплей.
После ресета и инита подается команда на запись видеобуфера. Затем поток данных для отображения, попиксельно, каждый пиксель - 2 байта как выше написано. Так хоть весь экран заливаем. Полезно ограничить область вывода нужным прямоугольником, тогда его залем. Самый худший вариант - для каждого пикселя заново команду и 2 байта данных. Символов, как таковых у экрана нет, чисто графика, только пиксели, только хард ))
Logik, шина c arduino uno используется 8-ми битная к дисплею подключаю к младшим 8 битам. Допустим код цвета 0хF3E5- это уже 16 бит (2 байта). Как программно записать этот цвет пикселя? кусок кода можешь скинуть как это программно выглядит?
Логически, я думаю, что надо передать сначала 0хЕ5, потом команда для дисплея на прием следующего байта, и передаем следующий байт 0хF3. Мне бы кусок программного кода поглядеть, а то я никак не найду где он находится чтобы порпавить под себя.
Правильно думаете, только без команд перед вторым байтом. Только что первое (0хЕ5 или 0хF3) а что второе - проще опытным путем. Вобщем так на шине должно быть :<команда записи байт 1>,<команда записи байт 2>, <пиксель 1, байт 1>, <пиксель 1, байт 2>, <пиксель 2, байт 1> , <пиксель 2, байт 2>...
Управляющие сигналы соответствующие выставлять и менять - и всех делов то.
Я
digitalWrite
заменил на более быстрое, но оставил под коментами для понимания.Logik, спасибо! Получается сам дисплей должен ожидать приема следующего байта, а он не ожидает, т.к находится в 16 битном режиме((( Я пробывал самые разные комбинации IW0-IW3, а он как работал так и работает в одном режиме. На плате стояли резюки по 0 Ом и получался код 1001, наверное, все таки, в дисплее жестко прописан режим.(((
Остается подключить дисплей или в 12 битный режим(в него я могу перевести программно) или в 16 битный режим- а это минус 4 пина( как минимум) на ардуинке. Для Mega это не критично, а вот для UNO - ограниченный функционал. Или использовать два основных цвета "Синии + зеленый" или "Красный + Зеленый". Так тоже неплохо получается)
Пробывал неиспользуемые пины дисплея D10-D17 сажать на +3,3В, появляется белый цвет, и весь фон засвечивается оттенком красного или синего, а не черный. Так хуже нежели использовать 2 цвета в 12 битном режиме.
Так перепаяйте резюки, чтоб в 8-битный перешло.
Все комбинации перебрал, так и не перешел в 8-ми битный режим. Я отдельно провода вывел и перебирал все 16 вариантов. Наверное жестко сидит 16 битный вариант.
Остается подключить дисплей или в 12 битный режим(в него я могу перевести программно) или в 16 битный режим- а это минус 4 пина( как минимум) на ардуинке. Для Mega это не критично, а вот для UNO - ограниченный функционал.
Если Меги нет, то можно со сдвиговыми регистрами 595 побаловаться.
Пробывал неиспользуемые пины дисплея D10-D17 сажать на +3,3В, появляется белый цвет, и весь фон засвечивается оттенком красного или синего, а не черный. Так хуже нежели использовать 2 цвета в 12 битном режиме.
Вот ещё вариант: подавать сигналы на 3 старших бита каждого цвета, а оставшиеся биты притянуть к "земле". Но для этого нужно определить: какой пин за какой бит какого цвета отвечает.
Все комбинации перебрал, так и не перешел в 8-ми битный режим. Я отдельно провода вывел и перебирал все 16 вариантов. Наверное жестко сидит 16 битный вариант.
А чего их перебирать, их там до чертиков. Если уверены что ili9341 то ищем даташит https://cdn-shop.adafruit.com/datasheets/ILI9341.pdf там все есть, режимы например на 10стр.
Вот ещё вариант: подавать сигналы на 3 старших бита каждого цвета, а оставшиеся биты притянуть к "земле". Но для этого нужно определить: какой пин за какой бит какого цвета отвечает.
Не, там шина, там кроме данных еще и команды нужны, их так обрезать низя.
Все комбинации перебрал, так и не перешел в 8-ми битный режим. Я отдельно провода вывел и перебирал все 16 вариантов. Наверное жестко сидит 16 битный вариант.
А чего их перебирать, их там до чертиков. Если уверены что ili9341 то ищем даташит https://cdn-shop.adafruit.com/datasheets/ILI9341.pdf там все есть, режимы например на 10стр.
В том то и дело, что до конца и не понял какой контроллер стоит. По пинам на шлейфе дисплея подошел котроллер ST7789S. Нашел даташит и если смотреть на IM0-IM3 (1001), то режим использовался 8-ми битный с подключением к старшим разрядам D17-D10. Вроде как логично и пины D9 и D0 жестко посажены на землю. Подключил информационные пины с ардуино на старшие разряды дисплея. Ииии тишина, даже никаких дерганий. Перебрал кучу драйверов и ничего. Думаю, а дайка я переброшу на младшие разряды, и о чудо экран задергался. Перебрав по очереди все драйвера, показывать стал только из под ILI9341. По кодам управления с ST7789S идентичны.
А в видеорегистраторе использовались все 16 бит- это я пробежался по плате и вижу что все пины подключены к процессору. Из этого делаю вывод, что дешифратор дисплея определил не верно.
Интересно у какого дешифратора IM0-IM3 код (1001) означает 16-битный режим?
А вот сдвиговые регистры это ТЕМА. Я вчера заказал для других задач 3 дисплея за 780 руб/партия 2,4" с тачами и смотрю на шилде стоит 2 микрухи- тут мне мысль пришла, что это наврено регистры стоят, но на фото не видно какие именно. Наверное 595. Спасибо за идею arduinec.
на шилде стоит 2 микрухи
Там скорее всего стоят микросхемы преобразователей сигналов с 5 В на 3.3 В.
Почти 100% это преобразователи уровня. С 595 регистрами тормозня будет, скорость вывода не выше 2-3 кадров в секунду получите. Если такое устроит, то проще по i2c или spi подключить.
С 595 регистрами тормозня будет, скорость вывода не выше 2-3 кадров в секунду получите. Если такое устроит, то проще по i2c или spi подключить.
Вообще, 595 достаточно быстрый регистр (предельная частота 100 МГц). Другое дело, что Ардуина с такой скоростью ему данные не успевает кидать.
Впрочем, ТС сейчас важнее с пинами разобраться, а скоростью потом озадачиться.
Интересно у какого дешифратора IM0-IM3 код (1001) означает 16-битный режим?
Вот у этого шилда определяется код 0101 (#46): http://arduino.ru/forum/programmirovanie/rusifikatsiya-biblioteki-adafru...
В примерах скетчей вместо 0101 подставляется код 9341 и дисплей работает (в 8-битном режиме).
Полный набор с библиотеками: https://yadi.sk/d/xNv6ovluoJVU9
Arduino, спасибо за информацию. Попробую с этим библиотеками и отпишусь.
Всем привет!
Кто-нибудь знает, что это за дисплей и возможно ли его приспособить к ардуино-поделкам?
Дисплей снят с авто зеркала-видеорегистратора. Полный "нонейм", как собственно и сам регистратор.
На шлейфе "пароль" FPC043BA-05-09HT. Гугл на него не отзывается..
Навскидку (по внешнему виду, регистратор какой-то DEXP). Дисплей 4,3 дюйма, 24 пина.
На мелкой "материнской плате" регистратора живёт процессор GPCV5247A.