Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопрос по резисторному видео-ЦАП
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
%-)
использую видео ЦАП на резисторах (как в альтеровских китах)

данные отправляю по фронту клока:

Код
if rising_edge(Clk) then
if Blank='1' then
  Red<=RAM_Data(14 downto 10);
  Green<=RAM_Data(9 downto 5);
  Blue<=RAM_Data(4 downto 0);
else
  Red<="00000";
  Green<="00000";
  Blue<="00000";
end if;
end if;


разрешение 320x240 VGA (на самом деле 640x480, просто замедленно читаем и по два раза строку)

бордюров нет - изображение застилает весь экран (обычный VGA LCD монитор от ПК)

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

Можно и как это устранить?

Связано ли это с тем что ЦАП резисторный?
V_G
Цитата(%-) @ Dec 12 2009, 21:23) *
использую видео ЦАП на резисторах (как в альтеровских китах)

Связано ли это с тем что ЦАП резисторный?

Отчасти. После ЦАП должен стоять ФНЧ с частотой среза между верхней частотой спектра и половинной частотой дискретизации. Если фильтра нет, он все равно есть (на паразитных емкостях монтажа, на входном импедансе монитора...)
Возможно, Вы видите переходные процессы этого фильтра. Как минимум следует согласовать выходной импеданс ЦАП и входной - монитора.
%-)
Цитата(V_G @ Dec 12 2009, 14:33) *
Отчасти. После ЦАП должен стоять ФНЧ с частотой среза между верхней частотой спектра и половинной частотой дискретизации. Если фильтра нет, он все равно есть (на паразитных емкостях монтажа, на входном импедансе монитора...)
Возможно, Вы видите переходные процессы этого фильтра. Как минимум следует согласовать выходной импеданс ЦАП и входной - монитора.


а чем согласовывать?

Линейка резисторов ЦАП: 8k,4k,2k,1k,0.5k

на старых видео-карточках ставили последовательно ферритовые бусины (или чип-индуктивности?) они помогут?

P.S. вывод на телевизор через кодер-пал оставляет желать лучшего

каковы пути повышения качества катинки?
SM
Цитата(%-) @ Dec 12 2009, 14:23) *
НЕ нравится то, что при выводе динамичных изображений - появляются горизонтальные полоски - они как бы отсвечивают на горизонтальные соседние строки - типа тень отбрасывают.


Как я понимаю, это прямое следствие интерливинга (представления одного кадра из 640 строк двумя по 320). Оставьте родные 320 строк, и проблема отпадет. ЦАП тут вообще не причем. Все гадости от ЦАПа, переходные процессы, и т.п. проявляются лишь "размытием" пиксела по длине.
%-)
Цитата(SM @ Dec 12 2009, 15:36) *
Как я понимаю, это прямое следствие интерливинга (представления одного кадра из 640 строк двумя по 320). Оставьте родные 320 строк, и проблема отпадет. ЦАП тут вообще не причем. Все гадости от ЦАПа, переходные процессы, и т.п. проявляются лишь "размытием" пиксела по длине.


а как-же тогда быть? ведь мне нужно 240 строк. 480 не нужно.

если оставлю 320 строк, то чем заполнять нижнюю половину экрана?

не понял идею 1111493779.gif

объясните пожалуста подробнее

Пока делаю так:

строка0 12345678...
строка1 12345678...
строка2 abcdefghi...
строка2 abcdefghi...
...
строка638 абвгдеёжзий...
строка639 абвгдеёжзий...
V_G
Цитата(SM @ Dec 12 2009, 22:36) *
Как я понимаю, это прямое следствие интерливинга (представления одного кадра из 640 строк двумя по 320). Оставьте родные 320 строк, и проблема отпадет. ЦАП тут вообще не причем. Все гадости от ЦАПа, переходные процессы, и т.п. проявляются лишь "размытием" пиксела по длине.

Может быть и интерливинг, проверить несложно..
Но если переходная характеристика фильтра имеет колебания (а это чаще всего, Бесселевские фильтры с гладкой ПХ сами собой не получаются), то тени могут быть следствиями этих колебаний. В этом случае надо еще знать входное сопротивление монитора (смутно полагаю, что порядка 75 Ом). Возможно, эмиттерник поможет, или любой усилитель с низкоомным выходом и резистором, равным сопротивлению линии передачи, последовательно с нагрузкой, со стороны усилителя (до кабеля).
%-)
замечено, что если слева и справа по краям будут две вертикальные жирные полосы - эффект ослабевает

какбудто менее яркие пиксели отбрасывают тень на всю строку.
SM
Цитата(%-) @ Dec 12 2009, 15:49) *
а как-же тогда быть? ведь мне нужно 240 строк. 480 не нужно.

А как вы из 640-ка строк оставляли 240? Вот видимо тем же принципом...



Цитата(V_G @ Dec 12 2009, 15:51) *
Но если переходная характеристика фильтра имеет колебания

Чтобы они там не имели, но я сильно сомневаюсь, что это столь низкочастотные колдебания, чтобы растянуться на целую следующую строку, оставив там "тень". Эти колебания вряд-ли выльются во что-то длинее 1-2 пиксела. Ну если очень уж плохо с емкостями - то пикселей 10-15. Но уж никак не на целую строку.

Цитата(%-) @ Dec 12 2009, 15:53) *
какбудто менее яркие пиксели отбрасывают тень на всю строку.

Сложно так сказать, но как вариант - какая-то "гниль" с уровнем черного, в композитном видеосигнале - он ездит от строки к строке. Опять же ЦАП не причем.
%-)
1) когда наступает Blank, цвет нужно форсировать принудительно в чёрный (все RGB=>0) ?

2) нужно картинку 320x240 засунуть в экран 640x480.

для этого 1 пиксель читается из памяти с частотой 25мгц/2
чётные и нечётные строки содержат одно и тоже - пары: 0-1, 2-3,4-5,... 638-639

может ли в этом быть прчина?

3) на кодер AD724 - подаю на RGB - сигналы с ЦАП : 0-3.3V, синхронизацию по вертикали и горизонтали через резисторы 120 ом

4) как в случае с NTSC разверткой следует правильно отправлять картинку 320x240 ? без фильтрации.
SM
Цитата(%-) @ Dec 12 2009, 17:10) *
может ли в этом быть прчина?

Нет, не может. Я думал наоборот, что Вы впихиваете 640х480 в 320х240.

Ищите проблемы в уровне черного на выходе кодера, а не в ЦАПе.
%-)
Цитата(SM @ Dec 12 2009, 17:23) *
Нет, не может. Я думал наоборот, что Вы впихиваете 640х480 в 320х240.

Ищите проблемы в уровне черного на выходе кодера, а не в ЦАПе.


с телевизором всё понятно.

но на мониторе такие-же полоски. тоесть с резисторов сразу на RGB -вход.

ещё вопрос - хочу NTSC развёртку 60Гц - но чтобы PAL-овские телики держали.
Пока сделал хитро - кодер в режиме ПАЛ с поднесущей 4.43, а разворачивание кадра с 60 Гц

из трех телевизоров - только один корректно держал цвет. остальные два - отображали цвет непонятно - будто не хватало красного и было всё желто-синим. в меню он был как NTSC 4.43. А мне б желательно PAL-60. Ни одно ли тоже это?

поймут ли обычные телики истинный NTSC с поднесущей 3.579 мгц?
SM
Цитата(%-) @ Dec 12 2009, 17:37) *
поймут ли обычные телики истинный NTSC с поднесущей 3.579 мгц?

А чего бы не понять? Вроде эра что-то не понимающих телевизиров давным-давно прошла.
ПАЛ и НТСЦ 4.43 это не одно и то же - в PAL фаза у поднесущей (если правильно помню, давно не "поднимал в памяти") от строки к строке крутится, а у нтсц - нет, ясное дело что цветоглюкалово выйдет...

насчет разнояркости - да гляньте осциллом чем одна строка от следующей отличается. Взяв осцилл, умеющий синхронизироваться на строке с заданным номером, а то какое-то гадание тут происходит.
V_G
Цитата(SM @ Dec 12 2009, 23:31) *
Чтобы они там не имели, но я сильно сомневаюсь, что это столь низкочастотные колдебания, чтобы растянуться на целую следующую строку, оставив там "тень". Эти колебания вряд-ли выльются во что-то длинее 1-2 пиксела. Ну если очень уж плохо с емкостями - то пикселей 10-15. Но уж никак не на целую строку.

Оп... не заметил, что тени "отбрасываются" по вертикали, похоже, не в переходных процессах дело...

Если говорим о видеосигнале на телевизор, то задняя площадка после строчного синхроимпульса предназначена для фиксации уровня черного. Вы ее корректно формируете? Если их нет, то вертикальные полосы по краям как раз и будут уровнями фиксации черного.
Про монитор не знаю, есть ли там такие прибамбасы.

Ну, и необходимость согласования с линией связи и входным сопротивлением тоже никто не отменял, 0,5 кОм - неправильное сопротивление источника видеосигнала. Но эффекты от этого Вы, возможно, обнаружите позже, если вообще обнаружите.
%-)
заморочка действительно была в уровне чёрного.

поставил цап из следующих резисторов: 250, 500,1000,2000,4000 Ом

выход цап-а нагрузил на 75 ом и далее на вход AD724 (они советуют через резистор)

требуемое напряжение на вход AD724 - 0..0,714В

уровень чёрного соответствует 0.2 В

напряжение ножек плис на входе цап - 0..3,3V

как сделать чтоб напряжение чёрного было не 0 , а 0.2 V ?

делал вариант:

if Data()<8 then RGB<=7 else RGB<Data,

но такой вариант не устраивает - уменьшается разрешение цап.

подскажите поростой путь как сделать 0,2 V на чёрном.

P.S. на VGA мониторах такой проблемы нет - подавай себе 0V и всё smile.gif
SM
Цитата(%-) @ Dec 13 2009, 06:12) *
подскажите поростой путь как сделать 0,2 V на чёрном.

Добавить резистор на питание и перерасчитать все резисторы так, чтобы все стало как надо.
%-)
тоесть в точке соединения резисторов с резистором 75 ом добавить ещё один резистор и к питанию - так?

кстати, правильно ли считаю, что при подаче логического 0 резистор ЦАП параллелится с резистором 75 Ом,
а если логическая 1, то он идёт к питанию.

тоесть вообще считать напряжение в диапазоне 0..31 (5 бит) замучаешься?

иль где-то ошибаюсь? 1111493779.gif
SM
Цитата(%-) @ Dec 13 2009, 15:43) *
иль где-то ошибаюсь? 1111493779.gif


Почти нигде не ошибаетесь, только одно - когда считаете общее сопротивление всего ЦАПа - то и питание, и общий, и выходы логики надо приближенно считать одним единым общим - т.е. все резисторы, куда бы они не шли - они с точки зрения выходного сопротивления ЦАПа все паралелльны и все на общий. А сам рассчет там элементарен - верно - единица - к питанию, ноль - к общему. При условии, что токи через резисторы заметно меньше, чем допустимые токи выходов. А то придется еще и учитывать падения напряжений на выходах.

Если совсем лень всяких Кирхгофов с Омами совокуплять, то возьмите микрокап, и в нем все просто подберите в режиме анализа Dynamic DC.
%-)
как называется режим в котором:

1) кодер ad724 переключен в режим PAL
2) поднесущая 4.43 МГц
3) частота кадров 60 Гц

?

копал wikipedia, но ответа так и не нашёл:

PAL M не подходит - у него подесущая 3.575611

NTSC 4.43 также не подходит - так как кодер в режиме PAL
V_G
Я, пардон, в ad724 не разбираюсь, но из общих соображений:
PAL - система европейская (по рождению)
60 Гц - частота американская
Бывают такие гибриды?
%-)
Цитата(V_G @ Dec 14 2009, 03:34) *
Я, пардон, в ad724 не разбираюсь, но из общих соображений:
PAL - система европейская (по рождению)
60 Гц - частота американская
Бывают такие гибриды?


бывает. PAL M например (см. wikipedia). Распространена в Бразилии.
Но там поднесущая цвета близкА к 3.58 (как НТСЦ)

меня же интересуетс вариант с поднесущей 4.43

только один телек из трех нормально держал цвета - остальные кажут черно-белое в PAL и много желтого с синим в NTSC-4.43

вопрос:
от чего зависит захват цвета в телевизоре?

зависит ли он от:

1) неточной частоты кварцевого генератора поднесущей - ёмкости в цепи кварца XTAL
2) от наличиии нечётных гармоник поднесущей - нужен синус, а мы толкаем меандр
3) от строчной развёртки
4) от развёртки в целом

?
torik
Цитата
НЕ нравится то, что при выводе динамичных изображений - появляются горизонтальные полоски - они как бы отсвечивают на горизонтальные соседние строки - типа тень отбрасывают.


Не забудте еще про тройную или хотя бы двойную буферизацию кадра изображения. Иначе на динамическом изображении будете видеть горизонтальную полосу, бегающую по вертикали)))

А что мешает вообще изначально выводить изображение 640х480, без преобразования в 320х240?
%-)
Цитата(torik @ Dec 14 2009, 09:04) *
Не забудте еще про тройную или хотя бы двойную буферизацию кадра изображения. Иначе на динамическом изображении будете видеть горизонтальную полосу, бегающую по вертикали)))


не про эту полосу идёт речь.
то про что вы сказали - знаю (tearing effect)

даже если изображение будет статичным и пестроцветным - на VGA мониторе (LCD) темные пикселы отбрасывают затемнение на светлые

на ЭЛТ и телеке этого нет!

но на телеке другая трабла - связана с отсутствием цвета или его неверная передача (желтый+синий в NTSC 4.4 или Ч/Б в PAL)

Цитата(torik @ Dec 14 2009, 09:04) *
А что мешает вообще изначально выводить изображение 640х480, без преобразования в 320х240?


избыточность такого разрешения.
SM
Цитата(%-) @ Dec 14 2009, 03:20) *
как называется режим в котором:

1) кодер ad724 переключен в режим PAL
2) поднесущая 4.43 МГц
3) частота кадров 60 Гц


"PAL 60" IMHO. Он же "Pseudo PAL". Нечто игрушково-видаковское...
%-)
Цитата(SM @ Dec 14 2009, 09:46) *
"PAL 60" IMHO. Он же "Pseudo PAL". Нечто игрушково-видаковское...


И много ли телевизоров его поддерживают?
SM
Цитата(%-) @ Dec 14 2009, 10:03) *
И много ли телевизоров его поддерживают?

А я то откуда знаю? smile.gif Вообще лучше что-то более стандартное выбирать... Тот же NTSC 4.43 вернее будет. Или на 50 герц для ТВ перейти.
%-)
Цитата(SM @ Dec 14 2009, 10:04) *
А я то откуда знаю? smile.gif Вообще лучше что-то более стандартное выбирать... Тот же NTSC 4.43 вернее будет. Или на 50 герц для ТВ перейти.


50 кадров никак нельзя! это ТЗ

вот и маемся чтобы большинство телевизоров понимало в цвете 60 кадров /с

какой стандарт выбрать:

PAL 60 4.43
PAL 60 3.579
NTSC 4.43
или
NTSC 3.579

что рапространённее у нас?
SM
ну NTSC это все таки стандарт, особенно 3.59, его поддерживают вроде как все телики. Я бы наверное остановился на NTSC, а 4.43/3.59 если возможно сделал бы конфигурируемым.

А вообще - раз заказчик требует 60 герц, то пусть сам и скажет, в каком виде цвет ему выдать.
%-)
Цитата(SM @ Dec 14 2009, 10:34) *
ну NTSC это все таки стандарт, особенно 3.59, его поддерживают вроде как все телики. Я бы наверное остановился на NTSC, а 4.43/3.59 если возможно сделал бы конфигурируемым.

А вообще - раз заказчик требует 60 герц, то пусть сам и скажет, в каком виде цвет ему выдать.


рискнули предположить , что большинство телевизоров поддерживают Ntsc-3.579

и не ошиблись !!!

у всех трёх цвета теперь корректны!

P.S. полосы б на VGA - LCD как устранить? rolleyes.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.