Перейти к содержанию
    

Marvell 88E1112. Не проходят пакеты в режиме 1000BASE-T по SGMII

Всем доброго времени суток.

 

Вопрос по микросхеме трансивера Marvell 88E1112. Использую ее в режиме 1000BASE-T, на MAC-уровне соединяю ее по SGMII с ПЛИС Cyclone 10 GX (через встроенный трансивер). Успешно проходит конфигурация между внутренним трансивером ПЛИС и 88E1112 - 88E1112 начинает слать IDLE-последовательность (BCh 50h). Линк между 88E1112 и Ethernet-линией (физический MDI-уровень) устанавливается. Но на этом все: приемные пакеты из линии не доходят до SGMII (я вижу это на осциллографе). В ПЛИС при этом как шла IDLE-последовательность на приеме, так и идет. Пробую передавать из ПЛИС наружу - то же самое: на линии SGMII видно, что ПЛИС пытается передавать пакеты, но на выходе 88E1112, в линии Ethernet все тихо. Выглядит так, как будто 88E1112 не пропускает пакеты между MDI и SGMII.

 

Подскажите, пожалуйста, в чем может быть проблема? Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сейчас как раз работаю с 88E1112 для 10/100/1000BASE-T, подключенной к ПЛИС virtex5. Неделю провозился с MAC (затыкалось SGMII автосогласование), а 88E1112 как-то сразу заработала. Из особенностей сходу вспомню только длинный сброс, требует не менее 10 мс.

Покажите кусок схемы, что ли.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

88E1112_scheme.thumb.jpg.a37685ae96c6faec6433a654d641eff8.jpg

 

Схема по идее уже рабочая, т.е. опробована и успешно работает, но без ПЛИС, а с другим 88E1112, когда выход SGMII от одного подается на вход другого. К сожалению, той рабочей платы у меня на руках нет, и поэкспериментировать с ней, сравнить уровни сигналов я не могу. Из различий только уровень питающего напряжения на SGMII: на работающей он - 1,2В, на этой он - 1,03В. Ну и Config[4] на работающей был запаян на землю, а тут он выведен на Status[1]. Но Config[4] уже вручную перепаяли обратно на землю, так что этого различия уже нет.

Изменено пользователем RoadRunner

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 minutes ago, mov said:

Возможно, Вы сами ответили на свой вопрос. Поднять напряжение на ядре с 1.03В до 1.2В.

Да, я сейчас пытаюсь провести такой эксперимент.. Но больше от безысходности. Потому что логики в этом не вижу: конфигурация то по этому же SGMII между ПЛИС и 88E1112 проходит, значит достаточно питания, уровни распознаются. Да и по документации там диапазон напряжений от 0.95В до 1.5В можно подавать. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

27 minutes ago, RoadRunner said:

Да, я сейчас пытаюсь провести такой эксперимент.. Но больше от безысходности. Потому что логики в этом не вижу: конфигурация то по этому же SGMII между ПЛИС и 88E1112 проходит, значит достаточно питания, уровни распознаются. Да и по документации там диапазон напряжений от 0.95В до 1.5В можно подавать. 

Вопрос в том , сколько до контактов питания доходит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, mov said:

Вопрос в том , сколько до контактов питания доходит.

Не совсем понял.. Я осциллографом вижу, что на ножке S_VTT один вольт то есть точно. Правда, размах дифференциального сигнала S_OUT при этом раза в полтора-два меньше, чем размах на S_IN, т.е. трансивер ПЛИС из этого напряжения питания 1.03В делает большую амплитуду сигнала - около вольта, чем 88E1112 - около полувольта. Но опять же даже при этих уровнях конфигурационный обмен байтами проходит успешно, т.е. уровни распознаются, их хватает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 часов назад, RoadRunner сказал:

Схема по идее уже рабочая

Есть только пара мелких замечаний, которые вам сейчас никак не помогут.

1) R34 (RSET) велено ставить 5k с допуском 1%, а у вас 4,7k

2) IO выводы не толерантны к 3,3В, у вас подтяжка сброса и MDIO к странным 3,0В.

3) F_VTT настроен как имеющий внешнее питание, а на самом деле никуда не подключен. Понятно, что оптика у вас не используется, но прямого разрешения так делать в даташите нет.

4) SIGDET - вход без внутренней подтяжки болтается в воздухе. Не поймал ли он активный уровень и не включил ли выбор оптики вместо витой пары?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

19 hours ago, sorok-odin said:

2) IO выводы не толерантны к 3,3В, у вас подтяжка сброса и MDIO к странным 3,0В.

Что значит "не толерантны"? Не совсем понял.

 

19 hours ago, sorok-odin said:

4) SIGDET - вход без внутренней подтяжки болтается в воздухе. Не поймал ли он активный уровень и не включил ли выбор оптики вместо витой пары?

Вот это уже интересно. Я как-то по описанию решил, что это точно выход - детектирует какой-то там сигнал. А он - действительно вход! Только я из даташита так и не понял, что он все-таки делает. Можете объяснить?

Изменено пользователем RoadRunner

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 часа назад, RoadRunner сказал:

Что значит "не толерантны"? Не совсем понял.

image.thumb.png.60662e38b86a0888dad75656e4d196c9.png

Значит уровни IO сигналов в вашем случае должны быть 2,5В, а не 3,3В.

4 часа назад, RoadRunner сказал:

Вот это уже интересно. Я как-то по описанию решил, что это точно выход - детектирует какой-то там сигнал. А он - действительно вход! Только я из даташита так и не понял, что он все-таки делает. Можете объяснить?

Если у вас к оптическому порту микросхемы был бы подключен оптический модуль, он при наличии на входе света выдавал  бы активный уровень на своем соответствующем выходе. Бывают модули с выходом Signal Detect - активен единицей, есть модули SFP с сигналом LOS (инверсный). У вас микросхема 88Е1112 в режиме автовыбора оптика/медь. Как она выбирает с чем сейчас работать - надо внимательнее разбираться, наверняка состояние SIGDET тоже имеет значение.

Как это обычно бывает, вашу соринку я заметил, а у меня самого же SIGDET в схеме не подключен :fool:, так что сейчас вряд ли в нём дело. Но у меня используется внутренний регулятор для питания S_VTT и F_VTT (SEL_VTT=0).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

sorok-odin, да.. видимо дело в чем-то другом: исправил все Ваши замечания (кроме первого про резистор с допуском). Даже перепаял на внутреннее питание SGMII - не помогает. Мистика какая-то.. В любом случае, большое спасибо Вам за советы, буду дальше пробовать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Такой вопрос еще возник: а что этому phy отправлять по SGMII во время автопереговоров, кофигурирования? Я отправляю Config_reg = 0x0402, т.е. полный дуплекс и выставляю acknolegment bit. Может быть, ему что-то другое надо отправлять?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если SGMII между двумя микросхемами с разным питанием этих портов то нужны разделительные емкости 0,01мкф!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

23 hours ago, vadimp61 said:

Если SGMII между двумя микросхемами с разным питанием этих портов то нужны разделительные емкости 0,01мкф!

Имеется в виду AC decoupling? Если да, то он всегда нужен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 hours ago, gosha-z said:

Имеется в виду AC decoupling? Если да, то он всегда нужен.

Да. Но если связываем по SGMII два чипа одинаковым питанием этих портов, например 88E6095 , то необязательно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...