Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Конфигурация ml507 PHY Marvell 8e1111 для MII
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Mar_K
Приветствую, коллеги!

Моя задача проста - освоить 10/100 ethernet. Это маленькая часть будущего девайса. Это первый опыт работы с Ethernet. Есть плата ML507 с установленным PHY Marvel 8E1111. Последняя славится отсутствием документации в свободном доступе. Однако, нашел в сети распиновку и описание регистров. Написал Management Iface -- пишет и читает нормально (анализатором смотрю, ну и поведение микрухи начинает меняться). Не могу только понять что именно и в какой регистр положить. Насколько я понял, регистры на странице 0 относятся к режиму меди, что мне и нужно. С компа идут пакеты на плату, судя по мигающему светодиоду RX, значит должен менять свое состояние и вывод RX_DV, и состояние выводов данных MII_RXn. Однако анализатор говорит, что там тихо. Вобщем уже неделю читаю описание регистров и пробую разные варианты, но похоже, что этого зверя так без бубна не взять. Потому, хочу спросить у опытных людей. Какую конфигурационную последовательность нужно скормить микрухе, чтобы чудесным образом данные побежали по MII мне в плисину и чтобы скорость сама определялась 10 или 100?



PS: Честно прочел 50 страниц форума. По этому PHY инфы очень мало. Ну и гуглил недели три точно.
DuHast
Цитата(Mar_K @ Dec 8 2011, 20:30) *
С компа идут пакеты на плату, судя по мигающему светодиоду RX, значит должен менять свое состояние и вывод RX_DV, и состояние выводов данных MII_RXn. Однако анализатор говорит, что там тихо. Вобщем уже неделю читаю описание регистров и пробую разные варианты, но похоже, что этого зверя так без бубна не взять. Потому, хочу спросить у опытных людей. Какую конфигурационную последовательность нужно скормить микрухе, чтобы чудесным образом данные побежали по MII мне в плисину и чтобы скорость сама определялась 10 или 100?

О том что пакеты тдут вы судите по мигающему светодиоду или вы отправляете их к компа?
Цитата(Mar_K @ Dec 8 2011, 20:30) *
...чтобы скорость сама определялась 10 или 100?

включить режим autonegotiation
AlphaMil
Плата sp605 также начинаю работать с сетью, у меня вообще нет скрипта для конфигурирования марвелла. После включения сразу начинаю принимать пакеты. Но вот отправлять не получается. На выходе плис сигналы все нормальные, но хост фрейм не принимает.
vitan
Цитата(Mar_K @ Dec 8 2011, 21:30) *
Последняя славится отсутствием документации в свободном доступе.

Если начинать с поиска, то это обычно помогает. По всему интернету даже ходить не надо, достаточно по форуму.
Mar_K
Цитата(DuHast @ Dec 8 2011, 21:54) *
О том что пакеты тдут вы судите по мигающему светодиоду или вы отправляете их к компа?

включить режим autonegotiation



Да, пакеты идут с компа, а по мигающему светодиоду я делаю вывод, что микросхема их принимает.

Если начинать с поиска, то это обычно помогает. По всему интернету даже ходить не надо, достаточно по форуму.

Не писать очевидного помогает внимательное чтение сообщений. Как раз с форума и скачал описание регистров.
iosifk
Цитата(Mar_K @ Dec 8 2011, 21:30) *
PS: Честно прочел 50 страниц форума. По этому PHY инфы очень мало. Ну и гуглил недели три точно.


Если бы Вы усердно рыли, то давно бы нашли и мои рекомендации и мои статьи на сайте.
Делайте так:
ставьте заглушку "сам на себя".
по служебному интерфейсу должны читаться первые 16 регистров, которые у всех трансиверов вообще одинаковые. Устанавливайте режим допустим 100 М и запретите автосогласование.
потом отправляйте широковещательный пакет. Он безусловно должен приниматься МАСом. при этом вы всегда сможете засинхронизироваться от передачи...
А так, если сразу воткнуться в общую сеть, то Вас пакеты от сервера будут мучить каждую секунду. И входной буфер будет ими забиваться...
Mar_K
Цитата(iosifk @ Dec 9 2011, 10:09) *
Если бы Вы усердно рыли, то давно бы нашли и мои рекомендации и мои статьи на сайте.
Делайте так:
ставьте заглушку "сам на себя".
по служебному интерфейсу должны читаться первые 16 регистров, которые у всех трансиверов вообще одинаковые. Устанавливайте режим допустим 100 М и запретите автосогласование.
потом отправляйте широковещательный пакет. Он безусловно должен приниматься МАСом. при этом вы всегда сможете засинхронизироваться от передачи...
А так, если сразу воткнуться в общую сеть, то Вас пакеты от сервера будут мучить каждую секунду. И входной буфер будет ими забиваться...



Пока решил не ставить MAC, смотрю активность сигналов MII. Я правильно понимаю, что на этом уровне проходят все фреймы? Значит на MII должна быть активность?
iosifk
Цитата(Mar_K @ Dec 9 2011, 10:28) *
Пока решил не ставить MAC, смотрю активность сигналов MII. Я правильно понимаю, что на этом уровне проходят все фреймы? Значит на MII должна быть активность?

Да, если они правильно сконфигурирована и не находится в сбросе или повер-дауне каком-либо. Но MII-служебный интерфейс я бы сделал. И по нему всегда можно проверить что и как там с трансивером...
Mar_K
Цитата(iosifk @ Dec 9 2011, 13:01) *
Да, если они правильно сконфигурирована и не находится в сбросе или повер-дауне каком-либо. Но MII-служебный интерфейс я бы сделал. И по нему всегда можно проверить что и как там с трансивером...


В повер дауне не находится, читал состояние битов регистра 0. Иначе светодиоды бы не моргали.
Подключил анализатор к RXD0 ... RXD3. Вижу активность только на RXD0...RXD2, а на RXD3 очень короткий импульс проскакивает длительностью 10ns. Делаю вывод, что микруха принимает фреймы, однако, она сконфигурирована не для работы по MII. Ведь при работе по MII должны идти биты данных по RXD0..RXD3? Есть некий набор битов, в регистре 27, называется hwcfg_mode. Но я не пойму что туда записать, чтобы заработал MII. Или я вообще не туда смотрю?

Нашел строку в описании регистров, что если в hwcfg_mode записать 1111, то получим заветный MII. Чтож, отправляю туда заветные единички, делаю soft reset, как написано. Ничего не меняется. Хотя по светодиодам похоже что ресет выполняется (они сначала гаснут все, а потом загорается LED_100 и моргает LED_RX).
VladimirB
Цитата(Mar_K @ Dec 9 2011, 13:44) *
В повер дауне не находится, читал состояние битов регистра 0. Иначе светодиоды бы не моргали...

А вы клок подали 25МГц на MII?
Mar_K
Цитата(VladimirB @ Dec 9 2011, 22:22) *
А вы клок подали 25МГц на MII?


Разве в режиме МII его должен не PHY генерировать? Если вы про тактирование самой микрухи, то она 25 МГц кварцем затактирована.
Mar_K
Короче, все правильно работает, это я неправильно анализатор подключилsm.gif Микруха хардварно уже сконфигурирована была на MII, так что в регистры ничего не писал. Теперь все работает. Спасибо всем.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.