|
Marvell 88E1111 обрезает пакеты |
|
|
|
Mar 29 2017, 10:06
|
Знающий
   
Группа: Свой
Сообщений: 614
Регистрация: 12-06-09
Из: рядом с Москвой
Пользователь №: 50 219

|
Добрый день.
Есть самодельная плата с 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 не увеличивается.
|
|
|
|
|
Mar 29 2017, 13:05
|
Знающий
   
Группа: Свой
Сообщений: 614
Регистрация: 12-06-09
Из: рядом с Москвой
Пользователь №: 50 219

|
Цитата(litv @ Mar 29 2017, 15:19)  Такой проблемы у нас нет и на 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.
|
|
|
|
|
Mar 29 2017, 19:46
|
Знающий
   
Группа: Свой
Сообщений: 614
Регистрация: 12-06-09
Из: рядом с Москвой
Пользователь №: 50 219

|
Цитата(eugen_pcad_ru @ Mar 29 2017, 21:10)  WireShark-ом смотрите? Да. Promiscuous mode включён. ОС Win 7. Смотрели на разных ПК. Цитата(andrewkrot @ Mar 29 2017, 22:39)  Попробуйте свою прошилку на какой-нибудь плате с другим PHY чипом. Дык там и ПЛИС другая. Цитата(iosifk @ Mar 29 2017, 17:16)  А если на проводах сделать заглушку Tx-Rx, то нормально работает? Можно попробовать завтра диффпары перекрестить, чтобы ПК проверить. А, чтобы так плату проверить, надо переписывать прошивку, делать генератор и проверятор пакетов.
|
|
|
|
|
Mar 30 2017, 09:22
|
Участник

Группа: Свой
Сообщений: 42
Регистрация: 24-12-04
Пользователь №: 1 658

|
Была похожая проблема. У меня резонатор стоял (не генератор, как у вас, ну и чип другой, хотя тоже марвеловский). Из-за ошибки в схеме резанатор был подключен к чипу через конденсаторы, которые на GND должны идти. Проходили все пакеты кроме самых длинных. Длинные обрезались как и в вашем случае. Предполагаю, что в моем случае имело место смещение тактовой, в результате которого буфер в PHY переполнялся на длинных пакетах. Попробуйте более точный генератор.
|
|
|
|
|
Mar 30 2017, 15:12
|
Местный
  
Группа: Участник
Сообщений: 306
Регистрация: 11-11-04
Из: Москва
Пользователь №: 1 106

|
Цитата(VladimirB @ Mar 29 2017, 22:46)  Да. Promiscuous mode включён. ОС Win 7. Смотрели на разных ПК.
Дык там и ПЛИС другая.
Можно попробовать завтра диффпары перекрестить, чтобы ПК проверить. А, чтобы так плату проверить, надо переписывать прошивку, делать генератор и проверятор пакетов. А что мешает скомпилить для другой плис проект?
|
|
|
|
|
Mar 30 2017, 16:52
|
Местный
  
Группа: Участник
Сообщений: 306
Регистрация: 11-11-04
Из: Москва
Пользователь №: 1 106

|
Цитата(VladimirB @ Mar 30 2017, 19:20)  Vivado, т.к. оно поддерживает ограниченное кол-во семейств. Понимаю) Проект ведь Ваш тестовый не очень сложный, наверное. В ISE под спартан перепишите. Если на плате есть свободные пины от плис, то туда можно другого физика подцепить. Я на тестовых платах всегда вывожу на отдельный разъем неиспользованные пины плис. Если конечно, место есть. Когда все отлажено можно из платы выбросить, а можно и оставить
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|