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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Связать FPGA и монитор TFT, Советы начинающим
Hoodwin
сообщение Jan 27 2012, 09:37
Сообщение #16


Знающий
****

Группа: Участник
Сообщений: 881
Регистрация: 21-03-10
Из: _// \\_
Пользователь №: 56 107



DmitryR
Я вот не участвовал в разработке контроллеров для мониторов, поэтому не возьмусь отвечать за их содержимое. Я могу лишь поделиться опытом, что получается, если взять ПЛИС и выдать развертку на типовой TFT-монитор. Так вот, автоподстройка не может настроиться на правильное отображение картинки, если pixel clock не попадает немного в рекомендованные значения. При этом диапазон регулировок (ручных) самого монитора раз в 20 перекрывает исходную ошибку. Например, разница между 182.5 и 185.25 дает ошибку в 2.5 пикселя при строке в 1920 пикселей, а диапазон регулировок - от -50 до 50 пикселей. Как это объяснить?

Я это объясняю тем, что TFT-монитор имеет ограниченный набор синтезатора частот для pixel clock. И не всегда этот набор может совпасть с той частотой, которая используется видеосистемой. Именно в этом случае никакой автоподстройкой не добиться того, что моя активная область даст ровно столько же пикселей, сколько есть в матрице. И в итоге получается нечеткая картинка. А ведь суть автоподстройки в мониторе именно в том, чтобы выровнять картину и фазы пикселей на экране именно в тех условиях, когда видеосистема выдает их с некоторыми отклонениями от тех параметров, которые ожидаются по GTF.

Что касается уровней, то тут Вы и вовсе, как мне кажется, вводите людей в заблуждение. Вот нарыл интересный документ:
http://www.epanorama.net/links/videosignal.html
Главным образом, он интересен там, что там кратко и по сути есть про все видеосистемы, как компьютерные, так и телевизионные. Так вот:
1) Для систем компьютерного отображения используется покомпонентная передача цветов R, G, B уровнями от 0 до 0.7В. Синхронизация при этом бывает трех типов: HSYNC + VSYNC, Composite SYNC, Sync on green. Насколько я понимаю, VGA - это именно отдельные HSYNC + VSYNC, поэтому никаких там подставок в зеленом компоненте нет вообще. Сейчас специально взял и осциллографом посмотрел развертку обычного компа на VGA, совершенно одинаковый размах для всех компонент, плюс никаких подмесов HSYNC в зеленый. Возможно, есть мониторы, которые умеют работать и по Sync on Green (помимо основной HSYNC + VSYNC), но это их собственные фичи, не являющиеся обязательными для всех видеосистем. И не надо людей запутывать.
2) Что касается подставки в зеленом, то она именно для добавления синхронизации и нужна в композитном сигнале. Никакой бланкинг она не маркирует. Вот взгляните на таблицу 9 стр. 18 в даташите на ADV7123. Там вообще идентичны данные выходов для Black level и blank level. То есть, попросту говоря, бланкинг - это не "чернее черного", а просто обычный черный. А вот SYNC - это настоящий 0В, который действительно ниже уровня черного. Но это и есть собственно композитный сигнал уже, а вовсе не обычный VGA.
3) И вообще пример с ADV7123 неудачный. В даташите нет ни одного упоминания, как применять этот чип для разверки VESA и VGA, зато есть упоминание стандартов RS-170 и RS-343A, которые для телевидения, а не для VGA-мониторов. Да, из него тоже можно сделать VGA уровни, но это будет другая схема, нежели приведенная в рисунке 28, с тремя BNC выходами на монитор и композитным зеленым.

zombi
Да все у Вас нормально будет, нет там никаких подставок на VGA. Все сигналы от 0В (черный) до 0.7В(белый). Конечно, резисторный ЦАП будет не так хорош, как настоящий, но выглядеть будет похоже.

Вообще, в развертке VGA как таковой ничего сложного нет. Подключил ЦАП, который тянет нагрузку в 37.5 ом, сделал hsync и vsync, и все дела. Немного сложнее с таймингами, поскольку для каждого режима есть рекомендованный pixel clock, и нужно так выбрать базовую частоту, чтобы можно было с помощью PLL в ПЛИС получить частоты для всех нужных режимов. Либо просто поставить внешний синтезатор таких частот, но это место и дополнительные затраты.

Вот тут уже как-то выкладывали документик, который будет полезен для правильной настройки времянок в различных видеорежимах. Все же стандарт от VESA, как-никак...
Прикрепленные файлы
Прикрепленный файл  CVTv1_1.pdf ( 98.25 килобайт ) Кол-во скачиваний: 92
 
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Jan 27 2012, 10:37
Сообщение #17


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

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(Hoodwin @ Jan 27 2012, 12:37) *
Например, разница между 182.5 и 185.25 дает ошибку в 2.5 пикселя при строке в 1920 пикселей, а диапазон регулировок - от -50 до 50 пикселей. Как это объяснить?

Еще раз говорю, я думаю что у вас что-то еще было неправильно настроено. Если же при всех остальных идентичных настройках 182.5MHz работает, а 182.25MHz - нет, то я бы попробовал на паре мониторов других моделей, потому что это очень странно.

Цитата(Hoodwin @ Jan 27 2012, 12:37) *
То есть, попросту говоря, бланкинг - это не "чернее черного", а просто обычный черный.

То есть если на монитор сразу после смены видеорежима подать картинку с широкой черной каемкой (или вообще черный экран), он по идее должен принять ее за бланкинг (раз черный и бланкинг в видеосигнале не отличаются) и не смочь установить синхронизацию?

Цитата(Hoodwin @ Jan 27 2012, 12:37) *
Что касается уровней, то тут Вы и вовсе, как мне кажется, вводите людей в заблуждение. ... 3) И вообще пример с ADV7123 неудачный.

Может он и неудачный, но он стоял на ките FPGA, и поэтому его решили применять, и все работало. И описал я про уровни ровно то, что написано в его даташите, поэтому говорить, что я ввожу кого-то в заблуждение можно только если вы найдете существенные отличия в моей интерпретации от того, что написано в том документе.

Go to the top of the page
 
+Quote Post
Sergey_Bekrenyov
сообщение Jan 28 2012, 15:29
Сообщение #18


Местный
***

Группа: Свой
Сообщений: 323
Регистрация: 14-12-10
Из: Королёв
Пользователь №: 61 599



Не мучайтесь http://www.xilinx.com/support/documentatio...o_Interface.pdf
На Atlys все работает замечательно. Есть ограничение по максимальному формату в 1280х720 - но это ограничение FPGA (частота выходных сигналов)
Go to the top of the page
 
+Quote Post
Hoodwin
сообщение Jan 29 2012, 20:13
Сообщение #19


Знающий
****

Группа: Участник
Сообщений: 881
Регистрация: 21-03-10
Из: _// \\_
Пользователь №: 56 107



Цитата(DmitryR @ Jan 27 2012, 13:37) *
Еще раз говорю, я думаю что у вас что-то еще было неправильно настроено. Если же при всех остальных идентичных настройках 182.5MHz работает, а 182.25MHz - нет, то я бы попробовал на паре мониторов других моделей, потому что это очень странно.

На других мониторах не пробовали. Точнее, пробовали уже после того, как выбрали 182.5, поэтому детально сравнениями уже не занимались.
Кстати говоря, моя догадка о дискретности выбора pixel clock в мониторе косвенно подтверждается в стандарте VESA:
Цитата
3.2 Pixel Clock Selection
Due to the finite precision of modern clock synthesis circuitry, the pixel clocks used will all be members of a
specified set, in this case integer multiples of 0.25 MHz +/- 0.5%.

То есть, это именно некий программируемый синтезатор частоты, а не PLL, умножающая частоту Hsync на произвольное целое. Единственное, что мне не до конца понятно: ведь 182.5 и 182.25 отличаются как раз ровно на 0.25, о которых речь в стандарте. И стало быть, монитор должен был бы подобрать такую частоту точно. Видимо, либо там сделали синтезатор с меньшим шагом, не кратным 0.25, скажем 1/6 МГц, либо банально где-то накосячили с самим алгоритмом автоподстройки.


Цитата(DmitryR @ Jan 27 2012, 13:37) *
То есть если на монитор сразу после смены видеорежима подать картинку с широкой черной каемкой (или вообще черный экран), он по идее должен принять ее за бланкинг (раз черный и бланкинг в видеосигнале не отличаются) и не смочь установить синхронизацию?

Вы будете смеяться, но примерно так и есть. Конечно, мониторы имеют защиту от явных глупостей, но при желании их можно обмануть.
1) Мониторы уже давно (еще со времен ЭЛТ) запоминают параметры синхронизации и ассоциируют с ними конкретные параметры развертки. Поэтому просто переключить видеорежим уже недостаточно, монитор вспомнит, что он такой уже видал, и загрузит вполне сносные параметры. Чтобы его задурить, нужно либо включить режим с новыми параметрами, либо вручную позвать автокалибровку.
2) Если видеорежим новый для монитора, то он может либо посчитать (используя формулы стандарта) параметры развертки, измерив параметры hsync и vsync, а может еще и вдобавок запустить автокалибровку.
3) Автокалибровка в принципе может слишком сильно наврать, если экран черный, поэтому в алгоритмах проверки параметров, полученных с ее помощью, может стоять проверка, не слишком ли сильно они отклонились от того, что должно бы по GTF (или CVTS). Именно это может удержать монитор от глупостей при черном экране, что в целом редко, скажем для Windows.
4) Если же автокалибровка запускается в условиях, когда картинка имеет небольшую окантовку черным цветом, например, такую, размеры которой вполне укладываются в диапазон ручной регулировки, то вот тогда автокалибровка вполне может оттяпать все черные пиксели и остальные растянуть на весь экран. Кстати, не далее как сегодня наблюдал такое. При загрузке тестового компа подключил диск без ОС, и на экране была серая на черном надпись с предложением заменить загрузочный носитель и нажать любую клавишу. Надпись была во второй и третьей текстовых строках экрана. После автокалибровки надпись переехала наверх и влево. После загрузки нортона верхняя строка была не видна, повторная автокалибровка все поставила на свои места.

Все это говорит о том, что монитор не отличает черного в отображаемой области, от черного в неотображаемой. Другое дело, что есть стандарт GTF и CVTS, который связывает размеры экрана с характеристиками HSYNC и VSYNC, и поэтому какой-то видеорежим установить монитор сможет всегда. Читать видеоданные и искать там бланки ему для этого не нужно.


Цитата(DmitryR @ Jan 27 2012, 13:37) *
Может он и неудачный, но он стоял на ките FPGA, и поэтому его решили применять, и все работало. И описал я про уровни ровно то, что написано в его даташите, поэтому говорить, что я ввожу кого-то в заблуждение можно только если вы найдете существенные отличия в моей интерпретации от того, что написано в том документе.


Попробую еще раз объяснить. ЦАП ADV7123 - универсальный, он может выдавать картинку в нескольких режимах, а именно: в режиме VGA и в режиме с подставкой в зеленом. При этом про композитный вариант с подставкой (sync on green) там даны примеры, а про VGA не даны. Но по табличке 9 можно с нескольких попыток углядеть, что если удерживать входы BLANK#=1 и SYNC#=0, то он не будет выдавать никакого смещения в зеленом. Именно это и будет режим обычного VGA. Поэтому утверждение про подставку:
Цитата
Есть, в зеленом канале. Ранее эта подставка использовалась еще и для синхронизации, сейчас - только чтобы бланкинг маркировать. См. ADV7123 например, на его примере это все лучше понятно. Там и бланкинг отдельным входом, и рисунки есть, как он делается.

лишь вводит людей в заблуждение. Нету в VGA никакого бланкирования, "чернее черного" и т.п. В телевизионных стандартах - есть, а в VGA - нету. laughing.gif
Go to the top of the page
 
+Quote Post
zombi
сообщение Jan 29 2012, 21:38
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(Hoodwin @ Jan 29 2012, 23:13) *
Если же автокалибровка запускается в условиях, когда картинка имеет небольшую окантовку черным цветом, например, такую, размеры которой вполне укладываются в диапазон ручной регулировки, то вот тогда автокалибровка вполне может оттяпать все черные пиксели и остальные растянуть на весь экран.

100%. Постоянно с этим сталкиваюсь. И сильно раздражает необходимость перезапускать автокалибровку на изображении без боковых чёрных областей.
Go to the top of the page
 
+Quote Post
анатолий
сообщение Jan 30 2012, 19:28
Сообщение #21


Местный
***

Группа: Свой
Сообщений: 221
Регистрация: 10-12-05
Из: Украина
Пользователь №: 12 052



Цитата(zombi @ Jan 26 2012, 00:53) *
Ув. 'Hoodwin' можете подсказать какой максимально допустимый "Jitter pixel clock", к примеру, VGA 800x600 60Hz для TFT монитора ? И есть ли вообще такой параметр?

Очень маленький " pixel clock Jitter". Пробовал изменять частоту синхросерий внутренней DLL\PLL ПЛИСа
Xilinx, Lattice - из-за джиттера LCD-дисплей или совсем не включался, или изображение получалось нестабильное.
Правда, сигнал был для DVI. Но синхросигналы аналоговые - они что цифровые.
Go to the top of the page
 
+Quote Post

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

 


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


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