Jump to content

    
Sign in to follow this  
billidean

SD-SDI ip-ядро. Кто пользовался?

Recommended Posts

Имею передатчик и приемник на одном кристалле, соединил выход передатчика со входом приемника, установил все сбросы в ноль, режимы SD-SDI.

 

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

 

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

 

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

Share this post


Link to post
Share on other sites

Вы посмотрите, что у вас за данные принимаются, может будут идеи. А тут систему разрисуйте поподробнее. Что за чип приемопередатчика, как с FPGA соединен, как сконфигурена корка.

Share this post


Link to post
Share on other sites

работаю с кристаллом StratixIV, приемник и передатчик делаю из MegaFunction, конфигурю обоих как SD-SDI, т.е. на малые скорости обмена.

за идею смотреть весь принимаемый поток спасибо, попробую.

 

вопрос: какие частоты загонять на входы реконфигурации передатчика и приемника??

(сейчас подаю на них теже тактовые, что и тактирование передачи/приема)

Share this post


Link to post
Share on other sites
Чип приемопередатчика вы забыли указать. А клок реконфигурации не помню какой, RTFM.

 

ЧИП????

 

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

и все...

 

не знаю про чип :help::blush: :blush:

Share this post


Link to post
Share on other sites

Придется мне, как Брежнев в том анекдоте:

далее sdш_tx к ноге стратикса, подключенной в выводу из платы,

Какой платы?

 

sdi_rx к ноге стратикса, подключенной в выводу из платы,

Какой платы?

 

соединяю эти выводы между собой прилагаемым в комплекте кабелем.

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

 

Stratix-IV киты бывают разные, SDI add-on бывают разные. Чтобы давать точные советы - надо владеть точной информацией. Ну и на схему принципиальную посмотрите, что там между теми выводами, куда вы сигнал выводите на плате есть - поймете, о каком чипе я спрашиваю. Если вы правильные выводы конечно используете.

Share this post


Link to post
Share on other sites

плата - Stratix IV GX FPGA Development Board.

выход передатчика ( нога стратикса, предназначенная для этого) подключен к LMH0302SQ cable driver, а вход приемника (нога стратикса) - к LMH0344 cable equalizer.

Edited by billidean

Share this post


Link to post
Share on other sites

1. Почти наверняка на FPGA используется трансивер (для поддержки HD/3G). Так как трансивер на такой низкой частоте, как у SD работать не может - используется оверсэмплинг. Проверьте, что у вас тактирование проекта полностью соответствует документации.

2. Судя по вашим предыдущим постам, о наличии микрух от National вы узнали только что. Поэтому проверьте, что на них подано правильное управление (на передатчик - SD режим и Enable, на приемнике нет Mute и Bypass).

3. Проверьте выход CD приемника - поймете, слышит ли он вообще что-нибудь.

 

А вообще на скоростях SD можно обычным осцилографом с полосой в пол-гигагерца посмотреть и прямо в канал.

Share this post


Link to post
Share on other sites

to DmitryR: спасибо, буду завтра все пробовать.

я впервые с этим интерфейсом знакомлюсь, поэтому, как говорится - ни в зуб ногой :rolleyes:

Share this post


Link to post
Share on other sites
Имею передатчик и приемник на одном кристалле, соединил выход передатчика со входом приемника, установил все сбросы в ноль, режимы 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.

 

Share this post


Link to post
Share on other sites
Скорее всего используемая вами корка является лишь физическим уровнем для SD-SDI,

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

 

Если просто подавать на вход корки паттерн "0xFF 0x00 0x00" - этого может быть недостаточно для детектирования TRS, так как в следующем байте должны лежать не только биты синхры, но и проверочные биты. Если проверки не выполняются - сигнал TRS может и не появиться. Как конкретно это реализовано у Альтеры я не знаю,

Ну так вы взяли бы да и прочитали, раз посоветовать хотите. Во-первых там интерфейс десятибитный, поэтому при его рассмотрении следует оперировать понятием слова, а не байта. И ТС сказал, что подает на первом такте вссе единицы, потом два такта все ноли, то есть не "0xFF 0x00 0x00" а 0x3FF00000. Это и есть TRS в понимании корки Altera. Корка на четвертое слово, где собственно находятся флаги при формировании сигнала TRS не смотрит.

Share this post


Link to post
Share on other sites
... 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.

Я пока это не применил, не успел, но попробую.

Share this post


Link to post
Share on other sites
Ну так вы взяли бы да и прочитали, раз посоветовать хотите.

 

Вы таки подозреваете ТС в том, что он сам читать не умеет?

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

 

Во-первых там интерфейс десятибитный, поэтому при его рассмотрении следует оперировать понятием слова, а не байта. И ТС сказал, что подает на первом такте вссе единицы, потом два такта все ноли, то есть не "0xFF 0x00 0x00" а 0x3FF00000

Ну и какое это имеет отношение к теме обсуждения? Я привёл пример для 8-ми битного стрима (вы не поверите, но такие стримы тоже существуют!). Более того, специально для 8-битных стримов стандарт допускает игнорировать младшие 2 бита на приёме и заполнять нулями эти два бита при передаче.

. Это и есть TRS в понимании корки Altera. Корка на четвертое слово, где собственно находятся флаги при формировании сигнала TRS не смотрит.

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

 

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

 

З Ы Кстати, у Xilinx аналогичная корка открытая, т.е. идёт в исходниках.

 

Share this post


Link to post
Share on other sites

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

 

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

 

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

 

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

Share this post


Link to post
Share on other sites
... начиная с момента начала выдачи от передатчика. И получаю всякую лажу, но только не то, что передавал.

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

 

т.к. плата лакированная, а покрытие портить не хотелось бы,

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

 

Есть большое подозрение, что приемник в режиме Mute висит все время.

Это вряд ли, потому что вы тогда бы ноли видели стабильно.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this