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

Передаю (txdata) все '1', на след. такте (tx_pclk) все '0', на след. такте опять все '0'.

При этом все время отслеживаю появления сигнала rx_trs на приемнике - его нет.

подскажите плзззз.
DmitryR
Вы посмотрите, что у вас за данные принимаются, может будут идеи. А тут систему разрисуйте поподробнее. Что за чип приемопередатчика, как с FPGA соединен, как сконфигурена корка.
billidean
работаю с кристаллом StratixIV, приемник и передатчик делаю из MegaFunction, конфигурю обоих как SD-SDI, т.е. на малые скорости обмена.
за идею смотреть весь принимаемый поток спасибо, попробую.

вопрос: какие частоты загонять на входы реконфигурации передатчика и приемника??
(сейчас подаю на них теже тактовые, что и тактирование передачи/приема)
DmitryR
Чип приемопередатчика вы забыли указать. А клок реконфигурации не помню какой, RTFM.
billidean
Цитата(DmitryR @ Oct 13 2011, 11:42) *
Чип приемопередатчика вы забыли указать. А клок реконфигурации не помню какой, RTFM.


ЧИП????

на отладочной плате, в стратиксе4 формирую через мегавизард приемник и передатчик. далее sdш_tx к ноге стратикса, подключенной в выводу из платы, sdi_rx к ноге стратикса, подключенной в выводу из платы, соединяю эти выводы между собой прилагаемым в комплекте кабелем.
и все...

не знаю про чип help.gif blush.gif blush.gif
DmitryR
Придется мне, как Брежнев в том анекдоте:
Цитата(billidean @ Oct 13 2011, 15:05) *
далее sdш_tx к ноге стратикса, подключенной в выводу из платы,

Какой платы?

Цитата(billidean @ Oct 13 2011, 15:05) *
sdi_rx к ноге стратикса, подключенной в выводу из платы,

Какой платы?

Цитата(billidean @ Oct 13 2011, 15:05) *
соединяю эти выводы между собой прилагаемым в комплекте кабелем.

Каким кабелем?

Stratix-IV киты бывают разные, SDI add-on бывают разные. Чтобы давать точные советы - надо владеть точной информацией. Ну и на схему принципиальную посмотрите, что там между теми выводами, куда вы сигнал выводите на плате есть - поймете, о каком чипе я спрашиваю. Если вы правильные выводы конечно используете.
billidean
плата - Stratix IV GX FPGA Development Board.
выход передатчика ( нога стратикса, предназначенная для этого) подключен к LMH0302SQ cable driver, а вход приемника (нога стратикса) - к LMH0344 cable equalizer.
DmitryR
1. Почти наверняка на FPGA используется трансивер (для поддержки HD/3G). Так как трансивер на такой низкой частоте, как у SD работать не может - используется оверсэмплинг. Проверьте, что у вас тактирование проекта полностью соответствует документации.
2. Судя по вашим предыдущим постам, о наличии микрух от National вы узнали только что. Поэтому проверьте, что на них подано правильное управление (на передатчик - SD режим и Enable, на приемнике нет Mute и Bypass).
3. Проверьте выход CD приемника - поймете, слышит ли он вообще что-нибудь.

А вообще на скоростях SD можно обычным осцилографом с полосой в пол-гигагерца посмотреть и прямо в канал.
billidean
to DmitryR: спасибо, буду завтра все пробовать.
я впервые с этим интерфейсом знакомлюсь, поэтому, как говорится - ни в зуб ногой rolleyes.gif
Bad0512
Цитата(billidean @ Oct 12 2011, 21:10) *
Имею передатчик и приемник на одном кристалле, соединил выход передатчика со входом приемника, установил все сбросы в ноль, режимы SD-SDI.

Передаю (txdata) все '1', на след. такте (tx_pclk) все '0', на след. такте опять все '0'.

При этом все время отслеживаю появления сигнала rx_trs на приемнике - его нет.

подскажите плзззз.

А вы не задумывались что означают волшебные буквы "trs" в названии этого сигнала? Так вот TRS - это специальные time reference codes, которые используются для строчной/кадровой синхронизации видеострима. Скорее всего используемая вами корка является лишь физическим уровнем для SD-SDI, то есть она просто сериализует принятые параллельно данные (вполне возможно, с использованием оверсемплинга) - и всё.Ну а приготовить стрим для этой корки надо самостоятельно. Как минимум необходимо сформировать сигналы строчной и кадровой синхры, а затем встроить те самые TRS коды в параллельный поток данных.Если просто подавать на вход корки паттерн "0xFF 0x00 0x00" - этого может быть недостаточно для детектирования TRS, так как в следующем байте должны лежать не только биты синхры, но и проверочные биты. Если проверки не выполняются - сигнал TRS может и не появиться. Как конкретно это реализовано у Альтеры я не знаю, в качестве инфы про разные SDI стандарты и их реализацию рекомендую почитать аппноты от Xilinx xapp514 и xapp1014.
DmitryR
Цитата(Bad0512 @ Oct 14 2011, 13:15) *
Скорее всего используемая вами корка является лишь физическим уровнем для SD-SDI,

Однозначно, но ТС об этом явно знает.

Цитата(Bad0512 @ Oct 14 2011, 13:15) *
Если просто подавать на вход корки паттерн "0xFF 0x00 0x00" - этого может быть недостаточно для детектирования TRS, так как в следующем байте должны лежать не только биты синхры, но и проверочные биты. Если проверки не выполняются - сигнал TRS может и не появиться. Как конкретно это реализовано у Альтеры я не знаю,

Ну так вы взяли бы да и прочитали, раз посоветовать хотите. Во-первых там интерфейс десятибитный, поэтому при его рассмотрении следует оперировать понятием слова, а не байта. И ТС сказал, что подает на первом такте вссе единицы, потом два такта все ноли, то есть не "0xFF 0x00 0x00" а 0x3FF00000. Это и есть TRS в понимании корки Altera. Корка на четвертое слово, где собственно находятся флаги при формировании сигнала TRS не смотрит.
billidean
Цитата(DmitryR @ Oct 14 2011, 16:44) *
... 0x3FF00000. Это и есть TRS в понимании корки Altera. Корка на четвертое слово, где собственно находятся флаги при формировании сигнала TRS не смотрит.

Вообще, глядя на инфу по ядру, оно выставляет сигнал о наличии TRS(rx_trs) уже при появлении первого слова - 0x3FF.

Сегодня нарыл, что для StratixIV GX при генерации ядра из MegaWizard необходимо выставить галочку "Use soft logic". почему-то только для Stratix GX, Stratix II GX or Stratix IV GX и только при режиме SD-SDI.
Я пока это не применил, не успел, но попробую.
Bad0512
Цитата(DmitryR @ Oct 14 2011, 19:44) *
Ну так вы взяли бы да и прочитали, раз посоветовать хотите.


Вы таки подозреваете ТС в том, что он сам читать не умеет?
Если умеет, то зачем что-то должен читать я? Проблема-то не уменя, а у ТС.

Цитата(DmitryR @ Oct 14 2011, 19:44) *
Во-первых там интерфейс десятибитный, поэтому при его рассмотрении следует оперировать понятием слова, а не байта. И ТС сказал, что подает на первом такте вссе единицы, потом два такта все ноли, то есть не "0xFF 0x00 0x00" а 0x3FF00000

Ну и какое это имеет отношение к теме обсуждения? Я привёл пример для 8-ми битного стрима (вы не поверите, но такие стримы тоже существуют!). Более того, специально для 8-битных стримов стандарт допускает игнорировать младшие 2 бита на приёме и заполнять нулями эти два бита при передаче.
Цитата(DmitryR @ Oct 14 2011, 19:44) *
. Это и есть TRS в понимании корки Altera. Корка на четвертое слово, где собственно находятся флаги при формировании сигнала TRS не смотрит.

А вот тут вы не правы. То, что в даташите на корку написано, что она якобы просто ищетт паттерн 3FF 000 000 - совсем не означает, что наличие такого паттерна в стриме - достаточное условие возникновения сигнала rx_trs. Корка довольно умная (да, я таки не поленился и открыл даташит), она проверяет внутри соответствие синхры одному из "зашитых" в неё стандартов, и если находит нессответствие - запросто может и не выставить сигнал rx_trs.

А вообще проверить это довольно просто в симуляторе.Исходников от корки нет (она вроде как платная), поэтому остаётся только этот путь.

З Ы Кстати, у Xilinx аналогичная корка открытая, т.е. идёт в исходниках.
billidean
имеется выход приемника rxdata. на него должны выдаваться все данные, которые поступают на вход, после десериализатора само собой.

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

На счет чипов приемника/передатчика: SD и Enable - поданы, а вот на приемнике нет возможности проверить сигналы Mute и Bypass, т.к. плата лакированная, а покрытие портить не хотелось бы, а сами сигналы идут от MaxII, расположенного на этой же плате для загрузки в Stratix конфигурации, и им управлять я не могу никак. Есть большое подозрение, что приемник в режиме Mute висит все время.

З.Ы. Я уже ЗАДОЛБАЛСЯ с этим SDI cranky.gif
DmitryR
Цитата(billidean @ Oct 17 2011, 16:50) *
... начиная с момента начала выдачи от передатчика. И получаю всякую лажу, но только не то, что передавал.

Это вы сгоряча. Надо сначала сигнала CD дождаться от эквалайзера, я же говорил уже. Пока он этот сигнал не выдал - не стоит расчитывать на получение правильных данных.

Цитата(billidean @ Oct 17 2011, 16:50) *
т.к. плата лакированная, а покрытие портить не хотелось бы,

Да бросьте, ведь киты и нужны для того, чтобы их портить wink.gif

Цитата(billidean @ Oct 17 2011, 16:50) *
Есть большое подозрение, что приемник в режиме Mute висит все время.

Это вряд ли, потому что вы тогда бы ноли видели стабильно.
Bad0512
Цитата(billidean @ Oct 17 2011, 20:50) *
имеется выход приемника rxdata. на него должны выдаваться все данные, которые поступают на вход, после десериализатора само собой.

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

На счет чипов приемника/передатчика: SD и Enable - поданы, а вот на приемнике нет возможности проверить сигналы Mute и Bypass, т.к. плата лакированная, а покрытие портить не хотелось бы, а сами сигналы идут от MaxII, расположенного на этой же плате для загрузки в Stratix конфигурации, и им управлять я не могу никак. Есть большое подозрение, что приемник в режиме Mute висит все время.

З.Ы. Я уже ЗАДОЛБАЛСЯ с этим SDI cranky.gif

А то обстоятельство, что данные перед отправкой в сериализатор по стандарту SDI вначале скремблируются вы учитываете? Соответственно на приёме их необходимо дескремблировать.
Кроме того после дескремблирования ещё неплохо бы найти границы 10-битных слов. Этим занимается блок под названием framer.
Обе эти функции не могут быть выполнены внутри десериалайзера (в отличии к примеру от 10b8 кодера-декодера). Поэтому их в любом случае надо делать самостоятельно.
В общем вижу для вас 2 выхода :
1. Пользовать корку в полном объёме (а не только приёмник) - тогда все необходимые процедуры корка сделает сама. Но при этом передавать ей надо не какой-то самопальный стрим, а честный ITU-R-656 поток с правильной синхрой и некоторыми ограничениями по данным (например комбинации 000 и 3FF в области данных запрещены).
2. Пользовать только приёмник (как это вы делаете сейчас). Но тогда и половину работы по обработке принятого стрима придётся делать вручную.
billidean
в примере по SDI-интерфейсу лежит .pof файл для MaxII, который какраз-таки и управляет чипом приемника, его режимами Mute и Bypass, а в документации на этот пример написано, что перед конфигурированием Стратикса необходимо прошить Мах этим файлом.
Вот только пример этот для StratixII GX, и плата отладочная там другая, и Мах там другой. sad.gif

Кто-нить знает где найти этот .pof файл для моей отладочной платы, для Мах-а, который там стоит ( MAX II CPLD EPM2210 вроде на 250 ног)???
DmitryR
А вы не можете сами сделать для MAXII файл, в котором две ноги будут в нужном состоянии?
billidean
Мах управляет загрузкой конфига из флэшки в Стратикс + управляет входами, указанными выше, чипа приемника.

Если я еще могу выдать какие-то уровни на ноги Мах-а, то написать конфиг управления загрузкой кода из флэшки - это я (пока) не умею.

И вообще, я что первый, кто столкнулся с этой проблемой??? Или все вокруг только и делают, что переписывают код управления загрузкой конфигурации из флэшки в ПЛИС???

Мне кажеься, что нужный .pof-файл для этого Мах-а для этой платы где-то есть, просто я его пока не нашел sm.gif
DmitryR
Цитата(billidean @ Oct 19 2011, 20:14) *
Мах управляет загрузкой конфига из флэшки в Стратикс + управляет входами, указанными выше, чипа приемника.

Я в курсе, я работал с этим китом.

Цитата(billidean @ Oct 19 2011, 20:14) *
Если я еще могу выдать какие-то уровни на ноги Мах-а, то написать конфиг управления загрузкой кода из флэшки - это я (пока) не умею.

Он кажется в исходниках прилагается к киту. Если нет - чтобы попробовать, он не нужен, а оригинальная прошивка MAXII в комплекте точно есть. Однако я вам настоятельно советую посмотреть осцилографом что там на выводах прежде чем корячить MAX - 99.9%, что он ни при чем.

Цитата(billidean @ Oct 19 2011, 20:14) *
И вообще, я что первый, кто столкнулся с этой проблемой???

Да. У меня заработало сразу.

Цитата(billidean @ Oct 19 2011, 20:14) *
Мне кажеься, что нужный .pof-файл для этого Мах-а для этой платы где-то есть, просто я его пока не нашел sm.gif

Большой простор для поиска? Для этой платы есть ровно один дистрибутив софта, в который все входит. Осталось вспомнить, в какой каталог вы его инсталлировали.
DAV
Добрый день господа! Давно мучил вопрос, а какого качества SDI (HD и 3G) получается на Альтеровском сериалайзере. Интересует джиттер и глазковая диагарамма. Хотя последняя наверное больше зависит от печати. Можно озвучить цифры и чем мерили. Мы кок-то традиционно делали National Semiconductor и Циклонах. По деньгам вроде выгодней, да и качество гарантировано.
stu
Цитата(Bad0512 @ Oct 18 2011, 09:50) *
В общем вижу для вас 2 выхода :
1. Пользовать корку в полном объёме...

похожая история с arria gx. в режиме софт - все норм, с выхода к себе на вход - все норм, с выхода на другую плату - нет вертикальной синхронизации. есть предположения? понимаю, что инфы о проекте мало, но все же...
billidean
Цитата(DmitryR @ Oct 20 2011, 10:24) *
Я в курсе, я работал с этим китом.

Он кажется в исходниках прилагается к киту. Если нет - чтобы попробовать, он не нужен, а оригинальная прошивка MAXII в комплекте точно есть. Однако я вам настоятельно советую посмотреть осцилографом что там на выводах прежде чем корячить MAX - 99.9%, что он ни при чем.

Да. У меня заработало сразу.

Большой простор для поиска? Для этой платы есть ровно один дистрибутив софта, в который все входит. Осталось вспомнить, в какой каталог вы его инсталлировали.


Смотрел осциллографом: на ноге Mute-1,5В, Bypass-2,5В.
Если вы работали с этим китом, скажите, светодиод D30 (из схемы на плату - на выходе CD чипа эквалайзера приемника) должен гореть? у меня горит.
Пробовал сделать проект используя ALTGX(в режиме SDI), настраивал "вроде" правильно, НО тот же отрицательный результат.
Мне нужно просто перегнать некий объем данных от передатчика к приемнику используя интерфейс SDI... я не думал, что все так сложно.
Нужно ли кроме компонентов (ALTGX, например), что-то подключать?

если кто-нибудь поделится минимальным работающим похожим проектом для кристалла Stratix IV GX, буду очень признателен.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.