Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: PHY не отправляет пакеты
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Fast Ethernet/Gigabit Ethernet/FibreChannel
Nivovod
Ситуация следующая: есть PHY 88E1512. В режиме loopback MAC->PHY->MAC пакеты передаются и принимаются верно. При переключении PHY в нормальный режим (никакие настройки кроме бита loopback не меняем):
- появляется LINK на 100Мбит (autoneg)
- все пакеты ИЗ сети принимаются верно
- ни один пакет В сеть не уходит (сниффер не фиксирует)

Вопрос - это результат не правильной настройки PHY или передатчик PHY не исправен? Тогда как LINK мог установиться?
iosifk
Цитата(Nivovod @ Sep 2 2014, 20:33) *
Ситуация следующая: есть PHY 88E1512. В режиме loopback MAC->PHY->MAC пакеты передаются и принимаются верно. При переключении PHY в нормальный режим (никакие настройки кроме бита loopback не меняем):
- появляется LINK на 100Мбит (autoneg)
- все пакеты ИЗ сети принимаются верно
- ни один пакет В сеть не уходит (сниффер не фиксирует)

Вопрос - это результат не правильной настройки PHY или передатчик PHY не исправен? Тогда как LINK мог установиться?

Линк с приемом и передачей не связан. Передатчик передает импульсы а на другой стороне приемник их принимает и показывает, что линк есть.
А Вы посмотрите в регистры PHY. Передача разрешена? На PHY данные идут? Клоки? Питание выходного каскада с тр-ром? Что там со средней точкой тр-ра?
Alex11
И кварц еще проверьте. Тоже первый кандидат на подобное поведение.
kolobok0
Цитата(Nivovod @ Sep 2 2014, 20:33) *
...это результат не правильной настройки PHY или передатчик PHY не исправен? Тогда как LINK мог установиться?


ещё нужно глянуть - уходит ли с передатчика пакеты. если ДМА (идёт ли обработка прерывания окончания передачи и
постановка новых пакетов в очередь).
по поводу кварца - собственно, да = имеет смысл проверить. если используете генератор - и если ножки под брюхом - банальный
не пропай может быть. хотя выглядит как бесконечный тест при старте (при инициализации попытка ожидать ответа от железа,
в оригинальном софте = беспосадочный полёт).
doom13
Получается с приёмником всё нормально, а передатчик работает до какого-то там сечения в PHY. Как писали выше, есть бит включения передатчика, включён ли он? Если да, тогда следующая проверка.
В регистрах PHY должен быть бит отвечающий за External Loopback (Line Loopback) (у 88E1111 такая обция есть, думаю, должна быть и тут).
Включаете её и посылаете пакеты с ПК на PHY, они должны вернуться обратно на комп. Таким образом проверяете линию передатчика, думаю, она и не работает. Если так - далее ковыряете железо.
Nivovod
Благодарю за участие! Дело было действительно в генераторе.
AVR
Цитата(Nivovod @ Sep 5 2014, 17:53) *
Благодарю за участие! Дело было действительно в генераторе.

Сейчас столкнулся с такой же проблемой на самодельной платке с 88E1111+ПЛИС - autonegatiation успешно, пакеты принимаются (судя по Signal Tap, на 100% корректные фреймы). А вот отправка не удается.

Какая именно была проблема с генератором? Чем он не удовлетворял требованиям? Сравню со своим.

P.S.
Интересную мысль нашел в этой теме что есть line loopback, в первую очередь попробую rolleyes.gif
Alex11
С генератором основная проблема - частота ушла далеко от номинала. Должно быть не хуже 50 ppm, если стоит 100, то может уже сбиваться или совсем не работать. Но loopback в этом случае работает нормально.
kolobok0
Цитата(AVR @ Dec 19 2015, 13:41) *
...есть line loopback, в первую очередь попробую..


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

(круглый)
AVR
Цитата(Alex11 @ Dec 19 2015, 13:49) *
С генератором основная проблема - частота ушла далеко от номинала. Должно быть не хуже 50 ppm, если стоит 100, то может уже сбиваться или совсем не работать. Но loopback в этом случае работает нормально
По дефолту передатчик был выключен в регистре 20. Включил передатчик и режим Line Loopback и в WireShark я реально увидел что каждый пакет от ПК дублируется, т.е. интерфейс по факту работает.

Я использую не генератор, а кварц 25,0RG9 - буду выяснять его характеристики, какие там ppm.

Но еще я подозреваю тайминги. RX_CLK это 125 МГц, использую интерфейс GMII. Пробовал assign GTX_CLK = RX_CLK; и assign GTX_CLK = !RX_CLK; т.е. смещенное на пол такта. Может надо ставить некоторые задержки чтобы было как в документации - не менее 2 нс пауза между установлением данных на шине и фронтом GTX_CLK...
Alex11
Ну тайминги, конечно, надо посмотреть в первую очередь. Я-то думал, что ничего уже не помогает. Я делал на RGMII, там еще интереснее с временами. Надо было в +-0.5 нс попасть.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.