Search
Write a publication
Pull to refresh

Comments 28

для отправки одного пикселя нам нужно последовательно отправить 10 бит. Это значит что биты нужно отправлять на частоте в 10 большей чем частота пикселей

...или взять TFP410 от Texas Instruments и закидывать в него RGB-данные из ПЛИС (по одному пикселю за клок), а наружу TFP410 будет выдавать честный TMDS.

Я проверил в библиотеки Quartus нет такова модуля? Но даже если-бы был, вот представьте нужно написать программу, но нужной библиотеки не найти, что тогда отменяем написание программы? Нет библиотеки нет программы.

Мне даже вспомнился анекдот про программистов на Delphi. Перед программистами поставили задачу поймать льва. Все программисты пошли писать свои программы. И только программист на Delphi пошел на форум в интернет спрашивать. Где взять библиотеку которая ловит льва и сажает его в клетку.

Чтобы аналогия была релевантной нашему случаю, надо так:

Перед программистами поставили задачу поймать льва. Все программисты пошли писать свои программы...

...в итоге написали программы по ловле таксы, шпица, чихуахуа, при этом сказав "ну, принцип мы показали, осталось чуть масшnабировать"...

...И только программист на Delphi пошел на форум в интернет спрашивать. Где взять библиотеку которая ловит льва и сажает его в клетку...

...и нашёл :)

Вы никак не сможете сделать честный TMDS на базе ПЛИСа - всё будет "как бы TMDS".
Есть конверторы типа IT6263 и SN65CML100,
но первый вы попробуйте достаньте - на Mouser его например нет, -
а SN65CML100 стоит дороже, чем TFP410, при том, что SN65CML100 - это именно преобразователь LVDS-TMDS один-в-один.

Вы никак не сможете выдать через 4 линии тот битрейт, который требуется для современных разрешений экрана.

В рамках изучения HDMI ваш пример - норм, но если нужно рабочее устройство, альтернативы TFP410 нет.

Вы не внимательно прочитали статью. TMDS от LVDS отличаются смещением по постоянному напряжению, поэтому их нельзя подключать напрямую будет короткое замыкание. А интерфейс LVDS также является высокоскоростным как и TMDS, и его скорости хватит с запасом.

Предел скорости этих интерфейсов это гигабиты, а у нас тут лишь сотни мегабит.

TMDS от LVDS отличаются...

...током в линии. Почти в три раза (в пользу TMDS).

Ток в линии TMDS достигает 12 мА, у LVDS - 4,54 мА
TMDS
TMDS
LVDS
LVDS

А интерфейс LVDS также является высокоскоростным как и TMDS, и его скорости хватит с запасом.

При 4-х линиях LVDS-а совокупный битрейт составит 2880 Мбит/с.
Чего "с запасом" хватит на 480p*30 кадров
или может быть как-то хватит на 720p*60 кадров.

Битрейт LVDS составляет порядка 500-700 Мбит/с

TFP410 гарантированно даёт 1080p*60 кадров честного TMDS.

Такие дела.

Но мы же передаем не на один метр а только до конденсаторной развязки, а там от силы миллиметров 30.

Но мы же передаем не на один метр а только до конденсаторной развязки, а там от силы миллиметров 30.

...а конденсаторная развязка у вас подпаяна прямо к разъёму монитора? :)
Или всё-таки кабелем соединяете?

Ну там-то уже TMDS, и на схеме в статье видно что кабель находится на стороне TMDS.

Ну там-то уже TMDS

А электроны в метровом кабеле толкает туда-сюда не выходной буфер LVDS, а развязка, которая "превращает LVDS в TMDS", да? )))))

Сопротивление контура за конденсатором ниже, если обратится к схеме то там 392 ома а до конденсатора 773 поэтому сила тока будет больше, правда напряжение уменьшится.

Ради науки я провел измерения осциллографом на линии CK измерения проводились относительно земли. До конденсатора у нас Синусоида от 1.3В до 1.9В размах 0.6. После конденсатора синусоида от 2.85В до 3.36В размах 0.51. Ну видимо не слишком сильно меняется сила тока.

Учитывая, что...

Другой высокоскоростной дифференциальный интерфейс это LVDS. Он очень похож на интерфейс TMDS но <...> отличается уровень питания не 3,3В а 2,5В, и как будто этого мало линия смещена вверх не на весь уровень питания а только на половину то есть 1,25В. Поэтому уровень сигнала в линиях колеблется от 1В до 1,5В.

...и...

До конденсатора у нас Синусоида от 1.3В до 1.9В

У меня возник, конечно, целый ряд вопросов:
-Я правильно понимаю, что в Quartus вы назначили пинам LVDS, требующий с ваших слов питание 2,5 В.
Но при этом, на плате вы физически не способны закинуть в питание банка эти самые 2,5 В. Поэтому там сейчас у вас вполне прежние 3,3 В. И потому ваш сигнал LVDS "пляшел" вокруг 3,3/2=1,65 В (ну, или (1,3+1,9)/2=1,6)?
-Откуда у вас взялась синусоида? С выхода ПЛИС?
-Частота этой "синусоиды" выше 200-250 МГц? Если да, у вас режим измерений осциллографа включён в AC/50Ом или в DC/1МОм?

Если "Да, да, да и DC/1МОм", то уменьшите частоту до 10 МГц и померьте ещё раз в режиме DC/1МОм.

На CK синусоида с пиксельной частотой 40 Мгц. Возможно это не совсем чистая синусоида и если присмотрится к её форме то там могут быть искажения.

Питание LVDS создает сам чип. Что вы имеете ввиду под закидыванием туда питания? Да если в одном банке пинов назначить и LVDS и обычной цифровой пин с 3.3В то компилятор будет ругаться что в одном банке не может быть пинов с разным питанием.

И чтобы мы друг друга правильно понимали банк пинов это вот.

Quatrtos разные банки выделяет разным цветом.

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

Отклонения в LVDS могут быть связаны с тем что изначально нагрузкой должен быть резистор 100ОМ между дифференциальными линиями. А по факту мы имеем 773Ом между линией и землей.

Питание LVDS создает сам чип. Что вы имеете ввиду под закидыванием туда питания?

Проведите простой эксперимент :)

Напишите и просинтезируйте:

module main(output reg test_pin);
  assign test_pin = 1;
endmodule

-назначте пину в планировщике "3.3 LVTTL",
-синтезируйте, прошейте, померьте напряжение на пине,
-назначте пину в планировщике "2.5 V",
-синтезируйте, прошейте, померьте напряжение на пине.

На CK синусоида с пиксельной частотой 40 Мгц.

А что у вас за осциллограф? Кто производитель, какая конкретно модель?

Да как не странно 3.1В хоть 3.3В ставь хоть 2.5В ставь, видимо это имеет значение только если пин используется как вход.

Осциллограф у меня DSO2512G

Отклонения в LVDS могут быть связаны с тем что изначально нагрузкой должен быть резистор 100ОМ между дифференциальными линиями. А по факту мы имеем 773Ом между линией и землей.

Нет, не из-за этого :)

Да как не странно 3.1В хоть 3.3В ставь хоть 2.5В ставь, видимо...

Есть небольшое исключение, когда внутрь цифровой микросхемы внедряют LDO - когда этот LDO ставят на ядро.
Тогда все пины питания подключаются, например, к 3,3 В, а ядру не требуются отдельные, например, 1,2 В.

Но...

...в общем случае, как вы себе это представляли? :))
Вы назначаете напряжение в ПО и в ПЛИСине типа есть силовая часть, которая по вашим программным указаниям выставляет соответствующее напряжение?

Может ещё пожелаем DC-DC, интегрированный в ПЛИС, вместе с индуктивностью, диодом и силовым мостом? :))

Не, ну а чё-бы не возжелать?

А по осциллографу... @deema35, Вы не забыли переключить шуп на 1:10? Синусоида 40 МГц, вместо чего-то хоть отдалённо напоминающего меандр, говорит о том, что измеряете абсолютно неверно... См. п. 2.2 в руководстве,"Probe Bandwidth".

Не, ну а чё-бы не возжелать?

И еще DDR внутрь корпуса ;)
И развязывающие конденсаторы внутрь корпуса.
И светодиоды с кнопками - туда же,
И контакты сделать не запаиваемыми, а разъёмом.

Секундочку... да это же... System-on-Module! :)))

Таки были (есть?) китайские ПЛИС с DDR в одном корпусе. Вероятно - MCP, но - чем чёрт не шутит...

До конденсатора у нас Синусоида от 1.3В до 1.9В размах 0.6.

Я сейчас посмотрел - у Cyclone IV действительно матёрые драйверы LVDS, которые по даташиту могут выдавать размах как раз вплоть до 0,6 В.

Другое дело, что это - ну типа, добрая воля Altera, сделать такие драйверы.TIA/EIA-644 допускает и поменьше.

Ну и то, что вы измеряете "до и после конденсатора" - это сугубо померить смещение. Потому, что на десятках, а тем более сотнях МГц конденсатор 0,1мкФ эквивалентен резистору в пару единиц Ом.

И для переменной составляющей у вас, по сути, просто идёт притяжка к земле двумя параллельными резисторами с общим эквивалентным сопротивлением в 260 Ом. Ну да, что-то из сигнала сольётся в землю, но не прям много.

Повторюсь, вы молодец, что провели исследовательскую работу (и при том, на реальном оборудовании), но есть у вас ряд мифологизированных действий.
И конкретно этот опыт не очень масштабируем на бОльшие разрешения, битрейты и более капризные мониторы.

Я проверил в библиотеки Quartus нет такова модуля

Это не модуль, это микросхема.

Интересно это каким образом будет отличаться от вга? Это не тру

Это не тру

Критерии тру/не_тру?

Ещё интересно было бы HDMI переводить в YUV, притом не 4:4:4, а 4:2:2.

"Если сигнал будет не сбалансирован. Например в нем будут одни единицы ... тогда одна из линий будет постоянно нагружена и она может сгореть."

Нет, не для этого. Линия не сгорит, да и с чего бы ей гореть?

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

Sign up to leave a comment.

Articles