Jump to content
    

Можно ли соединить две плиски через USB/Ethernet кабель, минуя все эти сложные протоколы?

На 200Мгц по диффпаре на пару метров в режиме SPI работать не будет, точнее то будет то не будет и так всё время. Придётся по каким-то посылкам всё время фазу подстраивать, а если надо городить подстройку фазы, то проще поставить  PHY 1G Ethernet.

Либо снизьте частоту до 50Мгц и учетверите количество диффпар, тем более что есть кабели с чуть ли не любым количеством диффпар в составе.

Share this post


Link to post
Share on other sites

Можно спокойно LVDS-ом через кабель (витые пары в экране) на 2-3 метра передавать. Без всяких лишних заморочек. Пруф - смотри CameraLink (это простой lvds без наворотов-кодирования). Только кабель должен быть правильный-качественный. 

Share this post


Link to post
Share on other sites

41 minutes ago, Lmx2315 said:

На 200Мгц по диффпаре на пару метров в режиме SPI работать не будет

понятно что если длина кабеля больше чем период, то передача от слэйва по клокам мастера работать будет так себе.

но в одну сторону, со сменой направления клоков, чтобы их всегда генерил передатчик (ну или завернуть их со стороны слэйва обратно) - вполне.

Share this post


Link to post
Share on other sites

13 hours ago, iiv said:

А какие у Вас были скорости, когда не работало, и когда стало работать? Я предполагаю, что 200МБит/с меня устроит, но всегда хочется про запас иметь больше, а вдруг пригодится. В даташите вроде на каждую линию 1.2ГБит/с дают.

В моем случае, на скоростях более 600Mbps с приемника сыпется исключительно мусор. Никакие настройки не помогают, а попробовал я много всего, можете глянуть. Плата Tang Nano 25K, линия передачи в виде перемычки разъеме (плюс согласующие резисторы).

2 hours ago, Yuri124 said:

а у них есть требования по питанию?

Документация у них жиденькая, как таковых рекомендаций нет.

Хотя, где-то я находил рекомендацию запитывать банк с LVDS линиями именно от 2.5V. В надежде на улучшение, я заколхозил плату, но ... ничего не изменилось 🤣

@iiv Ещё, обратите внимание на количество доступных PLL - их, вроде бы, две. А приемников у вас - 7 штук. Надо заранее подумать, на каком клоке вы будете принимать данные

Share this post


Link to post
Share on other sites

41 minutes ago, pavlovconst said:

Ещё, обратите внимание на количество доступных PLL - их, вроде бы, две. А приемников у вас - 7 штук. Надо заранее подумать, на каком клоке вы будете принимать данные

да, две, и, более того, одна PLL по другим делам занята будет, то есть только одну могу выделить. Я собственно поэтому и тут вопрошаю (но пока так и не понял, кто знает, подскажите, пожалуйста) можно ли одну и ту же LVDS пару использовать как приемник и как передатчик. Чтобы обойти проблему клоков, я бы мог все 4 линии в какой-то момент переключать так, что они работают в одну сторону, тогда клок бы шел по одной LVDS паре, и данные - по трем другим. Так как на обоих концах - все только свое и никто в этот протокол не полезет, я мог бы даже условиться о размере пакетов. В этом случае с учетом всех оверхедов мне где-то 200-300МГц надо иметь, может чуть больше.

 

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

 

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

Share this post


Link to post
Share on other sites

у людей проблемы с приёмом данных с АЦП по LVDS на 200 - 300 МГц , которые рядом на печатной плате стоят, а вы хотите без проблем передать на 2 метра, по кабелю, чьи параметры будут меняться от того как его согнули!

з.ы.

Нет проблем передать данные по LVDS в данном сетапе, проблема их синхронизировать между собой и на приёме.

Share this post


Link to post
Share on other sites

1 hour ago, _pv said:

На 200Мгц по диффпаре на пару метров в режиме SPI работать не будет

Не знаю как  в GOWINe, а в стареньком Spartan3 и Virtex4 LVDS в чистом SPI режиме  на ~200MHz  работало безо всяких проблем. И даже без DLL/PLL.  На внешнем LVDS кабеле 2м с разъёмами. 
Кабель 5 пар, одна пара - клок.  Но естественно это без DC развязки.
И я даже пробовал извращался и делал синхронизацию передачи выкалывая несколько тактов клока  и детектируя  это на приёмной стороне.  Тоже работало.  
Но все же было проще  сделать норм 8b/10b кодирование  и поднять скорость. Получается универсальнее и DC развязка без проблем  

P.S,  И все это без serdes, чисто на  логике 

Share this post


Link to post
Share on other sites

On 9/4/2024 at 1:16 PM, RobFPGA said:

Не знаю как  в GOWINe, а в стареньком Spartan3 и Virtex4 LVDS в чистом SPI режиме  на ~200MHz  работало безо всяких проблем. И даже без DLL/PLL.  На внешнем LVDS кабеле 2м с разъёмами.

Ultra-640_SCSI передавал 320 Мбит/с по каждой LVDS паре на 10 метров ещё 20 лет назад.. :biggrin:

Share this post


Link to post
Share on other sites

24 minutes ago, RobFPGA said:

Но естественно это без DC развязки.

скажите, пожалуйста, правильно ли я понимаю, что DC развязка - это трансформаторы в езернет розетке, в том числе для POE?

А почему с ней режим SPI, когда по одному каналу клок, по другим - данные - не пойдет, пожалуйста, объясните?

 

27 minutes ago, RobFPGA said:

Но все же было проще  сделать норм 8b/10b кодирование  и поднять скорость.

правильно ли я понимаю, что без PLL сделать такое декодирование клока на стороне получателя не реально?

Share this post


Link to post
Share on other sites

On 9/4/2024 at 1:45 PM, iiv said:

DC развязка - это трансформаторы в езернет розетке

можно сделать и с помощью конденсаторов.

Share this post


Link to post
Share on other sites

13 минут назад, iiv сказал:

А почему с ней режим SPI, когда по одному каналу клок, по другим - данные - не пойдет, пожалуйста, объясните?

Вот вы пошлёте по линии длинную серию нулей или единиц, для линии это будет почти постоянный сигнал, а постоянные сигналы через конденсаторы/трансформаторы не проходят.

Share this post


Link to post
Share on other sites

51 минуту назад, blackfin сказал:

Ultra-640_SCSI передавал 320 Мбит/с по каждой LVDS паре на 10 метров ещё 20 лет назад.. :biggrin:

Я тут почитал как скази работает:

If the I/O signal is false (transfer to the target PIA) the target PIA shall request information by asserting the REQx signal. The initiator PIA shall drive the data and parity signals to their desired values, delay at least one deskew delay plus a cable skew delay and assert the ACKx signal. The initiator PIA shall continue to drive the data and parity signals until the REQx signal is false.

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

Share this post


Link to post
Share on other sites

38 minutes ago, iiv said:

правильно ли я понимаю, что без PLL сделать такое декодирование клока на стороне получателя не реально?

Есть несколько вариантов реализации вашей системы

- Системный (общий для всех устройств) клок. Передача данных и прием на этом клоке. Хорошо, если этот вариант заработает на 90MHz.

- Source-synchronous тактирование, клок сопровождает данные. DDR буфера на передаче и на приеме. Думаю, максимум 90MHz внутренний клок, 180Mbps или около того на лейн. Реализовать такое относительно легко.

- Source-synchronous тактирование, SERDES c кратностью от 4 до 10, передаем внутренний медленный клок. Потребуется умножать внутренний клок и на передатчике, и на приемнике, нужны PLL. Видимо, вы так не сможете сделать.

- То же, что и предыдущий пункт, только с данными передаем быстрый клок. Приемник делит этот клок на логике, чтобы защелкивать данные с десериализатора. По даташиту обещают до 1200Mbps, по факту - будет трудоемко получить даже 400Mbps. Много подводных камней, связанных с пророческим названием выбранной ПЛИСки.

 

Share this post


Link to post
Share on other sites

1 hour ago, iiv said:

правильно ли я понимаю, что без PLL сделать такое декодирование клока на стороне получателя не реально?

Нет, неправильно. Кодирование 8b10b работает "само по себе" без  необходимости восстанавливать клок.  Главное чтобы этот клок был.
Если вы будете передавать клок отдельной парой  то 8b10b (или другие подобные) нужен будет лишь для устранения проблем c DС развязкой. 
Например вы передаёте клок   отдельной парой,  и можно на частоте в 2 раза меньше чем битовый  поток. 
А на приёмной стороне нужно будет лишь выровнять задержку клока на середину окна бита, и принять биты по обоим фронтам на DDR, а затем уже декодировать 8b/10b с выравниванием на слово и контролем четности. 
Так же и на перечу,  8b10b кодирование и в DDR передача используя для передачи принятый клок.     

Для  200MHz, c окном ~5 ns,  для нормального LVDS кабеля, и обычных условий эксп. даже не нужно делать автоподстройку фазы приёма. Работает и на статическом ручном подборе.  

Share this post


Link to post
Share on other sites

- Или всё же обратить внимание на IP-корку Езернета + свич на 8 портов и все дела 😁

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
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
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.

×
×
  • Create New...