|
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 22 2013, 12:40
|
Частый гость
 
Группа: Участник
Сообщений: 190
Регистрация: 7-11-07
Из: С-Петербург
Пользователь №: 32 134

|
Тогда остаётся только предположить, что вы используете экономный вариант ядра Nios. Он действительно очень медленый, может лучше стандартный взять? Далее, посмотрите эпюры ваших сигналов с помощью SignalTap. Это очень полезный инструмент, стоит освоить. Мне всё-таки не нравится в вашем коде, что чтение данных идёт непосредственно после установки сигнала RD для W5300. Попробуйте вставить задержку на 4 пустых (nop) инструкции и посмотрите, измениться ли читаемое значение. И потом, почему, в вашем коде, вы читаете данные из порта адреса (PIO_ADR_BASE), а не данных (PIO_DATA_BASE). Может в этом причина?
|
|
|
|
|
Apr 23 2013, 10:57
|
Участник

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

|
Цитата(Копейкин @ Apr 22 2013, 16:40)  Тогда остаётся только предположить, что вы используете экономный вариант ядра Nios. Он действительно очень медленый, может лучше стандартный взять? Далее, посмотрите эпюры ваших сигналов с помощью SignalTap. Это очень полезный инструмент, стоит освоить. Мне всё-таки не нравится в вашем коде, что чтение данных идёт непосредственно после установки сигнала RD для W5300. Попробуйте вставить задержку на 4 пустых (nop) инструкции и посмотрите, измениться ли читаемое значение. И потом, почему, в вашем коде, вы читаете данные из порта адреса (PIO_ADR_BASE), а не данных (PIO_DATA_BASE). Может в этом причина? Да. я забыл упомянуть что использую самый слабый проц. Я поставил в WEB версии самый сильный проц. и залил в режиме Run AS, предварительно увеличев задержки между операциями. (хотя по данным осциллгрофа и даташит на визнет времени мне хватало) Результат. Я наконец прочитал то что записывал, поставив между КАЖДОЙ операцией задержку вида : for (i=0;i<2000;i++  ; Но компьютер по прежнему не видит плату с Визнет((((((( P.S. да виноват c PIO_DATA_BASE и PIO_ADR_BASE просто опечатка вышла))))
|
|
|
|
|
Apr 23 2013, 21:28
|
Профессионал
    
Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968

|
Цитата(lons83 @ Apr 23 2013, 14:57)  Но компьютер по прежнему не видит плату с Визнет((((((( Ну так стандартно по порядку: питание проверить, аналоговое и цифровое, аналоговое должно идти через ферриты (хотя у меня и с перемычками работало) подключение трансформатора (кстати, линк-то светится на визнете?), сам трансформатор правильный (т.е. 1:1)? Средние точки по рефренс дизайну? Резисторы на 50 ом на трансформаторе правильные висят? Генератор генерит? (хотя вроде без генератора не читается то что запишешь) MAC, subnet mask, ip записали - прочитали. Совпадает? У компа которым пингуете подсеть та же? Включить лучше через свитч какой-нибудь. Напрямую был случай не пинговался визнет пока не выставил принудительно 100 Мбит на компе. В остальных режимах (авто, 10 мбит) визнет молчал. Через свитч - пинговался всяко. Ну и тупо замыкания между ногами в аналоговой части посмотрите Если все ОК обязано работать
|
|
|
|
Сообщений в этой теме
lons83 Wiznet vs Altera Apr 18 2013, 15:19 Копейкин По моему, вы не соблюли временные интервалы для уп... Apr 18 2013, 16:31 lons83 Сигналы и так длинные.
Промежуток между операциям... Apr 18 2013, 17:14 lons83 Цитата(Копейкин @ Apr 18 2013, 20:31) 100... Apr 19 2013, 05:17 Golikov A. руками пишется блок на верилоге- вхдл...
Скажи л... Apr 18 2013, 17:51 Копейкин В SOPC builder, New component, в графическом интер... Apr 18 2013, 20:11 Golikov A. Цитата(Копейкин @ Apr 19 2013, 00:11) Кас... Apr 19 2013, 04:56 alexPec Цитата(Копейкин @ Apr 19 2013, 00:11) Кас... Apr 19 2013, 20:44 Копейкин Так, по пунктам.
1)
TCP и DHCP есть такая возможно... Apr 19 2013, 08:08 lons83 Цитата(Копейкин @ Apr 19 2013, 12:08) 2) ... Apr 22 2013, 04:33 Golikov A. Спасибо, надо будет попробовать.
Сейчас подымаю из... Apr 19 2013, 08:46 vadimuzzz Цитата(Golikov A. @ Apr 19 2013, 15:46) Г... Apr 20 2013, 14:50 Golikov A. спасибо ценная информация.
В опенсорсах все хорош... Apr 20 2013, 04:38 Копейкин Подтверждаю- W5300 греется, довольно сильно.
Но у ... Apr 20 2013, 05:52 Golikov A. Вот и я так говорил, но компьютерные собратья меня... Apr 20 2013, 18:39 Копейкин Скажите, а каким осциллографом вы наблюдаете 100МГ... Apr 23 2013, 12:33 lons83 Цитата(Копейкин @ Apr 23 2013, 16:33) Ска... Apr 24 2013, 05:39  alexPec Цитата(lons83 @ Apr 24 2013, 09:39) Не то... Apr 24 2013, 06:48   lons83 Цитата(alexPec @ Apr 24 2013, 10:48) У ци... Apr 24 2013, 07:51 Golikov A. народ обсуждал что если делать кварц по даташиту т... Apr 24 2013, 09:46 lons83 Цитата(Golikov A. @ Apr 24 2013, 13:46) н... Apr 24 2013, 10:06 Golikov A. нет, там должен быть 1 мегоомный резистор, кажется... Apr 24 2013, 11:29 lons83 Цитата(Golikov A. @ Apr 24 2013, 15:29) н... Apr 24 2013, 11:41  alexPec Так и надо делать, у меня без резистора ни один чи... Apr 24 2013, 12:13  ivanoffer TC, недавно запустил W5300, в памяти еще осталась ... Apr 24 2013, 13:46 lons83 Генератор нормально заработал. комп видит сеть. За... Apr 27 2013, 06:18 lons83 Всем спасибо. Все заработало.
Проблема была в не р... Apr 27 2013, 12:18
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|