polyvyannyy 0 25 декабря, 2017 Опубликовано 25 декабря, 2017 · Жалоба Всем привет! Что имеется: - Борда 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. Там их целая куча. Но вот что куда прописать слабо представляю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gutzan 1 25 декабря, 2017 Опубликовано 25 декабря, 2017 · Жалоба Кабель оптический? Если да, то там есть сигналы управления, посмотрите на них внимательно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flood 13 25 декабря, 2017 Опубликовано 25 декабря, 2017 · Жалоба Попробуйте для начала просто сбросить QSFP - дать импульс низкого уровня на ResetL, а также удерживать LPMode=0 (установить низкий уровень на этом пине еще до начала сброса). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
polyvyannyy 0 25 декабря, 2017 Опубликовано 25 декабря, 2017 · Жалоба Кабель оптический? Если да, то там есть сигналы управления, посмотрите на них внимательно. Да, кабель оптический. Там есть набор сигналов для интерфейса с QSFP модулем. Набор сигналов для индикации состояния модуля, сброса и интерфейс I2с. Прочитать/записать память модуля могу. Но вот основная проблема, что именно нужно приписывать и нужно ли вообще это делать? Должен ли QSFP работать "из коробки" без дополнительных телодвижений? Попробуйте для начала просто сбросить QSFP - дать импульс низкого уровня на ResetL, а также удерживать LPMode=0 (установить низкий уровень на этом пине еще до начала сброса). Это всё делаю.LPMode=0 по умолчанию. Этот сигнал не трогаю вообще. После включения питания выжидаю некоторое время(чтобы перекрыть всё время на переходные процессы в модуле и т.д.). Затем дергаю ResetL (удерживаю в 0 не менее 2мкс). После смотрю сигналы IntN и ModPrs. Если эти сигналы в 0 значит модуль OK. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TRILLER 0 25 декабря, 2017 Опубликовано 25 декабря, 2017 · Жалоба MODSEL? Модуль у Вас может быть со встроенным ПЛЛ, потому посмотрите в описании, на какую частоту он настроен по-умолчанию(если есть). Сомневаюсь, что DataRate = 1555.2 Mb/s это что-то стандартное.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
polyvyannyy 0 26 декабря, 2017 Опубликовано 26 декабря, 2017 (изменено) · Жалоба MODSEL? Модуль у Вас может быть со встроенным ПЛЛ, потому посмотрите в описании, на какую частоту он настроен по-умолчанию(если есть). Сомневаюсь, что DataRate = 1555.2 Mb/s это что-то стандартное.. MODSEL использую если необходимо связаться с QSFP по интерфейсу. В спецификации на QSFP модуль SFF-8436 Rev 4.2 есть вот эта табличка по адресу 131 записано 0x2, а по всем остальным адресам 0x0. Что это может означать? Могу ли я этим модулем принимать/передавать трафик на меньшем DataRate или не могу?Или он предназначен только для сетей 40G? з.ы.я пытаюсь принять/передать STM-1 поток 155,52 Mb/s. Собственно по этой причине и был выбран DataRate = 1555.2 Mb/s (т.к трансиверы в ПЛИС работают минимум на 1Гб/с) и прием/передача ведется с 10x oversampling. Изменено 26 декабря, 2017 пользователем polyvyannyy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TRILLER 0 26 декабря, 2017 Опубликовано 26 декабря, 2017 · Жалоба Большинство модулей не требуют настройки. Однако некоторым она необходима(особенно крутым, работающим на большие расстояния). Почитайте внимательно ст 70-71 приведенной Вами доки, поопрашивайте регистры. И посмотрите доку непосредственно на модуль, а не спецификацию. Возможно, чего-нибудь найдёте. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gutzan 1 26 декабря, 2017 Опубликовано 26 декабря, 2017 · Жалоба А какая модель кабеля? Что в документации написано? Какая у него пропускная? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
polyvyannyy 0 28 декабря, 2017 Опубликовано 28 декабря, 2017 · Жалоба Все заработало. Оказывается все очень просто :) Quartus при синтезе выкидывал сигнал LPMODE и нога оказывалась в третьем состоянии. А на плате идет подтяжка сигнала к питанию. Соответственно, на QSFP LPMODE = 1 и модуль находился режиме низкого энергопотребления. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 28 декабря, 2017 Опубликовано 28 декабря, 2017 · Жалоба Все заработало. Оказывается все очень просто :) Quartus при синтезе выкидывал сигнал LPMODE и нога оказывалась в третьем состоянии. А на плате идет подтяжка сигнала к питанию. Соответственно, на QSFP LPMODE = 1 и модуль находился режиме низкого энергопотребления. А как обнаружили это ? Я заметил, что Quartus любит заниматься оптимизацией, но при этом молчит как партизан о том, что он что-то оптимизировал :crying: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexadmin 0 28 декабря, 2017 Опубликовано 28 декабря, 2017 · Жалоба А как обнаружили это ? Я заметил, что Quartus любит заниматься оптимизацией, но при этом молчит как партизан о том, что он что-то оптимизировал :crying: С трудом представляю квартус, который бы выкинул выходной пин если бы на него было назначено какое-либо значение. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 28 декабря, 2017 Опубликовано 28 декабря, 2017 · Жалоба С трудом представляю квартус, который бы выкинул выходной пин если бы на него было назначено какое-либо значение. Выкидывание выходных пинов я тоже не встречал. Но на практике сталкивался с тем, что Quartus удалял частоты, синтезируемые на PLL. И ни одного предупреждения на консоль не выводил.... Приведу пример: Я на PLL создал 3 одинаковые частоты (с0, с1, с2), фазой каждой из которых я управляю отдельно. Но Quartus 2 частоты (с1 и с2) обрезал, промолчав как партизан. И потом на отладке я убил кучу времени... Проблема вылечилась следующим образом: для каждой из частот я задал изначально разные сдвиги фаз, и Quartus после этого их не выкидывал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
polyvyannyy 0 28 декабря, 2017 Опубликовано 28 декабря, 2017 · Жалоба А как обнаружили это ? Я заметил, что Quartus любит заниматься оптимизацией, но при этом молчит как партизан о том, что он что-то оптимизировал :crying: Посмотрел RTL после синтеза. Проверил все управляющие сигналы QSFP и выяснил, что именно LPMODE был объявлен как входной)) (криворучка я) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться