Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вывод изображения через VGA (Spartan) на LCD-монитор
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Ellochka
проблема состоит в том, что на обычные мониторы изображение выводимое через VGA-разъем платы Spartan-3 показывается на старом мониторе, ЭЛТ, но не показаывается на ЖК!
Кто-нибудь выводил изображение на ЖК-монитор?

Почему не выводится? Там что уровни напряжений другие нежели у старых мониторов???

Ума не приложу! Подскажите , пожалуйста!
aaarrr
Возможно, LCD-монитору не нравится режим. Какой у Вас используется?
Михаил_K
Если имеется ввиду кит, с 200 спартаном 3 и тестовая прошивка, которая залита по умолчанию, то я выводил. Никаких проблем не было.
rezident
Цитата(Ellochka @ Jul 6 2009, 18:34) *
Почему не выводится? Там что уровни напряжений другие нежели у старых мониторов???
Обычно отличия у аналоговых ЭЛТ и аналоговых LCD-мониторов только в поддержке максимальных частот рефреша. С рефрешем напрямую связаны строчная и кадровая частоты.
DmitryR
У LCD ныне рефреш вообще только 60 Гц, плюс обычно очень жесткие требования к бланковым полям.
Ellochka
1. Монитор переводила в режим 640 на 480, 16 бит цветов, 60 Гц. На спартане - всего 8 цветов, 3 бита, но цвет думаю, поддерживается.

2.Да у меня Spartan3. Заливала туда игрушку PONG (пин-понг), которую нашла в OpenExamples... в ISE 10.1. А что в стартер ките-то вы выводили, Михаил_K? Как называется программка? где ее найти? Стартер кит потенциально есть.

3.Частота спартана - 60 Гц, монитор тоже в этот же режим переводила.

4. У меня появилась такая мысль: может быть для поддержки LCD на какие-то выводы надо подавать доп. информацию? что-то вроде адаптера для монитора? Я слышала про pin12, pin15 - на них выводится сигналы SDA и SKL. ?


Насчет уровней напряжений: со спартана сигналы R,G,B,HS отлично снимаю, а вот VS почему-то не нахожу.. 0 вольт и все..

Смотрела выходные уровни на VGA-разъеме компа.. так там вообще ничего путного, точнее те же 0 вольт..
EvgenyNik
Цитата
Насчет уровней напряжений: со спартана сигналы R,G,B,HS отлично снимаю, а вот VS почему-то не нахожу.. 0 вольт и все..

Смотрела выходные уровни на VGA-разъеме компа.. так там вообще ничего путного, точнее те же 0 вольт..

Мультиметром смотрите чтоль? Он же импульсный, его только осциллографом.
Сильно сомневаюсь, но попробуйте поиграться с полярностью HS, VS, т.е. поставить инверторы на выход (сначала у одного, потом у другого, потом у обоих...)
Ellochka
Цитата(Евгений Николаев @ Jul 7 2009, 11:01) *
Мультиметром смотрите чтоль? Он же импульсный, его только осциллографом.

на осциллографе, конечно, смотрела. там же частота, на мультиметре я бы ничего не увидела бы.
Цитата(Евгений Николаев @ Jul 7 2009, 11:01) *
Сильно сомневаюсь, но попробуйте поиграться с полярностью HS, VS, т.е. поставить инверторы на выход (сначала у одного, потом у другого, потом у обоих...)

(((
Cont
Проверьте полярность сигнала DE, неправильная полярность этого сигнала у меня привела к такому же результату
Zwerg_nase
Цитата(Ellochka @ Jul 7 2009, 10:39) *
4. У меня появилась такая мысль: может быть для поддержки LCD на какие-то выводы надо подавать доп. информацию? что-то вроде адаптера для монитора? Я слышала про pin12, pin15 - на них выводится сигналы SDA и SKL. ?


SDA и SCL это сигналы канала DDC (см. аттачмент). Чтобы монитор показывал, сюда ничего подавать не надо. Можно прочитать из монитора информацию о том, какие режимы он поддерживает.
Ellochka
Цитата(Cont @ Jul 7 2009, 12:57) *
Проверьте полярность сигнала DE, неправильная полярность этого сигнала у меня привела к такому же результату


Только что прочитала что согласно VESA стандарту для VGA 60Hz полярность отрицательная. мм, а что за сигнал DE? и как менять его полярность?

Надо же поменять полярность сигналов HS, VS. Опять же как менять.. переписать код и заменить нолики на единички и наоборот??
EvgenyNik
Цитата
Надо же поменять полярность сигналов HS, VS. Опять же как менять.. переписать код и заменить нолики на единички и наоборот??

Нет. Посмотрите - где у вас идёт присваивание внутреннего логического сигнала H/VS внешнему выводу и введите инверсию там.
Например, для verilog'а:
output hs_out...
reg hs...
assign hs_out = hs;
меняете на
assign hs_out = !hs;
Ellochka
проинвертировала HS, VS. Проверила это на осциллографе. не помогло. все равно CRT выводит, а LCD нет.

Может что не так сделала?

И все же что за сигнал DE?
Cont
DE - PIXEL DATA ENABLE. Странно что Вы задаете этот вопрос, возможно у вас нет этого сигнала в контроллере. Такое в принципе возможно, если выход аналоговый, т.к. некоторые DAC-и работают без DE.
Ellochka
А что за контроллер вы имеете ввиду?

Вывод же идет сразу в VGA-порт. pin1,2,3 - R,G,B. pin 13, pin 14 - hs,vs. Эти сигналы я и формирую в программе.
Там нет сигнала DE.

В стандарте VGA нет такого сигнала..

Pin Name Dir Description
1 RED Red Video (75 ohm, 0.7 V p-p)
2 GREEN Green Video (75 ohm, 0.7 V p-p)
3 BLUE Blue Video (75 ohm, 0.7 V p-p)
4 ID2 Monitor ID Bit 2
5 GND Ground
6 RGND Red Ground
7 GGND Green Ground
8 BGND Blue Ground
9 KEY - Key (No pin)
10 SGND Sync Ground
11 ID0 Monitor ID Bit 0
12 ID1 or SDA Monitor ID Bit 1
13 HSYNC or CSYNC Horizontal Sync (or Composite Sync)
14 VSYNC Vertical Sync
15 ID3 or SCL Monitor ID Bit 3


Или мы с вами говорим о разных вещах?
Ellochka
Уважаемый Cont!

Поясните, пожалуйста, что вы имели в виду.
Cont
Pin Name Dir Description
1 RED Red Video (75 ohm, 0.7 V p-p)
2 GREEN Green Video (75 ohm, 0.7 V p-p)
3 BLUE Blue Video (75 ohm, 0.7 V p-p)
4 ID2 Monitor ID Bit 2
5 GND Ground
6 RGND Red Ground
7 GGND Green Ground
8 BGND Blue Ground
9 KEY - Key (No pin)
10 SGND Sync Ground
11 ID0 Monitor ID Bit 0
12 ID1 or SDA Monitor ID Bit 1
13 HSYNC or CSYNC Horizontal Sync (or Composite Sync)
14 VSYNC Vertical Sync
15 ID3 or SCL Monitor ID Bit 3

Это аналоговые выходы, я имел ввиду то, что у вас поступает на DAC. (Но скорее всего там DE и не нужен) Возможно ваш LCD по какой-то причине не работает с VGA.

Напишите полное название вашей платы.
Ellochka
Цитата(Cont @ Jul 8 2009, 11:32) *
Напишите полное название вашей платы.


у меня плата Spartan - 3 c ПЛИС XC3S200. Поддерживает VGA, 60 Гц, 3 бита. Монитор перевожу в режим 640*480, 256 цветов, 60 Гц. Так что он VGA поддерживает. Выдает "Out of range" - почему я и думаю, что здесь не согласовываются уровни напряжений.

В стандарте написано, что уровни R,G,B - не ТТЛ. "0.7 V р-р" - видимо 0.7В - уровень единицы (хотя мне непонятен смысл индекса р-р).
Интересно то, что на R,G,B Spartan выдает уровни 0В и 3.3В - откуда, я полагаю, что ЭЛТ либо обрезает этот сигнал, либо преобразует к 0.7В.
А ЖК в свою очередь это не делает и пишет, что сигнал вне диапазона.

Что вы по этому поводу думаете?

Как мне обратиться к сигналу DE, если у меня есть только выход платы и вход монитора? и оба VGA?
Yuris
Цитата(Ellochka @ Jul 8 2009, 13:36) *
В стандарте написано, что уровни R,G,B - не ТТЛ. "0.7 V р-р" - видимо 0.7В - уровень единицы (хотя мне непонятен смысл индекса р-р).

Индекс р-р всего лишь навсего означает peak to peak - размах от мин. до макс. аналогового сигнала. Входной тракт VGA по RGB - аналоговый, даже в LCD мониторах. Вполне возможно, что современные ЖКИ мониторы достаточно умные, чтобы ловить сигнал переполнения своего АЦП и сообщать об ошибке, но это уже мои домыслы...
Leka
Цитата(Ellochka @ Jul 8 2009, 13:36) *
Интересно то, что на R,G,B Spartan выдает уровни 0В и 3.3В - откуда, я полагаю, что ЭЛТ либо обрезает этот сигнал, либо преобразует к 0.7В.

0.7V должны получаться на нагрузке 75Ом, те при подключенном мониторе.
Цитата
А ЖК в свою очередь это не делает и пишет, что сигнал вне диапазона.

Это, скорее, относится к таймингам, а не к уровням сигнала, можно проверить уровни при подключенном ЖК.
EvgenyNik
Цитата
Интересно то, что на R,G,B Spartan выдает уровни 0В и 3.3В - откуда, я полагаю, что ЭЛТ либо обрезает этот сигнал, либо преобразует к 0.7В.
А ЖК в свою очередь это не делает и пишет, что сигнал вне диапазона.

Вы уровень 3.3В измеряли при подключенном мониторе или на холостом ходу?
Цитата
"Out of range"

сдаётся мне что это либо про частоту, либо про размер полей.
---
А какая тактовая частота используется для вашего VGA-контроллера внутри ПЛИСки? Сколько МГц? Т.е. почему Вы так уверены, что на выходе у вас 60 Гц?
Ellochka
Цитата
Вы уровень 3.3В измеряли при подключенном мониторе или на холостом ходу?

На холостом ходу, щупы прикладывала к выводам порта на спартане.

Цитата(Leka @ Jul 8 2009, 15:11) *
0.7V должны получаться на нагрузке 75Ом, те при подключенном мониторе.

Это, скорее, относится к таймингам, а не к уровням сигнала, можно проверить уровни при подключенном ЖК.


Это как??? точнее куда мне щупы осциллографа прикладываеть?
Цитата
А какая тактовая частота используется для вашего VGA-контроллера внутри ПЛИСки? Сколько МГц? Т.е. почему Вы так уверены, что на выходе у вас 60 Гц?


Про 60 Гц написано в datasheet'e к спартану. Это частота обновления. Тактовая частота 25МГц.
На сколько я понимаю, сигналы синхронизации формируются постоянно. Я же формирую кадр асинхронно - цвета, выводимую информацию.

Когда я мерила сигналы, я получила совсем не те периоды синхронизации, которые описаны в datasheet'e. Например, горизонтальная синхронизация - 16 мкс, когда она должна быть 32 мкс. в общем искомых цифр я не нашла.
EvgenyNik
16 мкс... Это на 75Гц похоже...
Leka
Цитата(Ellochka @ Jul 8 2009, 15:31) *
Когда я мерила сигналы, я получила совсем не те периоды синхронизации, которые описаны в datasheet'e. Например, горизонтальная синхронизация - 16 мкс, когда она должна быть 32 мкс.

Вот и причина, почему ЭЛТ показывает, а ЖК - нет. Так что для начала надо получить требуемые периоды синхронизации.
Ellochka
Цитата(Евгений Николаев @ Jul 8 2009, 15:50) *
16 мкс... Это на 75Гц похоже...


Про частоту:

Я "ручками" ничего не делала такого, чтобы могло изменить частоту. Поэтому я и решила, что частота она только одна - по VGA стандарту. Другое дело различие de jure / de facto..
rezident
Цитата(Ellochka @ Jul 8 2009, 17:31) *
горизонтальная синхронизация - 16 мкс, когда она должна быть 32 мкс. в общем искомых цифр я не нашла.
Дык, а чего же вы тогда хотите? LCD-монитор просто "не умеет" работать с такими частотами строчной (горизонтальной) синхронизации (1280*1024@60Гц это 64кГц строчная, 640*480@60Гц - 31кГц), в отличие от ЭЛТ-монитора (обычно не менее 72кГц для мониторов с диагональю от 17").
По ссылке см. таблица 2. http://www.ixbt.com/video/refreshrate.html
EvgenyNik
Для 60Гц:
Длительность импульса горизонтальной синхронизации - 96 пиксельных периодов (т.е. около 3,81мкс)
Период следования горизонтальной синхронизации - 800 п.п. (т.е. около 31,75 мкс)
Длительность импульса вертикальной синхронизации - 2 линии (по 800 п.п., т.е. около 63,49 мкс)
Период следования - 525 линий (по 800 п.п, т.е. около 16,67 мс)
Цитата
Другое дело различие de jure / de facto..

Вероятно, Вы не недостаточно глубоко изучили то, с чем работаете...
Ellochka
Цитата(Евгений Николаев @ Jul 8 2009, 16:10) *
Для 60Гц:
Длительность импульса горизонтальной синхронизации - 96 пиксельных периодов (т.е. около 3,81мкс)
Период следования горизонтальной синхронизации - 800 п.п. (т.е. около 31,75 мкс)
Длительность импульса вертикальной синхронизации - 2 линии (по 800 п.п., т.е. около 63,49 мкс)
Период следования - 525 линий (по 800 п.п, т.е. около 16,67 мс)

Вероятно, Вы не недостаточно глубоко изучили то, с чем работаете...


да, это все я знаю. Там только 521 линия. Это собственно и есть VGA режим.

Цитата(rezident @ Jul 8 2009, 16:08) *
Дык, а чего же вы тогда хотите? LCD-монитор просто "не умеет" работать с такими частотами строчной (горизонтальной) синхронизации (1280*1024@60Гц это 64кГц строчная, 640*480@60Гц - 31кГц), в отличие от ЭЛТ-монитора (обычно не менее 72кГц для мониторов с диагональю от 17").
По ссылке см. таблица 2. http://www.ixbt.com/video/refreshrate.html


Что значит не умеет? 31 кГц для него низкая частота что ли?

Цитата(Евгений Николаев @ Jul 8 2009, 16:10) *
Вероятно, Вы не недостаточно глубоко изучили то, с чем работаете...


Я не сама это придумала. Документ весь выложить не могу, больше 1.9 Мб:

de iure/ de facto - я имела ввиду, что мне не удается соотнести показания осциллографа со стандартом.
Leka
Советую написать свой простой тестовый проект VGA, на Верилоге это будет ~30 строк кода.
DmitryR
Если у вас тайминги сделаны по это таблице, то LCD скорее всего ниасилит. Конкретно мне сдается, что бланкинг великоват, особенно по горизонтали, попробуйте сделать Ts примерно 700 (импульс короче, porch одинаковые можно для LCD). А еще лучше возьмите доку на любую LCD панель и посмотрите там, какими эти цифры должны быть, так как я по памяти могу ошибаться.
EvgenyNik
Цитата
да, это все я знаю. Там только 521 линия. Это собственно и есть VGA режим.

unsure.gif Да? А я 525 делал и... работало... Брал отсюда.
Ellochka
я не писала свой контроллер, который в идеале должен из памяти считывать байты из памяти и отправлять в порт. Я использовала пример, в котором асинхронно формируется изображение, а синхронизация производится по умолчанию.

Последние два дня у меня перестала прошиваться плата, сегодня оставила включенным питание - через 30-60 минут блок питания перегрелся и сгорел. плата тоже нагрелась. может кз, но причина не ясна.

Стала разбираться с джамперами. Вроде все нормально стоит. Единственное не нашла никакого описания джампера PS2(3.3 В, 5В), который стоит рядом с входом PS\2. Видимо это питание для клавы\мышки? не знаю. его меняла. вчера стоял на 3.3В, сегодня поставила на 5В. Клаву не подключала.

черте что!..
Ellochka
!! видимо все дело было в преобразователе напряжения. я думаю, он не 5 вольт выдавал.
Подключила блок питания, на котором выставила 5 вольт - заработало. Правда опять не всегда =)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.