Jump to content

    

Помогите поднять линк с QSFP

Всем привет!

 

Что имеется:

- Борда TR10a-HL Board (Altera Arria 10) c 4 QSFP+

- Кабель для внешнего loopback.

 

Сейчас стоит задача отладить внешний loopback.

Собран тестовый дизайн Генератор данных ---> Transceiver PHY(DataRate = 1555.2 Mb/s, PLL для Tx PMA настроена на 777,6 MHz, Reference Clock для Rx PMA - 155.52 MHz. Full duplex. Настроен на внутренний loopback) ---> "Проверятель" принятых данных. В такой схеме все работает.

Как только перехожу на внешний loopback ничего не работает. С выхода приемника вообще нет ничего. Мусор какой-то. Мое предположение - проблема в работе с QSFP+. Раньше мне не приходилось с ним работать. Прошу помощи и подсказок людей, более опытных в этой области куда залезть/что почитать. Допускаю, что необходимо выполнить какую-то настройку регистров QSFP. Там их целая куча. Но вот что куда прописать слабо представляю.

Share this post


Link to post
Share on other sites

Кабель оптический?

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

Share this post


Link to post
Share on other sites

Попробуйте для начала просто сбросить QSFP - дать импульс низкого уровня на ResetL, а также удерживать LPMode=0 (установить низкий уровень на этом пине еще до начала сброса).

Share this post


Link to post
Share on other sites
Кабель оптический?

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

 

Да, кабель оптический. Там есть набор сигналов для интерфейса с QSFP модулем. Набор сигналов для индикации состояния модуля, сброса и интерфейс I2с. Прочитать/записать память модуля могу. Но вот основная проблема, что именно нужно приписывать и нужно ли вообще это делать? Должен ли QSFP работать "из коробки" без дополнительных телодвижений?

 

Попробуйте для начала просто сбросить QSFP - дать импульс низкого уровня на ResetL, а также удерживать LPMode=0 (установить низкий уровень на этом пине еще до начала сброса).

 

Это всё делаю.LPMode=0 по умолчанию. Этот сигнал не трогаю вообще. После включения питания выжидаю некоторое время(чтобы перекрыть всё время на переходные процессы в модуле и т.д.). Затем дергаю ResetL (удерживаю в 0 не менее 2мкс). После смотрю сигналы IntN и ModPrs. Если эти сигналы в 0 значит модуль OK.

Share this post


Link to post
Share on other sites

MODSEL?

Модуль у Вас может быть со встроенным ПЛЛ, потому посмотрите в описании, на какую частоту он настроен по-умолчанию(если есть). Сомневаюсь, что DataRate = 1555.2 Mb/s это что-то стандартное..

Share this post


Link to post
Share on other sites
MODSEL?

Модуль у Вас может быть со встроенным ПЛЛ, потому посмотрите в описании, на какую частоту он настроен по-умолчанию(если есть). Сомневаюсь, что DataRate = 1555.2 Mb/s это что-то стандартное..

 

MODSEL использую если необходимо связаться с QSFP по интерфейсу. В спецификации на QSFP модуль SFF-8436 Rev 4.2 есть вот эта табличка

table.jpg

по адресу 131 записано 0x2, а по всем остальным адресам 0x0. Что это может означать? Могу ли я этим модулем принимать/передавать трафик на меньшем DataRate или не могу?Или он предназначен только для сетей 40G?

 

з.ы.я пытаюсь принять/передать STM-1 поток 155,52 Mb/s. Собственно по этой причине и был выбран DataRate = 1555.2 Mb/s (т.к трансиверы в ПЛИС работают минимум на 1Гб/с) и прием/передача ведется с 10x oversampling.

Edited by polyvyannyy

Share this post


Link to post
Share on other sites

Большинство модулей не требуют настройки. Однако некоторым она необходима(особенно крутым, работающим на большие расстояния). Почитайте внимательно ст 70-71 приведенной Вами доки, поопрашивайте регистры. И посмотрите доку непосредственно на модуль, а не спецификацию. Возможно, чего-нибудь найдёте.

Share this post


Link to post
Share on other sites

А какая модель кабеля? Что в документации написано? Какая у него пропускная?

Share this post


Link to post
Share on other sites

Все заработало. Оказывается все очень просто :) Quartus при синтезе выкидывал сигнал LPMODE и нога оказывалась в третьем состоянии. А на плате идет подтяжка сигнала к питанию. Соответственно, на QSFP LPMODE = 1 и модуль находился режиме низкого энергопотребления.

Share this post


Link to post
Share on other sites
Все заработало. Оказывается все очень просто :) Quartus при синтезе выкидывал сигнал LPMODE и нога оказывалась в третьем состоянии. А на плате идет подтяжка сигнала к питанию. Соответственно, на QSFP LPMODE = 1 и модуль находился режиме низкого энергопотребления.

А как обнаружили это ?

Я заметил, что Quartus любит заниматься оптимизацией, но при этом молчит как партизан о том, что он что-то оптимизировал :crying:

Share this post


Link to post
Share on other sites
А как обнаружили это ?

Я заметил, что Quartus любит заниматься оптимизацией, но при этом молчит как партизан о том, что он что-то оптимизировал :crying:

 

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

Share this post


Link to post
Share on other sites
С трудом представляю квартус, который бы выкинул выходной пин если бы на него было назначено какое-либо значение.

Выкидывание выходных пинов я тоже не встречал.

Но на практике сталкивался с тем, что Quartus удалял частоты, синтезируемые на PLL. И ни одного предупреждения на консоль не выводил....

Приведу пример:

Я на PLL создал 3 одинаковые частоты (с0, с1, с2), фазой каждой из которых я управляю отдельно. Но Quartus 2 частоты (с1 и с2) обрезал, промолчав как партизан. И потом на отладке я убил кучу времени...

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

Share this post


Link to post
Share on other sites
А как обнаружили это ?

Я заметил, что Quartus любит заниматься оптимизацией, но при этом молчит как партизан о том, что он что-то оптимизировал :crying:

 

Посмотрел RTL после синтеза. Проверил все управляющие сигналы QSFP и выяснил, что именно LPMODE был объявлен как входной)) (криворучка я)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this