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

PHY не отправляет пакеты

Ситуация следующая: есть PHY 88E1512. В режиме loopback MAC->PHY->MAC пакеты передаются и принимаются верно. При переключении PHY в нормальный режим (никакие настройки кроме бита loopback не меняем):

- появляется LINK на 100Мбит (autoneg)

- все пакеты ИЗ сети принимаются верно

- ни один пакет В сеть не уходит (сниффер не фиксирует)

 

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

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


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

Ситуация следующая: есть PHY 88E1512. В режиме loopback MAC->PHY->MAC пакеты передаются и принимаются верно. При переключении PHY в нормальный режим (никакие настройки кроме бита loopback не меняем):

- появляется LINK на 100Мбит (autoneg)

- все пакеты ИЗ сети принимаются верно

- ни один пакет В сеть не уходит (сниффер не фиксирует)

 

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

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

А Вы посмотрите в регистры PHY. Передача разрешена? На PHY данные идут? Клоки? Питание выходного каскада с тр-ром? Что там со средней точкой тр-ра?

 

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


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

И кварц еще проверьте. Тоже первый кандидат на подобное поведение.

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


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

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

 

ещё нужно глянуть - уходит ли с передатчика пакеты. если ДМА (идёт ли обработка прерывания окончания передачи и

постановка новых пакетов в очередь).

по поводу кварца - собственно, да = имеет смысл проверить. если используете генератор - и если ножки под брюхом - банальный

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

в оригинальном софте = беспосадочный полёт).

 

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


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

Получается с приёмником всё нормально, а передатчик работает до какого-то там сечения в PHY. Как писали выше, есть бит включения передатчика, включён ли он? Если да, тогда следующая проверка.

В регистрах PHY должен быть бит отвечающий за External Loopback (Line Loopback) (у 88E1111 такая обция есть, думаю, должна быть и тут).

Включаете её и посылаете пакеты с ПК на PHY, они должны вернуться обратно на комп. Таким образом проверяете линию передатчика, думаю, она и не работает. Если так - далее ковыряете железо.

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


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

Благодарю за участие! Дело было действительно в генераторе.

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

 

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

 

P.S.

Интересную мысль нашел в этой теме что есть line loopback, в первую очередь попробую :rolleyes:

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


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

С генератором основная проблема - частота ушла далеко от номинала. Должно быть не хуже 50 ppm, если стоит 100, то может уже сбиваться или совсем не работать. Но loopback в этом случае работает нормально.

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


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

...есть line loopback, в первую очередь попробую..

 

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

 

(круглый)

 

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


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

С генератором основная проблема - частота ушла далеко от номинала. Должно быть не хуже 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...

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


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

Ну тайминги, конечно, надо посмотреть в первую очередь. Я-то думал, что ничего уже не помогает. Я делал на RGMII, там еще интереснее с временами. Надо было в +-0.5 нс попасть.

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


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

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

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

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

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

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

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

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

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

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