реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> Ethernet на ПЛИС, Tri-Mode Ethernet MAC + marvell 88e1111
iosifk
сообщение May 13 2014, 09:30
Сообщение #16


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Alexey_pashinov @ May 13 2014, 13:15) *
Вот я и сколняюсь к тому что передача в phy запрещена, это кнч странно, но других обяснений происходящему нет, и нужно изучать регистры конфигурации, что я и делаю

Так там же всего 16 основных регистров. А за передачу отвечает еще меньше...
Прочитать по MII и сюда выложить. Но только расписать словами, т.к. никто ковыряться в регистрах и битах не будет... А так, пока будете писать, то Вы и сами их выучите...


Цитата(Bad0512 @ May 13 2014, 13:18) *
Возможно ТС генерит некорректный пакет(битый CRC, неправильный dest MAC, wrong endianess, etc.), и этот пакет дропается на уровне MAC компутера.

сказано же ему было - делай широковещательный пакет и передавай его на заглушку...
А для осциллографа CRC значения не имеет...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Bad0512
сообщение May 13 2014, 09:47
Сообщение #17


Знающий
****

Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650



Цитата(iosifk @ May 13 2014, 16:30) *
сказано же ему было - делай широковещательный пакет и передавай его на заглушку...
А для осциллографа CRC значения не имеет...

Осциллографом залезть в контроллер Ethernet (они сейчас как правило интегрированные) на материнке проблематично будет.
Ну а в медном интерфейсе проблемно что-то вообще увидеть за исключением link pulses.
Можно передавать броадкасты, но при этом необходимо убедиться, что PHY на компе сконфигурена в promiscous mode.
Иначе она эти пакеты дропать будет.

Go to the top of the page
 
+Quote Post
doom13
сообщение May 13 2014, 10:28
Сообщение #18


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Alexey_pashinov @ May 13 2014, 10:47) *
включил режим loopback, tx также не работает, обратно отправленные мной пакеты присылать не хочет; есть мысли что нужно вручную устанавливать режим 1000base-t (но loopback и без этого вроде должен работать, для него нужно установить 0.15 - 1, 0.14 - 1 и скорость, что я и делаю), может у кого еще какие мысли есть?


Попробуйте включить Line Loopback 20.14 = 1 и посмотреть уйдёт ли принятый пакет обратно на ПК, вручную скорость не настраивал, всегда использовалось Auto-Negotiation и скорость выбиралась автоматом.


Цитата(Bad0512 @ May 13 2014, 12:47) *
Можно передавать броадкасты, но при этом необходимо убедиться, что PHY на компе сконфигурена в promiscous mode.
Иначе она эти пакеты дропать будет.


Бродкасты пройдут в любом mode, ну и за фильтрацию пакетов отвечает MAC уровень.

Сообщение отредактировал doom13 - May 13 2014, 10:32
Go to the top of the page
 
+Quote Post
iosifk
сообщение May 13 2014, 11:11
Сообщение #19


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Bad0512 @ May 13 2014, 13:47) *
Осциллографом залезть в контроллер Ethernet (они сейчас как правило интегрированные) на материнке проблематично будет.

ТС написал: " имеется отладочная плата Xilinx sp605"... О какой материнке речь? Любой сигнал на разъем для осцилла можно вывести, да и чип-скоп никто не отменял...
Вообще можно шахматку гнать на трансивер и чередовать их, чтобы PHY увидела окончание преамбулы и через заглушку смотреть, что PHY отдает данные в МАС...
На этом уровне никаких "пакетов", "адресов" и прочего еще не нужно...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Alexey_pashinov
сообщение May 13 2014, 13:20
Сообщение #20


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 6-03-14
Из: Зеленоград
Пользователь №: 80 823



В общем считываю регистры и смотрю их содержимое, вопросов возникает много. Начну с простого. в нулевом регистре есть бит сброса 0.15 и написано что после записи 1 просиходит сброс phy и этот бит автоматически устанавливается в 0. но когда я считываю этот регистр бит сброса попрежнему стоит в 1

Сообщение отредактировал Alexey_pashinov - May 13 2014, 13:26
Go to the top of the page
 
+Quote Post
doom13
сообщение May 13 2014, 13:27
Сообщение #21


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Alexey_pashinov @ May 13 2014, 16:20) *
В общем считываю регистры и смотрю их содержимое, вопросов возникает много. Начну с простого. в нулевом регистре есть бит сброса 0.15 и написано что после записи 1 просиходит сброс phy и этот регистр автоматически устанавливается в 0. но когда я считываю этот регистр бит сброса попрежнему стоит в 1

Вот тут какая-то ерунда, должен обнуляться. А для остальных регистров запись-чтение работает правильно?
Go to the top of the page
 
+Quote Post
Alexey_pashinov
сообщение May 13 2014, 13:31
Сообщение #22


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 6-03-14
Из: Зеленоград
Пользователь №: 80 823



Цитата(doom13 @ May 13 2014, 17:27) *
Вот тут какая-то ерунда, должен обнуляться. А для остальных регистров запись-чтение работает правильно?


Ну да, читает вроде правильно, я ведь не знаю что именно записано должно быть в регистрах, но судя по 0 регистру куда я вел запись он считывает то что и записал (хотя должен считывать тоже, только 15 бит ставить в 0)
Go to the top of the page
 
+Quote Post
iosifk
сообщение May 13 2014, 13:37
Сообщение #23


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Alexey_pashinov @ May 13 2014, 17:20) *
В общем считываю регистры и смотрю их содержимое, вопросов возникает много. Начну с простого. в нулевом регистре есть бит сброса 0.15 и написано что после записи 1 просиходит сброс phy и этот бит автоматически устанавливается в 0. но когда я считываю этот регистр бит сброса попрежнему стоит в 1

А сигнал сброс из ПЛИС на PHY снят?


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Alexey_pashinov
сообщение May 13 2014, 13:40
Сообщение #24


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 6-03-14
Из: Зеленоград
Пользователь №: 80 823



Цитата(iosifk @ May 13 2014, 17:37) *
А сигнал сброс из ПЛИС на PHY снят?


Нет, на phy подается '1' (при единице работает в обычном режиме) думаете в этом проблема?

Сообщение отредактировал Alexey_pashinov - May 13 2014, 13:42
Go to the top of the page
 
+Quote Post
sorok-odin
сообщение May 13 2014, 14:02
Сообщение #25


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 23-12-12
Пользователь №: 74 946



Цитата(Alexey_pashinov @ May 13 2014, 17:31) *
я ведь не знаю что именно записано должно быть в регистрах,

В регистре 2 находится код изготовителя, всегда читается 0x0141, проверьте.
Go to the top of the page
 
+Quote Post
doom13
сообщение May 13 2014, 14:10
Сообщение #26


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Alexey_pashinov @ May 13 2014, 16:40) *
Нет, на phy подается '1' (при единице работает в обычном режиме) думаете в этом проблема?

Тут нет проблем, так и должно быть. Единственная проблема с Hard Reset может заключаться в том, что после подачи питания микросхему надо какое-то время подержать в ресете (у нас на одной из плат была такая проблема), но у Вас, похоже, проблема не в этом, т.к. приём работает.
Попробуйте, работает ли loopback через PHY со стороны компа, ещё можно включить в PHY генератор пакетов, если и то и другое работает, то с передатчиком PHY всё нормально. Тогда смотрим ещё раз сечение MAC->PHY.


Цитата(Alexey_pashinov @ May 13 2014, 16:31) *
Ну да, читает вроде правильно, я ведь не знаю что именно записано должно быть в регистрах, но судя по 0 регистру куда я вел запись он считывает то что и записал (хотя должен считывать тоже, только 15 бит ставить в 0)

Попробуйте почитать reg2, должны получить 0х0141 и на reg3 можно чтение mdio потестить (биты 15-10 = 000011, биты 9-4 = 001100).
Go to the top of the page
 
+Quote Post
Alexey_pashinov
сообщение May 13 2014, 14:41
Сообщение #27


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 6-03-14
Из: Зеленоград
Пользователь №: 80 823



Спасибо, завтра прочитаю регистры и опробую режим loopback и тогда отпишусь
Go to the top of the page
 
+Quote Post
SFx
сообщение May 15 2014, 20:55
Сообщение #28


Знающий
****

Группа: Свой
Сообщений: 758
Регистрация: 11-07-05
Из: Понаехал (Мск)
Пользователь №: 6 688



Еще можете Wireshark применить.
Go to the top of the page
 
+Quote Post
Digi
сообщение May 29 2014, 01:08
Сообщение #29


Частый гость
**

Группа: Свой
Сообщений: 150
Регистрация: 20-08-04
Пользователь №: 529



Может немного не в тему, но долго бился с такой проблеммой. При передаче данных с компа на ПЛИС по UDP, пакеты приходили, а если ПЛИС их пытается отправить обратно, переставив МАС, IP и Порт, то до компа ничего не доходит, даже Сниффер ничего не видит. Оказалось все просто, ПЛИС должна была отработать ARP запрос и после этого пакеты стали проходить в обе стороны.
Go to the top of the page
 
+Quote Post
Alexey_pashinov
сообщение Jun 2 2014, 06:30
Сообщение #30


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 6-03-14
Из: Зеленоград
Пользователь №: 80 823



Извините что долго не отписывался, моя ошибка была в назначении пинов, перепутал tx_clk и gtx_clk, естественно передатчик неправильно тактировался и поэтому не работал. После этого все заработало, так же доделал UDP/IP блок, взяв проект с opencores, если кому-то интересны какие-то детали по реализации могу отписаться что и как делал)

Кстати проект 1G eth UDP / IP Stack взятый с opencores гигабитный, интересно было бы узнать как заставить работь UDP/IP на 100 или 10 Мбит/с?
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 04:05
Рейтинг@Mail.ru


Страница сгенерированна за 0.01507 секунд с 7
ELECTRONIX ©2004-2016