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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> 88E1111 + Cyclone 4, не отправляет
AVR
сообщение May 16 2016, 17:49
Сообщение #1


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Есть самодельная плата с 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 пары.

Сообщение отредактировал AVR - May 16 2016, 18:22


--------------------
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение May 16 2016, 18:32
Сообщение #2


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(AVR @ May 16 2016, 20:49) *

У меня похожая ситуация была когда был обрыв по сигналу TX_ER. Он у вас задействован?
Go to the top of the page
 
+Quote Post
AVR
сообщение May 16 2016, 18:41
Сообщение #3


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(_Anatoliy @ May 16 2016, 21:32) *
У меня похожая ситуация была когда был обрыв по сигналу TX_ER. Он у вас задействован?

Он разведен от ПЛИС к PHY, но я его вообще никак не задействовал. Если его поставить в 0 - это может помочь?


--------------------
Go to the top of the page
 
+Quote Post
doom13
сообщение May 16 2016, 19:31
Сообщение #4


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

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



Цитата(AVR @ May 16 2016, 20:49) *
Есть самодельная плата с Cyclone IV + 88E1111, соединены через GMII/RGMII (разведены все 8 линий, т.е. можно выбрать GMII или RGMII).

А какой режим используете?
Go to the top of the page
 
+Quote Post
AVR
сообщение May 16 2016, 19:34
Сообщение #5


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(doom13 @ May 16 2016, 22:31) *
А какой режим используете?

Настроечные выводы (задается пинами CONFIG) настроены на GMII и 1 гигабит-only/master.


--------------------
Go to the top of the page
 
+Quote Post
doom13
сообщение May 16 2016, 19:58
Сообщение #6


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

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



А с ресетом всё в порядке? Если память не изменяет, то при неправильной реализации аппаратного сброса после включения питания необходимо было на некоторое время выдать сигнал hard reset.
Go to the top of the page
 
+Quote Post
AVR
сообщение May 16 2016, 19:59
Сообщение #7


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(doom13 @ May 16 2016, 22:58) *
А с ресетом всё в порядке? Если память не изменяет, то при неправильной реализации аппаратного сброса после включения питания необходимо было на некоторое время выдать сигнал hard reset.

Стоит микроконтроллер и делает hard-reset. Но я проверю этот момент осциллографом.


--------------------
Go to the top of the page
 
+Quote Post
doom13
сообщение May 16 2016, 20:14
Сообщение #8


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

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



Цитата(AVR @ May 16 2016, 22:59) *
Стоит микроконтроллер и делает hard-reset. Но я проверю этот момент осциллографом.

Согласно доке минимальное время сброса 10 мс.
Go to the top of the page
 
+Quote Post
Jury093
сообщение May 16 2016, 20:53
Сообщение #9


Знающий
****

Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050



Цитата(AVR @ May 16 2016, 21:41) *
Он разведен от ПЛИС к PHY, но я его вообще никак не задействовал. Если его поставить в 0 - это может помочь?

я запускал 1111 в чужом дизайне - пока TX_ER не посадил на землю не взлетало..
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение May 17 2016, 04:28
Сообщение #10


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(AVR @ May 16 2016, 21:41) *
Он разведен от ПЛИС к PHY, но я его вообще никак не задействовал. Если его поставить в 0 - это может помочь?

Мне помогло.
Go to the top of the page
 
+Quote Post
dxp
сообщение May 17 2016, 06:27
Сообщение #11


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



У меня была похожая ситуация. Loopback через линию поднялся сразу, а вот FPGA<->PHY - нет. И не понятно было, то ли на плате что-то неисправно, то ли в софте, то ли с микросхемой проблемы... Попрыгать пришлось, в итоге оказалось, что таки да, дело было в настройке регистров и этот момент не освещён в даташите достаточно подробно, про это написано в апноте. Вот почитайте это, там есть подробности. Возможно, и ответ на ваш вопрос там же.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение May 17 2016, 09:08
Сообщение #12


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



А по ходу вопрос чем вызвана любовь к многоножкам? Не смотрели на AR8035?
Go to the top of the page
 
+Quote Post
AVR
сообщение May 17 2016, 09:59
Сообщение #13


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(_Anatoliy @ May 17 2016, 12:08) *
А по ходу вопрос чем вызвана любовь к многоножкам? Не смотрели на AR8035?

88E1111 - первое что подвернулось, лично мне не ясно почему популярная микросхема - вот и вся причина sm.gif
До этого я лишь с Ethernet 100 Мбит/с работал из самодельного MAC на ПЛИС. Тут задача аналогична - самодельный MAC и аппаратное формирование UDP пакетов (перенес со старого 100 Мбит/с проекта).


--------------------
Go to the top of the page
 
+Quote Post
AVR
сообщение May 28 2016, 20:24
Сообщение #14


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(doom13 @ May 16 2016, 23:14) *
Согласно доке минимальное время сброса 10 мс.

Не знаю почему я раньше это не проверил...
Это моя слабость - не обращать внимание на сброс, мне кажется это всегда элементарной операцией, не требующей большого времени, что ошибка.

Пока не работает, но я впервые вижу что подав RESETN чуть более 10 мс (с запасом) - PHY перестает мигать светодиодами. Видимо он перешел в какое-то состояние и теперь появится возможность добиться чтобы передача заработала наконец.


--------------------
Go to the top of the page
 
+Quote Post
krux
сообщение May 29 2016, 13:57
Сообщение #15


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

Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596



Цитата(AVR @ May 28 2016, 23:24) *
Пока не работает, но я впервые вижу что подав RESETN чуть более 10 мс (с запасом) - PHY перестает мигать светодиодами. Видимо он перешел в какое-то состояние и теперь появится возможность добиться чтобы передача заработала наконец.

ему надо от опоры в 25 МГц разогнать PLL на 125 МГц, и чтобы она стабильно залочилась.
короче, везде, где есть PLL, необходимо строго следить за reset-ами, их длительностями, и наличием lock-ов.


--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
Go to the top of the page
 
+Quote Post

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

 


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


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