реклама на сайте
подробности

 
 
> Графический TFT LCD с параллельной шиной и 18-битным цветом. Помогите запустить, Есть три модели от Sharp, Nec и U.R.S. у всех разные тайминги.
syoma
сообщение Mar 14 2008, 18:38
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Народ подскажите пожалуйста, кто сталкивался с реализацией интерфейса от процессора к таким LCD. То есть есть видеобуффер с 18-битным цветом. И я делаю на FPGA реализацию низкоуровнего интерфейса, который бы с определнным Фреймрейтом(60FPS) запихивал его в LCD. Прикол в том, что есть два последних дисплея из вышеупомянутого списка и спецификация от Шарпа на такой же дисплей.
Все дисплеи имеют абсолютно одинаковую распиновку, разрешение 320х240, по 6 бит на цвет и одинаковые и как я понял стандартные сигналы VSYNC, HSYNC, DATA_ENABLE, CLK, R/L, U/D.
С двумя последними вроде все понятно - они определяют направление развертки и по идее просто цепляются к соответсвующим напряжениям питания.
Но со всеми остальными полная фигня.
Во первых я так и не понял - в двух моделях описано два возможных режима работы FIXED и DE. Второй вроде как упрощенный - только DE, но почему-то в одном дисплее используется сигнал VSYNC, а в другом просто DE должен быть длинней и это вроде как начало кадра.
Во вторых у всех FIXED Mode вроде как одинаковый, но у каждого свои тайминги для VSYNC и HSYNC и свои количества холостых линий и пикселей - у одного 50 линий после VSYNC, у другого 37, у трeтьего 74, то есть при всей своей одинаковости - заменить один дисплей на другой без изменения программы нельзя - картинка просто будет сдвинута. Также в этом режиме одному нужен DE, другой только без DE работает а в третьем можно и так и так - DE определяет начало рабочих данных.
Ну и что вообще меня убило, что у них разная полярность сигнала DE и что самое прикольное фазировка CLK! У одного синхрoнизация по спаду у другого по фронту!
В общем я офигел, причем все пишут что базируются на одной спецификации от Sharpa.
В итоге 2 дня мудохаюсь, на одном дисплее всякие полоски мигают. Другой просто черный.
Помогите разобраться плиз - все таки надо этот FIXED режим реализовывать или как то еще их можно запустить?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
syoma
сообщение Mar 16 2008, 12:15
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Тот, что черный - NEC3224BC35-22. 5.5" QVGA дисплей. Как раз мне он кажется более многообещающим с точки зрения отладки, так как он работал на демонстрационной плате. Второй - я считаю noname, так как фирма непонятная - U.R.T и даташит непонятный. К сожалению посмотреть осциллограмы рабочей платы я не могу, так как демо-прогу просто стерли и теперь не знают где искать.
Но насколько я понял моя ошибка в том, что я понадеялся на режим DE, а его не надо испльзовать, а нужны все сигналы и горизонтальной и вертикальной синхронизации.
Если так, то моя прога в System Generatore однозначно неправильная.
Просто могу описать как она работает, если получится. За оптимизацию прошу не пинать
Прикрепленное изображение

Счетчик Counter_CLK считает с частотой 12Мгц до 800, т.к самый младший бит счетчика используется как клок CLK, то получается, что CLK имеет частоту 6Мгц и счетчик как раз отсчитывает 400 клоков, что составляет длину одной линии (320+холостые клоки).
Прикрепленное изображение

Дальше стоит компаратор, который выдает 1 если значение счетчика менее 320. Это генерация сигнала DE. Логика И после этого служит для блокирования сигнала DE, во время импульса вертикальной синхронизации и чтобы количество DE импульсов соответствовало 240. Для єтого стоит счетчик Counter_DE, который считает с частотой 1/(CLK*400), т.е. с частотой вертикальной развертки. Если значение счетчика менее 240 строк, сигнал DE генерируется, иначе запускается Counter2, который считает с такой же частотой как и предыдущий счетчик(нахрена тогда этот счетчик нужен? Вопрос самому себе).
Прикрепленное изображение

Выход этого счетчика с помощью компараторов генерирует сигнал VSYNC, который начинается за 5 строк после окончания генерации DE, длится 5 строк, и еще 5 строк ничего не происходит. Затем он сбрасывает счетчик строк. Т.о. длительность вертикальной развертки составляет 240+5+5+5=255строк. Счетчик Counter_Adr, используется как счетчик адреса в видеобуфере, и инкрементируется с частотой клока. Он инкрементируется, только если DE активный, то есть, когда выводятся правильные данные. Дальше должен быть сам буффер, но я просто подал выход счетчика на выход данных. Т.о я ожидал увидеть стабильные цветные полосы, или что-то похожее на это. Всякие Delays служат для синхронизации клока, данных и DE по фронтам. Инвертированный сигнал - Vsync - это уже следствие экспериментов.
Прикрепленное изображение

Я так понял, что проблема в Vsync - то что его просто нема.
Еще вопрос. Осцик показывает фронты по 30-40 нс - это очень плохо? Просто линии связи сейчас порядка 50см. Дисплей с такой длинной проводов будет работать?
Go to the top of the page
 
+Quote Post
Ledmaster
сообщение Mar 16 2008, 17:51
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 142
Регистрация: 18-02-08
Из: Челябинск
Пользователь №: 35 141



Я с Xilinx’ом не работал, приведу очень простой пример дизайна для Altera.

Девятиразрядный счетчик по модулю 400 формирует строчный интервал ( 320 тактов активной части строки + 80 тактов гасящий интервал). Строчный гасящий импульс формируется компаратором по условию H[8..0] больше или равно 320.
Совершенно аналогично формируется кадровый интервал. Сигнал DATA_ENABLE формируется элементом ИЛИ-НЕ из строчного и кадрового гасящих импульсов ( выведены на внешние контакты для наглядности). В качестве сигнала CLC для LCD панели используется прямой или инвертированый системный CLC ( учитываем, что смена адреса H[8..0], V[8..0] происходит синхронно по фронту CLC).
Если панели действительно нужны сигналы HS и VS, каждый из них можно сформировать одинаковой схемой из двух компараторов, сравнивающих значение счетчика с константами начального и конечного положения импульса, и RS-триггера, включаемого первым компаратором и выключаемого вторым.
Замечу, что в общем случае, адрес для экранной памяти формируется отдельным счетчиком, счет которого приостанавливается на время гасящих интервалов, что позволяет использовать ровно столько памяти, сколько занимает активная часть изображения. В данном случае, это было бы актуально для изображения 320 х 200 = 64000 ( 64К памяти) против 512 х 256 ( 128К ), а для 320 х 240 = 76800 все равно придется использовать память длиной 128К, так что можно формировать адрес прямо из H[8..0], V[7..0].
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 06:08
Рейтинг@Mail.ru


Страница сгенерированна за 0.01852 секунд с 7
ELECTRONIX ©2004-2016