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

Marvell 88E1111 обрезает пакеты

Добрый день.

 

Есть самодельная плата с Kintex7 и Marvell 88E1111.

В ПЛИС стоит ядро Xilinx TEMAC из Vivado 16.4.

Принимаемые пакеты с MACa берем по интерфейсу AXIstream закольцовываем и отправляем обратно напрямую, без участия DMA и микроблейзов.

 

Сеть 100BASE-TX, Full Duplex - 100МБит/c. Светодиоды на Марвеле, соответствующие светятся.

 

Плату подключаем напрямую к ПК.

С ПК отправляем 50 пакетов по 1514 байт с максимально возможной скоростью.

Назад в ПК приходят все пакеты, но примерно 2-3 штуки из них обрезанные по длине, случайным образом. Т.е. начало пакета правильное (счётчик), потом он резко обрывается.

Косяк на приёме данных с ПК. Смотрели чипскопом обрезанные пакеты идут уже с PHY на MAC. Включили внутри 88E1111 счётчик ошибок CRC, он увеличивается каждый раз на количество битых пакетов. Ещё когда в ПК смотрим обрезанные пакеты Wireshark'oм, то CRC у них правильная, что тоже указывает, что пакет побился на приёме, закольцевался с наружи TEMACa и ушёл обратно уже с новой CRC.

 

Проблема наблюдается на нескольких одинаковых платах.

Плата многослойка. От PHY до разъёма с магнетиксом где-то 20 мм.

Микросхема PHY 88E1111 вызвала подозрение - перепаял на новую от другого поставщика, с другой датой изготовления - ничего не изменилось.

Пробовали менять кабель, перепаивали резисторы согласующие на плате (вместо 50 ом ставили 75, 100, 120), добавлял конденсаторов по питанию, меняли разъём с магнетиксом: вместо MagJack TRP, аккуратно привертолётили HALO HFJ11-1G01ERL. Пробовали менять ПК на ноутбук. Ничего не меняется вообще - стабильно 2-3 пакета на 50 обрезанные.

С ПК на ноутбук той же программой передается всё нормально.

 

Питание в норме 2.5В и 1В, цифровое и аналоговое питание 2.5В развязано фильтром. Смотрели осциллографом и питание и сигналы на разъёме Ethernet. Ничего подозрительного не увидели.

 

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

Может еррата какая-нибудь есть?

 

P.S. ещё заметили, что пакеты обрезаются только когда идёт одновременный приём и передача данных. Если данные только принимать и не передавать обратно, то счётчик ошибок CRC в PHY не увеличивается.

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


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

Такой проблемы у нас нет и на 1Гиге.

Похоже что на одновременной передаче и приеме помеха перекрестная. Может неправильно кабель езернет зажат :)

http://www.hardware.zp.ua/docs/ether10.htm

или разьем разведен не так или по питанию чтото выскакивает.

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


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

Такой проблемы у нас нет и на 1Гиге.

Похоже что на одновременной передаче и приеме помеха перекрестная. Может неправильно кабель езернет зажат :)

http://www.hardware.zp.ua/docs/ether10.htm

или разьем разведен не так или по питанию чтото выскакивает.

 

Питание смотрели осциллографом с полосой 1ГГц - всё чисто.

 

Кабеля разные пробовали. Короткие, длинные, заводские, самодельные. Ничего не меняется.

 

Также осциллографировали сигналы на выводах разъёма RJ45 со встроенным магнетиксом при вставленном кабеле - они есть только на первых двух дифф.парах MDI0, MDI1 - на остальных контактах разъёма пустота.

Если бы бы неправильно включён разъём - то сигналы были бы на других ногах разъёма. Также подпаивал на проводках другой разъём с другой цоколёвкой от HALO - соответственно цоколёвку заново смотрел.

Самое обидное - никакой реакции, было бы хоть какое-нибудь ухудшение или улучшение.

 

P.S. На соседней ветке форума вчера бурно обсуждали как на двухслойке 100МБит Ethernet работает.

Вроде как преобладало мнение, что 100BASE-TX всё нипочём, и сопротивление волновое можно не согласовывать и длину дорожек по 10см делать.

 

P.S.2 Вот фрагмент платы с Ethernet.

post-50219-1490792670_thumb.png

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


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

Все ли хорошо на клоке 88e1111? Осциллограммы на XTAL-ногах чистые? Также можно проверить сам кварц и номиналы пикофарадных конденсаторов.

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


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

Все ли хорошо на клоке 88e1111? Осциллограммы на XTAL-ногах чистые? Также можно проверить сам кварц и номиналы пикофарадных конденсаторов.

 

У нас кварцевый генератор AU-25.000MBE-T.

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


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

P.S. ещё заметили, что пакеты обрезаются только когда идёт одновременный приём и передача данных. Если данные только принимать и не передавать обратно, то счётчик ошибок CRC в PHY не увеличивается.

А если на проводах сделать заглушку Tx-Rx, то нормально работает?

 

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


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

Попробуйте свою прошилку на какой-нибудь плате с другим PHY чипом.

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


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

WireShark-ом смотрите?

 

Да.

Promiscuous mode включён.

ОС Win 7.

Смотрели на разных ПК.

 

Попробуйте свою прошилку на какой-нибудь плате с другим PHY чипом.

 

Дык там и ПЛИС другая.

 

А если на проводах сделать заглушку Tx-Rx, то нормально работает?

 

Можно попробовать завтра диффпары перекрестить, чтобы ПК проверить.

А, чтобы так плату проверить, надо переписывать прошивку, делать генератор и проверятор пакетов.

 

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


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

Была похожая проблема. У меня резонатор стоял (не генератор, как у вас, ну и чип другой, хотя тоже марвеловский). Из-за ошибки в схеме резанатор был подключен к чипу через конденсаторы, которые на GND должны идти. Проходили все пакеты кроме самых длинных. Длинные обрезались как и в вашем случае. Предполагаю, что в моем случае имело место смещение тактовой, в результате которого буфер в PHY переполнялся на длинных пакетах. Попробуйте более точный генератор.

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


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

Да.

Promiscuous mode включён.

ОС Win 7.

Смотрели на разных ПК.

 

 

 

Дык там и ПЛИС другая.

 

 

 

Можно попробовать завтра диффпары перекрестить, чтобы ПК проверить.

А, чтобы так плату проверить, надо переписывать прошивку, делать генератор и проверятор пакетов.

А что мешает скомпилить для другой плис проект?

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


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

А что мешает скомпилить для другой плис проект?

 

Vivado, т.к. оно поддерживает ограниченное кол-во семейств.

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


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

Vivado, т.к. оно поддерживает ограниченное кол-во семейств.

Понимаю) Проект ведь Ваш тестовый не очень сложный, наверное. В ISE под спартан перепишите. Если на плате есть свободные пины от плис, то туда можно другого физика подцепить. Я на тестовых платах всегда вывожу на отдельный разъем неиспользованные пины плис. Если конечно, место есть. Когда все отлажено можно из платы выбросить, а можно и оставить

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


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

По ощущениям, у вас канал передачи влияет на канал приёма. Тут очень вероятна не правильная разводка платы и/или согласование с магнетикой(разъёмом)

По хорошему нужно смотреть разводку платы

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


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

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

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

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

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

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

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

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

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

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