1891ВМ12Я 0 16 мая, 2016 Опубликовано 16 мая, 2016 (изменено) · Жалоба Есть самодельная плата с Cyclone IV + 88E1111, соединены через GMII/RGMII (разведены все 8 линий, т.е. можно выбрать GMII или RGMII). Что работает: Работает приём (вижу в Signal Tap правильные посылки и байты). Работает copper line loopback - на сетевой карте ПК вижу отправленные пакеты продублированы - это работает платка и 88E1111 возвращает пакеты в целости. Стало быть линия ПК-PHY работает, до ПЛИС данные долетают. А вот какая проблема: не отправляет! Вообще! MAC interface loopback если включить - отправка есть а обратно не прилетает, собственно как и из линии... Кварц стоит на 25 МГц от материнской платы выдернул - чтобы уж точно кварц подходил - ведь в материнке же он работал! Да и у меня вроде работает. Говорят может не отправлять если кварц неподходящей стабильности. Пошел я дальше: сделал Nios 2 процессор в этой ПЛИСине, сделал программно "serial management interface" и выкачал через MDC/MDIO регистры. Они у меня получились такие: 00: 0x0000 = 0000_0000_0000_0000 01: 0x796D = 0111_1001_0110_1101 02: 0x0141 = 0000_0001_0100_0001 03: 0x0CC2 = 0000_1100_1100_0010 04: 0x0DE1 = 0000_1101_1110_0001 05: 0xCDE1 = 1100_1101_1110_0001 06: 0x000D = 0000_0000_0000_1101 07: 0x2001 = 0010_0000_0000_0001 08: 0x43D7 = 0100_0011_1101_0111 09: 0x0F00 = 0000_1111_0000_0000 10: 0x7C00 = 0111_1100_0000_0000 11: 0x0000 = 0000_0000_0000_0000 12: 0x0000 = 0000_0000_0000_0000 13: 0x0000 = 0000_0000_0000_0000 14: 0x0000 = 0000_0000_0000_0000 15: 0x3000 = 0011_0000_0000_0000 16: 0x0068 = 0000_0000_0110_1000 17: 0xAC40 = 1010_1100_0100_0000 18: 0x0000 = 0000_0000_0000_0000 19: 0x0000 = 0000_0000_0000_0000 20: 0x0C71 = 0000_1100_0111_0001 <- младшая единичка говорит что передатчик включен (1 = Transmitter Enable) 21: 0x0000 = 0000_0000_0000_0000 22: 0x0000 = 0000_0000_0000_0000 23: 0x0000 = 0000_0000_0000_0000 24: 0x4100 = 0100_0001_0000_0000 25: 0x0000 = 0000_0000_0000_0000 26: 0x000A = 0000_0000_0000_1010 27: 0x808F = 1000_0000_1000_1111 28: 0x0000 = 0000_0000_0000_0000 29: 0x0000 = 0000_0000_0000_0000 30: 0x0000 = 0000_0000_0000_0000 31: 0x0000 = 0000_0000_0000_0000 int main() { int stage = 0; while(true) { if(stage == 0) { printf("!!!\n\r", stage); smi_write(0, 0, 0x0040); smi_write(0, 20, 0x0C71); unsigned char r0 = smi_read(0, 0); smi_write(0, 0, r0 & (1<<15)); } for(int reg = 0; reg < 32; reg++) { unsigned short data = smi_read(0, reg); printf("%02d: 0x%04X = ", reg, data); print_bin2(data, 16); printf("\n\r"); } printf("----- %d\n\r", stage); for(int i = 0; i < (ALT_CPU_CPU_FREQ / 5); i++); stage++; if(stage > 10) stage = 0; } return 0; } Тут много кто с этим PHY работает (88E1111), какие вы регистры настраиваете и какими значениями? Меня интересует режим только 1 гигабит, без возможности 10/100, по меди 4 пары. Изменено 16 мая, 2016 пользователем AVR Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 16 мая, 2016 Опубликовано 16 мая, 2016 · Жалоба У меня похожая ситуация была когда был обрыв по сигналу TX_ER. Он у вас задействован? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 16 мая, 2016 Опубликовано 16 мая, 2016 · Жалоба У меня похожая ситуация была когда был обрыв по сигналу TX_ER. Он у вас задействован? Он разведен от ПЛИС к PHY, но я его вообще никак не задействовал. Если его поставить в 0 - это может помочь? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 16 мая, 2016 Опубликовано 16 мая, 2016 · Жалоба Есть самодельная плата с Cyclone IV + 88E1111, соединены через GMII/RGMII (разведены все 8 линий, т.е. можно выбрать GMII или RGMII). А какой режим используете? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 16 мая, 2016 Опубликовано 16 мая, 2016 · Жалоба А какой режим используете? Настроечные выводы (задается пинами CONFIG) настроены на GMII и 1 гигабит-only/master. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 16 мая, 2016 Опубликовано 16 мая, 2016 · Жалоба А с ресетом всё в порядке? Если память не изменяет, то при неправильной реализации аппаратного сброса после включения питания необходимо было на некоторое время выдать сигнал hard reset. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 16 мая, 2016 Опубликовано 16 мая, 2016 · Жалоба А с ресетом всё в порядке? Если память не изменяет, то при неправильной реализации аппаратного сброса после включения питания необходимо было на некоторое время выдать сигнал hard reset. Стоит микроконтроллер и делает hard-reset. Но я проверю этот момент осциллографом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 16 мая, 2016 Опубликовано 16 мая, 2016 · Жалоба Стоит микроконтроллер и делает hard-reset. Но я проверю этот момент осциллографом. Согласно доке минимальное время сброса 10 мс. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jury093 2 16 мая, 2016 Опубликовано 16 мая, 2016 · Жалоба Он разведен от ПЛИС к PHY, но я его вообще никак не задействовал. Если его поставить в 0 - это может помочь? я запускал 1111 в чужом дизайне - пока TX_ER не посадил на землю не взлетало.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 17 мая, 2016 Опубликовано 17 мая, 2016 · Жалоба Он разведен от ПЛИС к PHY, но я его вообще никак не задействовал. Если его поставить в 0 - это может помочь? Мне помогло. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 34 17 мая, 2016 Опубликовано 17 мая, 2016 · Жалоба У меня была похожая ситуация. Loopback через линию поднялся сразу, а вот FPGA<->PHY - нет. И не понятно было, то ли на плате что-то неисправно, то ли в софте, то ли с микросхемой проблемы... Попрыгать пришлось, в итоге оказалось, что таки да, дело было в настройке регистров и этот момент не освещён в даташите достаточно подробно, про это написано в апноте. Вот почитайте это, там есть подробности. Возможно, и ответ на ваш вопрос там же. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 17 мая, 2016 Опубликовано 17 мая, 2016 · Жалоба А по ходу вопрос чем вызвана любовь к многоножкам? Не смотрели на AR8035? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 17 мая, 2016 Опубликовано 17 мая, 2016 · Жалоба А по ходу вопрос чем вызвана любовь к многоножкам? Не смотрели на AR8035? 88E1111 - первое что подвернулось, лично мне не ясно почему популярная микросхема - вот и вся причина :) До этого я лишь с Ethernet 100 Мбит/с работал из самодельного MAC на ПЛИС. Тут задача аналогична - самодельный MAC и аппаратное формирование UDP пакетов (перенес со старого 100 Мбит/с проекта). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 28 мая, 2016 Опубликовано 28 мая, 2016 · Жалоба Согласно доке минимальное время сброса 10 мс. Не знаю почему я раньше это не проверил... Это моя слабость - не обращать внимание на сброс, мне кажется это всегда элементарной операцией, не требующей большого времени, что ошибка. Пока не работает, но я впервые вижу что подав RESETN чуть более 10 мс (с запасом) - PHY перестает мигать светодиодами. Видимо он перешел в какое-то состояние и теперь появится возможность добиться чтобы передача заработала наконец. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
krux 8 29 мая, 2016 Опубликовано 29 мая, 2016 · Жалоба Пока не работает, но я впервые вижу что подав RESETN чуть более 10 мс (с запасом) - PHY перестает мигать светодиодами. Видимо он перешел в какое-то состояние и теперь появится возможность добиться чтобы передача заработала наконец. ему надо от опоры в 25 МГц разогнать PLL на 125 МГц, и чтобы она стабильно залочилась. короче, везде, где есть PLL, необходимо строго следить за reset-ами, их длительностями, и наличием lock-ов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться