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

 
 
> Стыковка таймингов дисплеев - проблема..., Стыковка таймингов OLEDа и TFT...
Саша Z
сообщение Jan 11 2008, 11:00
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822



Задача следующая: в системе есть работающий OLED дисплей резолюцией 320хRGBx240, 6 бит на цвет (т.е. 18 бит на пискель). Входной видео тайминг данного OLEDа включает горизонтальный и вертикальный syncs (VSYNC, HSYNC), data valid (DV) и ессно клок данных (на пиксель по 3 клока).
Есть блок в FPGA который форматирует все это в 18 бит выход с соотв. частотой клока и syncs.
Тайминг его таков что его syncs идут шириной в один клок и сразу следом наичается DV и данные. Т.е. на выходе форамтирующего блока FPGA идут данные шириной 18 бит так что на 320 пикселей в строке идет 321 клок (320 клока данных + один клок sync который либо HSYNC при переходе строки либо HSYNC одновременно с VSYNC при переходе фрейма). Сканирование ессно progressive.
И так, bottom line: имеем на входе 321 клок в строке (каждый клок их 320 - данное, 321ый клок - sync), всего 240 строк, итого 77040 клоков на фрейм.


Нужно данный тайминг выходе форматирующего блока подогнатаь под тайминг стандартного TFT дисплея который тоже резолюцией 320хRGBx240 но его стандартный входной тайминг подогнан под стандартный TV сигнал (NTSC). Т.е. первые 7 строк - пустые, затем идет 320 строк видео, после чего еще 15 строк пустых (для обратного хода луча). Ессно есть стандартные syncs: VSYNC, HSYNC, DEN (data enable внутри строки) и PCLK (pixel clock). Каждая строка имеет длинну между соседними HSYNCs: 400 клоков, из них данных: ессно 320 клоков. Ширина пульса HSYNC - 96 клоков, ширина VSYNC - 2 строки. Значит полная ширина строки (от фронта до фронта HSYNCа): 496 клоков, ширина VSYNCа: 992 клока.

Понятно что нужен буфер памяти (FIFO) для подгонки таймингов: т.е. например буфер на время тех 22 TV строк TFT дисплея. Буфер начинает заполняться видео данными по первому VSYNC/HSYNC OLEDа в течении 22ух TFT строк (что равно примерно 35 OLED строкам), затем начинаем читать видео данные наружу на TFT. Но проблема в том что величина буфера в 22 TFT строке не будет постоянной ибо кол-во клоков в каждой строке TFT значительно больше кол-ва клоков строки OLEDа.
Как мне кажется, буфер со временем переполниться вследствии разницы в длине строк (в клоках), т.е. будет нарастающее запаздывание считывания по сравнению с записью.
Забыл отметить: выход OLEDа (вход буфера) и вход TFT (выход буфера) идут по одному клоку, т.е. на одной частоте.

Действительно ли FIFO буфер в таком случае будет переполняться и получиться бардак ? Или я не совсем правильно это себе представляю ?

Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
petrov
сообщение Jan 11 2008, 12:19
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Судя по вашему описанию буфер будет переполняться. На TFT получается нужно выдавать данные с более высоким клоком на величину необходимую для передачи пустых строк.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 17th July 2025 - 23:56
Рейтинг@Mail.ru


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