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

LPC2368 + D9161A (RMII) - не передает пакеты в сетку

Сделал платку на LPC2368 и D9161A. Пробовал два стека - uIP и Nichelite. Линк есть, ARP пакеты принимает, передает назад в PHY - и ничего - компьютер не ловит! Может ошибся в подключении (не работал с D9161A в RMII режиме) - помогите! Сброс и PWRDOWN заведены на ноги, там все нормально. Инициализация портов правильная, проверял много раз.

Включал две платы уже, та же история...

Подключение

LPC2368_______________D9161A

P1.0(ENET_TXD0)_______TXD0(20)

P1.1(ENET_TXD1)_______TXD1(19)

P1.4(ENET_TX_EN)______TXEN(21)

P1.8(ENET_CRS)________RXDV(37) - вот это вызыват вопросы! Смотрел datasheet и AS9200.

P1.9(ENET_RXD0)_______RXD0(29)

P1.10(ENET_RXD1)______RXD1(28)

P1.14(ENET_RX_ER)_____RXER(38)

P1.15(ENET_REF_CLK)___XT2(42)=50МГц

P1.16(ENET_MDC)_______MDC(24)

P1.17(ENET_MDIO)______MDIO(25)

______________________RXEN(31)=1

______________________COL/RMII(36)=1

 

:help:

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


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

Мда, а проблема совсем не в этом. Принудительно переключил в 10Мбит - все заработало. Но - нужно 100. Понижение питания аналоговой части до 2,5В (рекомендовали для DM9161AE) эффекта не дало. Трансформатор - J00-0065NL(PULSE), на 100Мбит. Конденсаторов хватает. Линк устанавливается всегда, прием пакетов в процессор есть, передача в PHY тоже - а потом тишина. Подскажите, где смотреть?

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


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

Настораживает фраза:

Понижение питания аналоговой части до 2,5В (рекомендовали для DM9161AE) эффекта не дало.

 

У DM9161A ведь встроенный 2.5В источник. И выход немного не так подключается, как в DM9161E.

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


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

Настораживает фраза:

У DM9161A ведь встроенный 2.5В источник. И выход немного не так подключается, как в DM9161E.

Это я упустил, сделал по привычке.

Выпаял индуктивность, теперь AVDD ~ 2.6В

История та же, 10М работает, 100М - нет.

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


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

А в среднюю точку 50Ом резисторов на TX AVDD не заводится случайно по привычке?

Нет, это я посмотрел, AVDD завел только на средние точки трансформаторров. Правда, вместо 49.9 поставил 51 ом, в тайванских свичах тоже 51 стоит. Это может радикально влиять на неработоспособность 100М?

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


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

Это может радикально влиять на неработоспособность 100М?

Радикально не может. А если записать 0x1785 в регистр 0x10 PHY и попробовать посылать пакеты на вход?

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


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

Заработало. Взял третью плату - сделел как по даташиту - и 100М пошли пинги.

Так что звиняйте за беспокойство, спасибо за подсказку! Всегда нужно читать последние даташиты :) !

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


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

Заработало. Взял третью плату - сделел как по даташиту - и 100М пошли пинги.

Так что звиняйте за беспокойство, спасибо за подсказку! Всегда нужно читать последние даташиты :) !

 

Мда, а проблема совсем в другом. 100М сбоит или совсем не работает - когда перегревается сам процессор LPC2368. Проверено многократно, локально нагревая маленьким феном различные микросхемы (и кварцы тоже!). Немного улучшило картину 15пик, поцепленных на тактовый сигнал 50МГц. Поотключал в процессоре неиспользованную периферию, все входы-выходы особо не нагружены. И все-таки - нагреваю где-то до 50 градусов саму LPC - пошли сбои пинга. Подскажите, где копать?

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


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

Продолжу тему.

У меня тоже LPC2368/78 + DM9161AE, стек свой, успешно откатанный на SAM7X + DM9161E/AE. Линк на 100М успешно подымается, запускаю тест - передача 100 коротких self-ARP - на трех платах ведет себя по-разному - на комп(пробовал свичи/маршрутизаторы/сетевухи) приходит от 0, ~30%, ~90% пакетов. Четыре дня рвал на себе волосы - все грешил на 9161 и аналоговую часть - хотя опыта тут достаточно много наработано, сигналы в парах красивые - амплитуда отличная, согласование отличное. Перелопатил и перепахал тотально все - не работает нормально.

По мере наблюдений выяснилось, что с прогревом пропадание пакетов уменьшается и со временем почти 100% начинают проходить на всех трех экспериментальных платах.

Сейчас вот провел постой эксперимент - выложил самую глючную плату за окно (~ +5C сегодня).

- платка полежала за окном, потом запустил серию из 100 пакетов - принято 0.

- опять за окошко, снова серия, но при этом феном подогреваем 9161+трансформатор - принято 0.

- за окошко, серия, феном греем генератор 50МГц + 9161 - принято 0.

- за окошко, серия, феном греем 2378 - оп-па - пошли пакеты!

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

Ну и как это понимать? Все Tsu/Th промерены - все согласно документации, с хорошим запасом, тактовая 50МГц тоже красивенькая. Сейчас вот буду пытаться сам пакет на RMII при помощи FPGA сграббить (осциллографом тяжеловато минимальные 576 бит прокрутить, а анализатора у меня нет).

Чего я это все пишу? Да вопрос у меня есть - как там 23xx с другими PHY работает - все сразу и стабильно на 100М заводится? (С 10-кой и у меня все OK)

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


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

Да вопрос у меня есть - как там 23xx с другими PHY работает - все сразу и стабильно на 100М заводится? (С 10-кой и у меня все OK)

Совершенно нормально LPC2378 работает на любых скоростях и разрешенных температурах RMII от Micrel. Всякие шаманства описанные предыдущим оратором с кондерами на 50MHz прежде всего наводят на мысль, что разводили все левой ногой, а 50/100MHz это уже вполне серьезно.

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


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

Всякие шаманства описанные предыдущим оратором с кондерами на 50MHz прежде всего наводят на мысль, что разводили все левой ногой, а 50/100MHz это уже вполне серьезно.

Господа, извините, конечно, под рукой нет сейчас даташита на 2368, но возможно ли ему подавать внешний тактовый сигнал 50МГц? Может только до 24?

Изменено пользователем Altemir

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


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

Господа, извините, конечно, под рукой нет сейчас даташита

на 2368, но возможно ли ему подавать внешний тактовый сигнал 50МГц?

А причем тут тактовая ядра/PLL LPC? 50MHz это тактировка RMII интерфейса на 100Mbit.

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


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

Еще немного информации.

Поставил я тактовый буфер типа PCK2002 на тактовую 50МГц, развязать тактовые сегменты, так сказать (у 9161 мутноватая тактовая схема - 50МГц надо подавать на ВЫХОД генератора). Для начала тупо подал тактовые на CPU и PHY с выходов буфера. С тем же результатом - сеть не работает. OK, буфер вносит задержку примерно 3нс, поиграемся с Tsu/Th. Оп-па - если тактовую, подаваемую на DM9161, задержать на эти самые 3нс - все начинает прекрасно работать, и сразу "c мороза", без всякого прогрева.

Итого, мое имхо - в даташите на 9161 написано Tsu для сигналов TXD1/0, TXEN 4нс, реально скоп показывает минимум 5.8нс (по уровням 20/80). И этого оказывается недостаточно - возможно, помехи какие-то сдвигают время переключения, или в даташите бред (там есть еще несовпадающие с реалом места, так что исключить бред 100% нельзя). Задержка тактовой на DM9161 кардинально решает ситуацию с передачей. Но вот что там будет с приемом - пока непонятно - в даташите на LPC23xx я не нашел информацию по Tsu/Th для RMII. Попробую прием практически (допишу вот MAC-драйвер), а вот в серии придется, видимо, посмотреть в сторону Micrel-а.

P.S. Всем спасибо за ответы.

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


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

Посмотрел "модный" KSZ8041 и "зрелый" KS8721. У них Tsu - те же самые 4нс, от DM9161 никак не отличаются, так что не факт что на моей плате KSxxx заработают. Поиграюсь еще немного с трассировкой.

А вообще NXP - "маладцы" - никакой информации в даташите насчет времянок RMII нет - на Tsu, ни Th, ни Tod. Намерянное мной Tod для LPC2378 - 12-14нс - вывод по RMII "впритык" получается, если где хоть малейший косячок - имеем проблему.

До этого еще ковырялся с MDIO/MDC - там тоже времянки у LPC "сказочные" - в фазе вывода обеспечивает для PHY минимальнейшие Tsu порядка 10нс - короче LPC все время "по лезвию бритвы ходит".

Еще при обмене по MDIO/MDC в MIND периодически вылазит бит "MII link fail" при чтении регистра 1 от PHY. Причем все остальные регистры работают без проблем. И из "фатального" регистра 1 данные нормально и правильно, но вот бит сбоя вылазит. Записал осциллографом нормальный цикл обмена и цикл с установленным битом сбоя - никаких отличий нет. Написал в NXP насчет разъяснения значения бита - третью неделю "морозятся". Пришлось на этот бит ошибки пока забить - также сделано и в коде Keil/Micrium/Niche. Еще MDIO/MDC не обнаруживает отсутствие стартового бита в ответе - на SAM7 было удобно автоматически сканировать шину MDIO по адресам, теперь приходится полагаться только на читаемый ID.

Далее - JTAG у LPC23xx достаточно нестабильный. Я пользую терминальную отладку по DCC много лет - S3C44, S3C2410, IXP42x, PXA3xx, SAM7xx, BGB203 - все работают замечательно на том же софте и тех же адаптерах, а вот у 23-го при простом мониторинге DCC иногда вылазит какая-то хрень. Причем проблема явно аппаратная - если плату не трогать - тесты сутками крутятся, но стоит ее потрогать руками - тут же слетает. И подтяжки все на входах JTAG есть, и частоты входные не очень большие, и трассировка класса "не первый год замужем", а вот периодически слетает и все. Причем, сам процессор работает нормально и не сбрасывается, программа продолжает работать, слетает именно сам ICE/DCC - переинициализируешь по JTAG - все продолжается, программа сбоя даже не замечает. При отладке эзернета еще чудная вещь вылезла - при таком сбое по JTAG напрочь отваливается EMAC RAM. Все регистры EMAC-а доступны, все работает, а вот 16K памяти EMAC - просто нет. PCONP тут не причем - не помогает даже сброс-установка 30-го бита в PCONP, также не помогает сброс WDT - только "честный" аппаратный сброс через внешний вход. Классный такой баг - в сетевом стеке начинают разнобразные ассерты сыпаться - просто волосы дыбом встают, почти два дня на эту ерунду убил :( - мысль об отказе памяти даже в голову прийти не могла.

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


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

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

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

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

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

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

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

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

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

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