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

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

просто волосы дыбом встают....

Лично у меня волосы дыбом встают от описаной картины :). Даже ума не приложу, что надо было сотворить c бедным контроллером для тактого. Из всего перечисленного, действительно, с временными параметрами у NXP в подавляющем большинстве случаеев в документации просто никак :(. Приходится заниматься лабораторными работами на отладочных платах.

 

 

Посмотрел "модный" KSZ8041 и "зрелый" KS8721. У них Tsu - те же самые 4нс, от DM9161 никак не отличаются....

Естественно не отличаются и проблема не в PHY или LPC.

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


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

Лично у меня волосы дыбом встают от описаной картины :). Даже ума не приложу, что надо было сотворить c бедным контроллером для тактого.

Да JTAG - вообще вещь темная - полно всяких недокументированных регистров - у каждого производителя свой набор внутренних "примочек". Я с этим сбоем пытался разобраться - в принципе, мой монитор просто непрерывно читает регистр 4 ICE (Debug Comms Control Register), когда флажок готовности DCC появляется - считываются собственно принятые данные . Цикл чтения регистров ICE не особо сложный, но там есть фаза вывода адреса и типа операции. И что-то по цепям (если трогать плату рукой) "проскакивает" и цикл чтения ICE заканчивается не совсем так как положено. Состояние TAP-контроллера при этом вроде адекватное - все документированное нормально доступно без сброса TAP-а. Работа JTAG полностью восстанавливается перезаписью IR и регистра номера цепочки. Такое иногда у меня бывает на разных процесорах, но почему у LPC при этом отпадает EMAC RAM - хз. Наверное, чтобы дать мне повод поворчать :).

Если от аппаратных "помех" полностью избавляться - то, имхо, нужен JTAG с гальваноразвязкой, наверное они бывают, но я таких не видел, сам спокойно пользую обычный альтеровский байт-бластер. Баг "с отвалом" бывает не особо часто (особенно если руками не лезть куда не надо :)) , при отладке вполне терпимо, так особо напрягаться с разработкой спец.адаптера смысла не вижу пока.

 

Из всего перечисленного, действительно, с временными параметрами у NXP в подавляющем большинстве случаеев в документации просто никак :(. Приходится заниматься лабораторными работами на отладочных платах.

Ну вот я тоже позанимался - вижу опережение данных перед тактовой на 6нс - не работает. Просмотрел буквально всю смысловую часть пакета (паддинг там однородный - смотреть все данные нечего - они не меняются) на TXD0/TXD1/TXEN - везде есть четко минимум 5.8нс, то есть ни помех и ничего такого подозрительного - а пакет "не прошел". На 100% в трассировке, конечно, уверенным быть нельзя - буду еще играться, но она сделана вполне добротно (даже не мной, а проинструктированным коллегой - в две головы думали :)) - не в первый раз сотня/полусотня МГц на двухслойке подымается.

Естественно не отличаются и проблема не в PHY или LPC.

Не знаю, имхо, LPC тоже "хорош" - иметь Tpd 12-14нс на 50МГц интерфейсе - не камильфо, приходится из-за этого ерундой страдать. Напишу-ка я еще пару "злобных" писем в NXP :) - попробую недостающие цифры с них сторбить.

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


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

..иметь Tpd 12-14нс на..

Вопрос в том, чем все это смотрели? Осциллограф гигагерцовый, щупы активные....? В противном случае видимое имеет сильные отличия от реальности.

 

 

..спокойно пользую обычный альтеровский байт-бластер.

Это следует понимать, как нечто самодельное функционально совместимое с LPTшным байтбластером?

Подключенное в лучшем случае 10pin шлейфом в 20pin стандартный ARM JTAG? Или экономия еще больше - в стиле http://electronix.ru/forum/index.php?showtopic=54883&hl= :(?

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


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

Вопрос в том, чем все это смотрели? Осциллограф гигагерцовый, щупы активные....? В противном случае видимое имеет сильные отличия от реальности.

Увы, скоп скромный - с полосой всего лишь 350МГц и на 2Gs, щупы обычные. В абсолютных значениях сигнала может быть оно и отличается от реальности, но дельты видно отлично. А щупы из комплекта, ну не фонтан, но и не столь уж плохи - я ими DDR-333 шину данных отлаживал - нормально, жить можно. Ну и экспериментальный факт - добавили задержку 3нс (BTW, мой неидеальный скоп это четко показал) - и все жужжит. И Davicom в даташите указал Tsu, а вот NXP свой Tpd стыдливо зажал. Пока верим Davicov-у :) - потому как больше нечему верить. Ответит NXP - обсудим.

Это следует понимать, как нечто самодельное функционально совместимое с LPTшным байтбластером?

Подключенное в лучшем случае 10pin шлейфом в 20pin стандартный ARM JTAG? Или экономия еще больше - в стиле http://electronix.ru/forum/index.php?showtopic=54883&hl= :(?

Угу. Cкорее мелкосерийное, уже штук 200-300 раздали за 10 лет. И экономия - то само собой - "Наташа, Вас никогда не били мокрым веслом по голому заду?" - а меня, случается, за лишние резисторы-конденсаторы 0805 "бьют" :biggrin:. И "плебейские" SAM7xx работают по этому "экономическому" разъему практически без сбоев - хоть при разработке, хоть серийно :biggrin: , а вот "аристократические" LPC - как-то сбоят :crying:.

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


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

Ну вот я тоже позанимался - вижу опережение данных перед тактовой на 6нс - не работает.

 

Мне немного помог конденсатор 15пик на тактовую и включенная подтяжка этого сигнала в LPC2368.

НО все это шаманство, день от дня работает по-разному. Платы с starterkit (8 шт) с LPC2378 и KS8721BL работают как часы. То ли я так развел неудачно, то ли 2368 и 2378 EMAC модули различатся ???

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


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

Мне немного помог конденсатор 15пик на тактовую и включенная подтяжка этого сигнала в LPC2368.

НО все это шаманство, день от дня работает по-разному. Платы с starterkit (8 шт) с LPC2378 и KS8721BL работают как часы. То ли я так развел неудачно, то ли 2368 и 2378 EMAC модули различатся ???

С конденсатором как раз понятно - затянулся немного фронт, пороги переключения у двух отдельных чипов (9161 и LPC) разные, и зависят от кучи факторов - вот времянка немного и "сыграла" .

А какой именно "старперкит", если не секрет? Печатная плата там случайно не 4-х+ слойная?

Я сейчас пробую именно на 2378 - симптомы те же самые что и у Вас. Есть платы и на 2368 - могу и их погонять (трассировка, правда, там совсем другая - эксперимент не слишком корректный будет), но не думаю, что 78-ые принципиально от 68-ых отличаются.

Посмотрел даташит на SAM7X - у них Tpd по данным ETXxx до 15.9нс. Теперь я понимаю почему у них в Errata на SAM7X есть скромный такой пунктик "RMII is not functional" :). А вот Tsu по ERXxx/ERDV - достаточно хороши - 2нс . Глупо, конечно, экстраполировать данные от SAM7 на LPC (ну ясен пень - SAM7 в тыщу разов круче :biggrin:) , но технология более-менее одинаковая, будем надеятся что прием со сдвинутой RMII-тактовой заработает на LPC23xx нормально. А там может и NXP чего хорошего по времянке отпишет.

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


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

А какой именно "старперкит", если не секрет? Печатная плата там случайно не 4-х+ слойная?

SK-LPC2378-S300

плата двухслойная

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


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

SK-LPC2378-S300

плата двухслойная

Да, там дизайн платы любопытный - двухсторонний монтаж, CPU и PHY практически один над другим с разных сторон платы - бутербродиком.

Я запустил, наконец, EMAC на прием. Tpd у DM9161 на линиях ERXD[1..0] примерно 13нс, задерживаем тактовую на DM9161 на 3нс, получаем Tsu на LPC по входам ERXD[1..0] примерно 4 нс. При этом все устойчиво работает - и прием и передача. Полдня пинговалось 1500-байтовыми пакетами - 0% loss.

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


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

Да, там дизайн платы любопытный - двухсторонний монтаж...

Eсть несколько плат LPC24/23 двуслойных с односторонним монтажем и при этом без всяких проблем.

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


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

Eсть несколько плат LPC24/23 двуслойных с односторонним монтажем и при этом без всяких проблем.

Угу. Я пока "для себя" проблему так разложил - 30% трассировка, 70% проблема Давикома.

Трассировка у нас на этой проблемной плате неидеальная - есть что поулучшать, но и не беспредел - все возвратные земельки/питания в наличии имеются, раздача клоков выравнена и согласована - никаких "левых: отражений. А вот Давиком - чип достаточно древний и с достаточно мутным даташитом, да и скоп показывает, что вроде как все требования Tsu/Th выполняются.

Сейчас будет еще одна итерация платы с 9161 (время жмет - не дали добро на быстрый перепрыг на Макрель) - там с длиной тактовых цепей и землями поиграемся - в свете результатов экспериментов, ну а потом - вплотную займемся Макрелью.

NXP на вопрос по Tpd/Tsu/Th уже полторы недели молчит, на ранее заданные вопросы по MII management - три недели молчок. Подтверждение на вопросы пришло - типа рассматривают. Ну OK, еще подождем - все пока обычно - как для бесплатного саппорта.

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


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

Да, там дизайн платы любопытный - двухсторонний монтаж, CPU и PHY практически один над другим с разных сторон платы - бутербродиком.

Я запустил, наконец, EMAC на прием. Tpd у DM9161 на линиях ERXD[1..0] примерно 13нс, задерживаем тактовую на DM9161 на 3нс, получаем Tsu на LPC по входам ERXD[1..0] примерно 4 нс. При этом все устойчиво работает - и прием и передача. Полдня пинговалось 1500-байтовыми пакетами - 0% loss.

 

А теперь попробуйте погреть процессор или собрать в корпус и поганять. Только проц нагревается до 40-50 - идет пропадание пакетов. Пришлось мне ставить вентилятор - не мог сдать проект вовремя...

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


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

А теперь попробуйте погреть процессор или собрать в корпус и поганять. Только проц нагревается до 40-50 - идет пропадание пакетов. Пришлось мне ставить вентилятор - не мог сдать проект вовремя...

Погрел - нормально все. "Прогнал" три платы примерно в диапазоне 5..70C. Плата с задержкой тактовой на PHY работает при любой температуре 5..70. Еще одна плата (без доработки для задержки) - работает примерно 20..70, вторая плата (тоже без задержки) - 35..70. В моем случае нагрев только помогает :). Прием пакетов работает везде и при любой температуре.

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


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

В общем так... После многочисленных тестов на трех видах разводки плат с DM9161AE, LPC2368 и LPC2387 сделал вывод - DM9161 для LPC НЕ ПОДХОДИТ, работа всегда неустойчива, настроить требует больших затрат, при этом работоспособность и надежность не гарантируется. Одни платы работают только на 10М, другие зависят от температуры, третьи вообще не обмениваются по RMII (настройка по MDIO выполняется). Перешел на KS8721BL - и забыл о всех этих проблемах, на 100М валит хороший поток, ничего не греется.

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


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

В общем так... После многочисленных тестов на трех видах разводки плат с DM9161AE, LPC2368 и LPC2387 сделал вывод - DM9161 для LPC НЕ ПОДХОДИТ, работа всегда неустойчива, настроить требует больших

А у нас - получилось :). Схема трассировки клока RMII такая - разветвление возле генератора 50МГц, потом стоят два резистора по 27Ом, и цепь от генератора на DM9161 длинее на 25-30 см чем до процессора. Все работает на нескольких разных платах - 2368/78/88 и приразных температурах. Второй вариант - цепи тактовой примерно одинаковые, резисторы - там же (возле генератора), но на вход тактовой RMII процессора добавить 20-30пФ - тоже работает - выходные данные просто "переезжают" на следующий период. Затягивать фронты на DM9161 - нельзя, иначе его внутренняя PLL периодически улетает не пойми куда, а вот LPC - гораздо лояльней к фронтам. Но по итогам - да, согласен - 9161 с LPC "не дружит", в серии тоже переходим на Micrel.

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


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

прочитал этот топик, думаю, стоит ли использовать LPC2378+KS8721 или LAN8700 для ethernet-задач..сейчас надо начинать проект, вот и думаю, что бы влепить...

то ли рискнуть LPC23, то ли sam7x, то-ли что-нибудь от ST...

 

я так понимаю, что более стабильно работает MII из за низкой частоты, прочитав тему, понял,что проблеммы из за Tpd/Tsu/Th

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

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


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

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

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

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

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

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

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

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

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

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