Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как ПЛИС принять DVI сигнал.
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Flip-fl0p
Добрый день господа. Снова требуется помощь опытных коллег.
Основная задача, которую я хочу решить - это принять данные от источника DVI сигнала и вывести их на LVDS матрицу. Работаю с отладочной платой http://www.terasic.com.tw/cgi-bin/page/arc...lish&No=930 На данный момент для меня не составляет проблем вывести тестовое изображение, записанное в SDRAM память, на LVDS матрицу или VGA монитор. Все блоки для приёма DVI сигнала у меня описаны, промоделированы, и вроде бы готовы для работы. Основная проблем в том, что не знаю как правильно принять сигнал DVI на физическом уровне.
Как я понял, данные по DVI физически передаются по LVPECL каналу, а не LVDS, как я думал изначально. Первым же делом, я стал смотреть datasheet на ПЛИС, чтобы узнать может ли она работать с этим физическим уровнем. С одной стороны результат меня обрадовал, поскольку ПЛИС умеет работать напрямую с LVPECL, но с другой стороны результат не принёс никакой пользы, поскольку:
Цитата
The Cyclone V devices support the LVPECL I/O standard on input clock pins only:
• LVPECL input operation is supported using LVDS input buffers.
• LVPECL output operation is not supported.

Т.е. работать может, но требует применения специальных ножек, которых на моей отладочной плате хватит только на 1 диф. пару...
Поскольку напрямую работать с LVPECL не выходит, то необходимо согласовывать уровни LVPECL и LVDS. После прочтения я статьи http://kit-e.ru/articles/plis/2004_1_56.php у меня возник вопрос, а какое согласование правильно применять в случае приёма DVI сигнала ? Ведь в DVI применяется TMDS кодирование, поэтому можно применять как, прямое согласование (DC coupled), так и согласование по переменному току (AC coupled).
Порывшись на форуме нашёл вот такую вот тему http://electronix.ru/forum/lofiversion/ind...hp/t120518.html Это всё хорошо, но можно ли обойтись малой кровью: например поставить готовые LVDS буфера, к примеру DS90LV001, которые как раз умеют работать с LVPECL. Поскольку у меня есть готовая платка с четырьмя DS90LV001 буферами, то мне такой вариант кажется наиболее простым для реализации.
И ещё маленький вопрос. А как проверить выдаёт ли DVI источник хоть какой-то сигнал ? В настройках источника у меня отключено чтение EDID поэтому наличие DDC канала в DVI линиях меня волновать не должно...
andrewkrot
Где-то читал, что в DVI используется CML на физическом уровне, и что-то мне подсказывает что 5 циклон прямо не держит оного. В описании DVI сказано - "The conceptual schematic of one T.M.D.S. differential pair is shown in Figure 4-1. T.M.D.S. technology uses current drive to develop the low voltage differential signal at the receiver side of the DC-coupled transmission line" т.е. терминация должна быть DC-coupled. IMHO
Flip-fl0p
Цитата(andrewkrot @ Jun 1 2017, 20:56) *
Где-то читал, что в DVI используется CML на физическом уровне, и что-то мне подсказывает что 5 циклон прямо не держит оного. В описании DVI сказано - "The conceptual schematic of one T.M.D.S. differential pair is shown in Figure 4-1. T.M.D.S. technology uses current drive to develop the low voltage differential signal at the receiver side of the DC-coupled transmission line" т.е. терминация должна быть DC-coupled. IMHO

Спасибо за ответ. Действительно очень похоже что физический уровень это CML
https://en.wikipedia.org/wiki/Transition-mi...ntial_signaling
umarsohod
Когда-то , в познавательных целях, изучал, на что способен MAX10.
Пропускал DVI-сигнал на Марсоходе3 "насквозь". Подключал только две пары, клок и синий.
Клок подавал на PLL, синий фиксировал в триггере, и соответственно, все это выводил на HDMI-разъем.
только синий размножал на все три пары. На выходе получалось черно-белое изображение.
Максимум, что удалось пропустить -1280х1024 с пиксель-клоком 108Мгц.
Никаких буферов не ставил, насколько помню,было только 6 резисторов.
Lmx2315
Нашёл такой документ про HDMI (в приложении) там на 136 странице сказано что HDMI источники совместимы с DVI потребителями.
Воот , а на стр 38 есть описание электрики сигналов .
Может поможет.
Flip-fl0p
Цитата(umarsohod @ Jun 2 2017, 08:57) *
Никаких буферов не ставил, насколько помню,было только 6 резисторов.

В качестве приёмников применяли LVDS входы или обычные пины ?
Я правильно думаю, что Вы собирали проект на плате марсоход3 ?
umarsohod
Цитата(Flip-fl0p @ Jun 2 2017, 10:01) *
В качестве приёмников применяли LVDS входы или обычные пины ?
Я правильно думаю, что Вы собирали проект на плате марсоход3 ?

Для клока нужна диф-пара, которую можно завести на вход PLL, а для сигналов, наверное, любые диф-пары.
Режим ставил LVDS, другого, для диф-пар, в максе нет.
Flip-fl0p
Цитата(umarsohod @ Jun 2 2017, 10:47) *
Для клока нужна диф-пара, которую можно завести на вход PLL, а для сигналов, наверное, любые диф-пары.
Режим ставил LVDS, другого, для диф-пар, в максе нет.

А внутренние терминаторы включали ?
Пока навскидку прочитав про HDMI, пришел выводу, что каждую линию надо терминировать 50 омным резистором, подтянутым к 3,3V.
umarsohod
Цитата(Flip-fl0p @ Jun 2 2017, 11:02) *
А внутренние терминаторы включали ?

В максе их нет.

Цитата(Flip-fl0p @ Jun 2 2017, 11:02) *
Пока навскидку прочитав про HDMI, пришел выводу, что каждую линию надо терминировать 50 омным резистором, подтянутым к 3,3V.

У меня на каждую пару было три резистора на 150ом. Два с каждой линии на 3.3в, один между линиями.
Не претендую на академическую правильность такой схемы, но у меня работало.
andrewkrot
Если хотите правильно - см. http://www.ti.com/product/SN65LVDS100 а если быстро то можно попробовать на резисторах http://pdfserv.maximintegrated.com/en/an/AN291.pdf
Flip-fl0p
Цитата(andrewkrot @ Jun 2 2017, 11:52) *
Если хотите правильно - см. http://www.ti.com/product/SN65LVDS100 а если быстро то можно попробовать на резисторах http://pdfserv.maximintegrated.com/en/an/AN291.pdf

Боюсь, что придётся всё-же делать платку для согласования уровней. Изучив datasheet я не нашёл возможности установить 50 омный терминатор с подтяжкой на VCC(3,3в) как того требует схема согласования CML-LVDS (DC coupled).
Сейчас буду искать аналоги SN65LVDS100, где купить подешевле и побыстрее. Пока нашел в чип и дипе за 460 деревянных за преобразователь... cranky.gif
Flip-fl0p
Товарищи, а подскажите как вообще проверить что DVI источник что-то выдает ?
Смотрел осциллографом одну из LVDS линий CLK (смотрел между землёй и одной из линий) так на осциллограмме не видно ничего. Либо я меряю неправильно, либо источник не хочет ничего выдавать мне.
warrior-2001
Там вроде без обратной связи нет передачи. По выводам не помню - в мануале должно быть описано.
Flip-fl0p
Цитата(warrior-2001 @ Jun 6 2017, 10:52) *
Там вроде без обратной связи нет передачи. По выводам не помню - в мануале должно быть описано.

Вроде разобрался. Всё дело в 14 ноже (+5 Вольт). Методом научного тыка установил, что если данная ножка висит в воздухе DVI источник отключается. Если соединена с монитором - то передатчик выдает данные.
Да и контакт hotplug требует подтяжки к питанию. Если висит в воздухе приёмник молчит...
В общем соединил контакт hotplug c 14 ножкой через 2 кОм резитор, и передатчик начал выдавать сигналы...
Осталось разобраться с преобразователем уровней CML => LVDS. Для этих целей применяю микросхемы ds90lv001. И организую согласование в таком виде:

Немного ошибся и вместо 50 Ом поставил 500 ом cranky.gif Но таки на выходе ds90lv001 какой-то сигнал присутствует. Хочу поставить 50 Ом терминаоры, да вот в моих закромах таких резисторов не водится....
На стороне ПЛИС буду применять внутричиповые терминаторы, Cyclone V содержит таковые. Есть ли какие подводные камни с внутричиповыми терминаторами ?
Flip-fl0p
Цитата(andrewkrot @ Jun 14 2017, 16:30) *

Спасибо. Вроде разобрался с согласованием физических уровней.
Применил микросхемы ds90lv001 и на входе микросхемы согласовал 50 омными резисторами, подтянутыми к 3,3 В, как того требует стандарт.
На выходе микросхемы получил LVDS.
Ну а в ПЛИС для приёма LVDS я просто включил внутренние 100 ОМ терминаторы, благо они есть в чипе.
Единственное, что меня немного расстраивает - это то, что длины пар не выровнены, и отличаются на несколько мм по длине.
Сейчас другая засада - сделать динамическую подстройку фаз, чтобы клок попадал в центр окна.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.