Есть плата с LPC2478 и DP83848 в качестве PHY.
Разводил не я, но что сразу не нравится:
1. Разводка PFBOUT на PFBIN (рекомендовано применить полигон)
Нажмите для просмотра прикрепленного файла
Напряжение здесь 1.7V, вроде в пределах.
2. Разводка TX+/- и RX+/- от PHY к трансформатору (рекомендовано тянуть дифф. пары)
Нажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файла
Разрывов по земле/питанию во внутренних слоях нет
3. Питание 3.3V сделано единым на всю плату (LPC, PHY, пара SHARC + всякая мелочевка вроде FLASH памяти, интерфейсов и т.п.)
Как минимум, я бы запитал PHY через фильтрующие дроссели.
Изначально применен интерфейс RMII.
Мой тест: формирую широковещательный ARP запрос, отсылаю, пытаюсь получить его обратно.
1. Ставлю loopbak в MAC контроллере. Все работает ОК.
2. Ставлю loopbak в PHY. Пакеты возвращаются корректно только на 10 МБит, на 100 - бьются.
3. Внешний loopback кабель. 10 МБит - ОК, 100 - пакеты бьются.
4. Линк с внешним оборудованием поднимается только на 10 МБит, но пакеты не проходят.
Меняю интерфейс на MII.
Все три loopback-а работают. И на 10 МБит и на 100 МБит. Все пакеты возвращаются в том виде, в каком уходили.
Длина внешнего loopback кабеля не имеет значения - метр или 10 - работает.
Внешнее оборудование также, линк если и поднимает, то только на 10 МБит, но пакеты не идут.
Свитч HP докладывает о corrupted пакетах.
Собственно вопрос. Насколько критична разводка в данной ситуации (расстояния LPC - PHY - транс) 1-2 см?
Почему тогда на кабель loopback все работает?
Как вариант - неточная частота задающего генератора - типа PHY сам себя видит, но другие не хотят.
Генератор взял в пределах допусков - 50ppm.