|
Wiznet vs Altera, голова уже болит(((( |
|
|
|
Apr 18 2013, 15:19
|
Участник

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

|
Здравсвуйте, очень надеюсь что кто-нибудь сможет подсказать. Заранее хочу извиниться если тема повторялась.. уже третий день не могу понять в чем проблема((((( Есть Циклон 4 + Визнет w5300. пытаюсь настроить Визнет. частота 100 мгц. делаю все как по даташиту. Код void sbros() // функция сброса reset {
IOWR_ALTERA_AVALON_PIO_DATA(PIO_MANAG_BASE, 0x07); // сброс reset
for (i=0; i<23; i++){} // пауза 4 мкс
IOWR_ALTERA_AVALON_PIO_DATA(PIO_MANAG_BASE, 0x0F); // настройка PLL
for (i=0; i<45000; i++){} // пауза 20мс }
void write_wiz(unsigned short adr, unsigned short data) // функция записи {
IOWR_ALTERA_AVALON_PIO_DATA(PIO_ADR_BASE, adr); IOWR_ALTERA_AVALON_PIO_DATA(PIO_DATA_BASE, data);
IOWR_ALTERA_AVALON_PIO_DATA(PIO_MANAG_BASE, 0x0E); // установка cs
IOWR_ALTERA_AVALON_PIO_DATA(PIO_MANAG_BASE, 0x0A); // установка wr
IOWR_ALTERA_AVALON_PIO_DATA(PIO_MANAG_BASE, 0x0E); // снятие wr
IOWR_ALTERA_AVALON_PIO_DATA(PIO_MANAG_BASE, 0x0F); // снятие cs }
void read_wiz(unsigned short adr) // функция чтения { unsigned short data;
IOWR_ALTERA_AVALON_PIO_DATA(PIO_ADR_BASE, adr); // выставлzем адресс
IOWR_ALTERA_AVALON_PIO_DATA(PIO_MANAG_BASE, 0x0E); // установка cs
IOWR_ALTERA_AVALON_PIO_DATA(PIO_MANAG_BASE, 0x0C); // установка rd
data=IORD_ALTERA_AVALON_PIO_DATA(PIO_ADR_BASE);
IOWR_ALTERA_AVALON_PIO_DATA(PIO_MANAG_BASE, 0x0E); // сн€тие rd
IOWR_ALTERA_AVALON_PIO_DATA(PIO_MANAG_BASE, 0x0F); // сн€тие cs
printf("%X %X\n",adr,data); // вывод адреса и данных }
int main() {
IOWR_ALTERA_AVALON_PIO_DIRECTION(PIO_DATA_BASE, 0xFFFF); // тристабильные ножки данных на выход
IOWR_ALTERA_AVALON_PIO_DATA(PIO_MANAG_BASE, 0x0F); // управляющие в единицы
sbros();
write_wiz(0x000,0xB800); // запись MR -- прямая адрессация
write_wiz(0x008,0x0000); // установка MAC
write_wiz(0x00A,0x0000);
write_wiz(0x00C,0x0014);
IOWR_ALTERA_AVALON_PIO_DIRECTION(PIO_DATA_BASE, 0x0000); // тристабильные ножки данных на вход
read_wiz(0x000); // чтение данных по адресам
read_wiz(0x008);
read_wiz(0x00A);
read_wiz(0x00C);
while(1){}
return 0; } Результат: чтобы я не записывал читается во всех регистрах 0xB800. И комп не видит MAC-адрес.... Может кто-нибудь скажет в чем ошибка. Заранее спасибо)))
|
|
|
|
|
Apr 18 2013, 16:31
|
Частый гость
 
Группа: Участник
Сообщений: 190
Регистрация: 7-11-07
Из: С-Петербург
Пользователь №: 32 134

|
По моему, вы не соблюли временные интервалы для управляющих сигналов. 100МГц соответствует 10нС на такт, а по даташиту на W5300 мин Trd, Tcs = 65нС. Сделайте, для начала, сигналы заведомо длиннее, чем заявленые. Читайте данные также не ранее чем Tdata_setup = 42 нС. А вообще, можно было создать собственный компонент Avalon-MM, где и задать необходимые временные интервалы.
Сообщение отредактировал Копейкин - Apr 18 2013, 16:31
|
|
|
|
|
Apr 18 2013, 17:14
|
Участник

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

|
Сигналы и так длинные. Промежуток между операциями, к примеру:запись в порт (две подряд идущие операции), равен 320 нс. Код IOWR_ALTERA_AVALON_PIO_DATA(PIO_MANAG_BASE, 0x0A); // установка wr IOWR_ALTERA_AVALON_PIO_DATA(PIO_MANAG_BASE, 0x0E); // снятие wr Цитата(Копейкин @ Apr 18 2013, 20:31)  А вообще, можно было создать собственный компонент Avalon-MM, где и задать необходимые временные интервалы. А как его сделать собственный компонент? читал что-то про это. Но где он в SOPC находиться и как настраивается не нашел(((
Сообщение отредактировал lons83 - Apr 18 2013, 17:19
|
|
|
|
|
Apr 19 2013, 04:56
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
Цитата(Копейкин @ Apr 19 2013, 00:11)  Касательно W5300, у меня обеспечивает поток ~45мбит UDP. Аппаратная поддержка TCP/IP, UDP. А что вы от него хотите? TCP и DHCP если есть возможность. Ну и настоящий ТСР, а не урезанный с кучей ограничений, то есть чтобы не выяснилось в середине работы что втыкание этого устройства возможно только в определенные виды сетей, а любая не регламентированная активность в сети валит его или он валит сеть насмерть. Или что он не может работать с пакетами произвольной длинны, или что он дохнет от коротких пакетов. правильно я понимаю что вы в него пихаете данные, он их пакует в ТСП пакет и пускает дальше, а все что пришло обратно с его айпишником или широковещательно с правильным мак адресом, он распаковывает и отдает вам как тело пакета, с отрезанными заголовками и прочей сервисной надстройкой?
|
|
|
|
|
Apr 19 2013, 05:17
|
Участник

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

|
Цитата(Копейкин @ Apr 18 2013, 20:31)  100МГц соответствует 10нС Такой вопрос. у меня на вход подается 50 Мгц. я через PLL разгоняю до 100Мгц и подаяю на вход своего МК. В SOPC стоит источник частоты - External со 100 Мгц... Я все правильно делаю? Просто я тут задумался... как я уже сказал между снять сигнал и выставить сигнал проходит 320нс... или это уже особенность компилятора?
|
|
|
|
|
Apr 19 2013, 08:08
|
Частый гость
 
Группа: Участник
Сообщений: 190
Регистрация: 7-11-07
Из: С-Петербург
Пользователь №: 32 134

|
Так, по пунктам. 1) TCP и DHCP есть такая возможность. Можно даже посмотреть как это делают, скачав на сайте wiznet wirmware для EVB-B1 демо-платы. Там "С" исходники для Atmel AVR. Про ограничение сетей - 10\100 Мбит сети. Я в большую сеть не втыкал, но 3-4 устройства у меня на столе жили исправно, кстати на коротких пакетах. Передаёт пакеты не больше стандартной длины. Содержимое буфера сам делит на пакеты. Приходящим, отрезает заголовки Ethernet, оставляет TCP и UDP. В режиме MACRAW, позволяет оставить все заголовки на месте и разбирать вручную.
2) lons83, скриншот из СОПЦбилдера можно? И как сгенерированая система дальше подключается тоже... Если вы тактируете систему 100МГц, то между 2 соседними операциями вывода в порт 320нс - это много. Чем измеряете? PLL правильно сконфигурирована? Тактовая частота одна, для всех компонентов Nios, GPIO ?
|
|
|
|
|
Apr 19 2013, 20:44
|
Профессионал
    
Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968

|
Цитата(Копейкин @ Apr 19 2013, 00:11)  Касательно W5300 О! Интересно узнать, w5300 также греется как w5100? И как она по ЭМС, на помехах мощных не зависает, не отваливается? Есть опыть с 5100, греется зараза как печка, выше определенной температуры (летом) без радиатора глючит напрочь. И на мощные помехи (типа пускатели на 75кВт рядом выключаются, ну как рядом - в соседнем шкафу) реагирует - отваливается TCP коннект, иногда просто виснет и не работает пока заножку ресета не дернешь. В W5300 это исправлено? Сейчас поднял TCP/IP/UDP на опенкоровском эзернете - в лабораторных условиях работает, скоро проверю девайс в суровых условиях - частотники, пускатели, разрядники. Если все ок - забываю про визнет и пользую только опенсорсы. Так хоть поправить можно если что, все под контролем. Цитата Скажи лучше этот W5300 - нормальная штука, или так заплатка для ленивых? Типа модулей USB от FTDI когда по быстрому надо сделать что-то, а на нормальные разбиралки сил и времени нет? По мне так больше для ленивых  Год с лишним мучился с 5100 - отваливался коннект - через 2 года увидел свежую эрату - там моя проблема и написано что решения нет! Ресетьте мол чип и все заново. Ну это я и без них выяснил...
|
|
|
|
|
Apr 22 2013, 04:33
|
Участник

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

|
Цитата(Копейкин @ Apr 19 2013, 12:08)  2) lons83, скриншот из СОПЦбилдера можно? И как сгенерированая система дальше подключается тоже... Если вы тактируете систему 100МГц, то между 2 соседними операциями вывода в порт 320нс - это много. Чем измеряете? PLL правильно сконфигурирована? Тактовая частота одна, для всех компонентов Nios, GPIO ? Выкладываю скрины. Измеряю осциллографом. PLL. ну вроде по стандарту. Режим Нормал. 18 Мгц на входе 100 Мгц ны выходе. P.S. Если просто создать PLL. Подать на вход частоту и на выходе смотреть осциллографом то будет 100Мгц. и 10 нс а если через NIOS (то есть на вход 100Мгц и смотреть соседние операции вкл и выкл то будет 320 нс)
Сообщение отредактировал lons83 - Apr 22 2013, 05:23
Эскизы прикрепленных изображений
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|