Здравсвуйте, очень надеюсь что кто-нибудь сможет подсказать.
Заранее хочу извиниться если тема повторялась..
уже третий день не могу понять в чем проблема(((((
Есть Циклон 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-адрес....
Может кто-нибудь скажет в чем ошибка.
Заранее спасибо)))