Koctix 0 3 ноября, 2023 Опубликовано 3 ноября, 2023 · Жалоба Всем привет, пытаюсь организовать Ethernet на плате KC705 с помощью интерфейса MII, на ней стоит PHY marvel 88E1111. Приемник сделать уже получилось, работает нормально, я принимаю пакеты из сети, пишу их в FIFO и оттуда по UART передаю на компьютер, и могу посмотреть, как выглядит пакет начиная от преамбулы и заканчивая CRC. Но вот передатчик сделать так и не получилось, светодиод при отправке пакета моргает (он управляется самим PHY), но никакого пакета Wireshark не видит, кроме того, у меня есть вторая плата KC705 и при соединении их между собой вторая плата также не видит никакого пакета, и сам PHY не моргает светодиодом, указывающим на прием какого-то пакета из сети. Соединяю я плату с пк или с другой платой через свич, который работает на 100 мбит/сек, так как никакую конфигурацию для PHY не задаю (кроме конфигурации джамперами на плате) и она при соединении выбирает скорость максимальную возможную, но я пытался сделать хотя бы MII, прежде чем переходить на GMII. Как решить проблему не знаю, может все-таки надо что-то конфигурировать прежде, чем пытаться отправить пакет, MDIO я вообще не подключаю к PHY, но не понятно зачем тогда микросхема моргает светодиодом при отправке. Пытался также принимаемый пакет сразу отправить назад без каких-либо изменений, Wireshark все равно увидел только один пакет (отправленный с компьютера). Может кто-то сталкивался с таким или может подсказать в какую сторону копать. Прилагаю модуль передатчика и модуль с описанным тестовым пакетом. Заранее спасибо! MII_tx.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jackov 1 3 ноября, 2023 Опубликовано 3 ноября, 2023 · Жалоба У marvel 88E111 дофига и больше настроек, может что-то упустили? И ещё у него есть особенность, он не может работать с кросс-кабелем... или с прямым. Я уже не помню. В общем он работает только с кабелем одного типа. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BSACPLD 9 4 ноября, 2023 Опубликовано 4 ноября, 2023 · Жалоба 14 hours ago, Jackov said: У marvel 88E111 дофига и больше настроек, может что-то упустили? И ещё у него есть особенность, он не может работать с кросс-кабелем... или с прямым. Я уже не помню. В общем он работает только с кабелем одного типа. Не вводите людей в заблуждение. 88E1111 прекрасно работает как с прямым, так и с кросс кабелем. Вот пример правильной инициализации 88E1111 для RGMII: case PHY_ID_88E1111: { MDIO_PHY_ADDR = PHY_ADDR_88E1111 ; uint16_t data ; data = rd_mdio (0) ; data |= ((1<<12) | (1<<8)) ; data &= ~((1<<14) | (1<<11) | (1<<10)) ; wr_mdio (0, data) ; data = rd_mdio (4) ; data |= ((1<<8) | (1<<6)) ; data &= ~((1<<10) | (1<<7) | (1<<5)) ; wr_mdio (4, data) ; data = rd_mdio (9) ; data |= ((1<<9)) ; data &= ~((1<<15) | (1<<14) | (1<<13) | (1<<8)) ; wr_mdio (9, data) ; data = rd_mdio (16) ; data |= ((1<<15) | (1<<14) | (1<<13) | (1<<12) | (1<<6) | (1<<5)) ; data &= ~((1<<4)) ; wr_mdio (16, data) ; data = rd_mdio (27) ; data &= ~((1<<3) | (1<<2) | (1<<1) | (1<<0)) ; data |= ((1<<3) | (0<<2) | (1<<1) | (1<<0)) ; wr_mdio (27, data) ; data = rd_mdio (20) ; data &= ~((1<<7) | (1<<1)) ; data |= ((1<<7) | (1<<1)) ; wr_mdio (20, data) ; data = rd_mdio (29) ; data &= ~0x001F ; data |= 16 ; wr_mdio (29, data) ; data = rd_mdio (30) ; data |= ((1<<0)) ; wr_mdio (30, data) ; data = rd_mdio (0) ; data |= ((1<<15)) ; wr_mdio (0, data) ; __delay_cycles (const20ms) ; poll_speed = false ; mac_config = (LINK_AUTO<<ETH1000_SPEEDSEL0) | (0<<ETH1000_MACFLTDISABLE) | (1<<ETH1000_TXGENERATEIPV4) | (1<<ETH1000_RXCHECKIPV4) | (1<<ETH1000_RXUFENABLE) | (0<<ETH1000_RXMFENABLE) | (1<<ETH1000_RXBFENABLE) ; break ; } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BSACPLD 9 4 ноября, 2023 Опубликовано 4 ноября, 2023 · Жалоба On 11/3/2023 at 6:52 AM, Koctix said: MDIO я вообще не подключаю к PHY А вот это большая ошибка. Дефолтные конфиги у 88E1111 мягко говоря кривые. Его обязательно нужно правильно сконфигурировать по MDIO чтобы он корректно работал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jackov 1 4 ноября, 2023 Опубликовано 4 ноября, 2023 · Жалоба 9 часов назад, BSACPLD сказал: Не вводите людей в заблуждение. 88E1111 прекрасно работает как с прямым, так и с кросс кабелем. Самолично наблюдал это явление. Может, конечно, настройки были такие, но я их не трогал - значит, такие настройки по умолчанию. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BSACPLD 9 5 ноября, 2023 Опубликовано 5 ноября, 2023 · Жалоба 15 hours ago, Jackov said: Может, конечно, настройки были такие, но я их не трогал - значит, такие настройки по умолчанию. Там настройки от strap пинов зависят. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Koctix 0 7 ноября, 2023 Опубликовано 7 ноября, 2023 · Жалоба Спасибо за ответы. В 05.11.2023 в 15:13, BSACPLD сказал: Там настройки от strap пинов зависят. Strap пины я так понимаю выведены на плату KC705, там это задается джамперами. Или вы не об этом? Постараюсь тогда написать модуль для конфигурации по mdio, все равно вариантов у меня не остается Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BSACPLD 9 7 ноября, 2023 Опубликовано 7 ноября, 2023 · Жалоба 38 minutes ago, Koctix said: Или вы не об этом? Strap пины это лишь часть конфигурации. Доступ по MDIO всё равно нужен. Кстати, почему не готовый модуль MAC/MDIO? Я в своё время писал и MAC и MDIO контроллер (до сих пор ставлю их в свои проекты), но пока я оттестировал и закончил сбор и исправление всех багов, прошло явно больше года. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Koctix 0 7 ноября, 2023 Опубликовано 7 ноября, 2023 · Жалоба 54 минуты назад, BSACPLD сказал: Кстати, почему не готовый модуль MAC/MDIO? Да, сейчас глянул, наверное поищу готовый 🙂 56 минут назад, BSACPLD сказал: прошло явно больше года. Я бы хотел свой написать, но, к сожалению, времени маловато, слишком много потратил на выяснение причины проблемы... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BSACPLD 9 7 ноября, 2023 Опубликовано 7 ноября, 2023 · Жалоба 57 minutes ago, Koctix said: Я бы хотел свой написать, но, к сожалению, времени маловато, слишком много потратил на выяснение причины проблемы... Тут смотря что Вам нужно. Решить локальную задачу - готовый вполне подходит. Задел на будущее возможной с миграцией с одного производителя на другого - однозначно все свое либо в исходниках. У меня проект по ходу введения санкций прошел путь Intel/Lattice->Xilinx-Fudan. Сейчас смотрю в сторону PangoMicro - уж больно цена у них привлекательная. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xxhunter66 0 9 ноября, 2023 Опубликовано 9 ноября, 2023 · Жалоба Есть Xilinx answer по поводу использования trimode Ethernet MAC для ревизий D или C. https://support.xilinx.com/s/article/45527?language=en_US Попробуйте применить то, что советует Xilinx. Если не сработает можно попробовать переехать на SFP. Но тут у KC705 перепутана полярность. По этой причине соединение до марвела я бы тоже проверил Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться