|
Ethernet контроллер W5100 от Wiznet, проблемы. |
|
|
|
Jul 8 2010, 13:14
|
Участник

Группа: Участник
Сообщений: 35
Регистрация: 25-12-07
Пользователь №: 33 630

|
Делаю преобразователь RS 232 >Ethernet. В качестве Ethernet контроллер решил использовать W5100 от Wiznet. Контроллер связал с МК по SPI интерфейсу. Заработал сразу без проблем ,ping , connect к серверу все на ура. После этого я решил отладить передачу данных от W5100 в качестве клиента на сервер. И вот тут начались проблемы . Начинаю передавать данные в размере 10 байт на сервер , но приходит не 10 байт, а 4 пакета по 1460 байт и в последнем пакете последние данные это то что я послал, и это происходит при первой посылке все остальные посылки отправляют столько байт сколько передал. На сколько я понял, проблема в следующем в W5100 есть регистр Sn_TX_RR (Socket n TX Read Pointer Register) [R] в котором находиться адрес начал передаваемых данных и регистр Sn_TX_WR (Socket n TX Write Pointer Register) [R/W] в котором находится адрес конца передаваемых данных .При первой передаче в регистре Sn_TX_RR находиться случайный адрес и он превышает или находится фиг знает где относительно адрес конца передачи, получается что контроллер по кругу считывает данные со своих регистров доходит до адреса конца чтения и после этого контроллер устанавливает правильное значение в этом регистре и все остальные передачи идут без проблем . Вопрос -как установить правильное значение регистра Sn_TX_RR для первого пакета данных , ведь этот регистр только для чтения и значения в нем контроллер W5100 меняет аппаратно ?
|
|
|
|
|
 |
Ответов
|
Oct 10 2013, 02:11
|
Частый гость
 
Группа: Участник
Сообщений: 91
Регистрация: 3-07-11
Пользователь №: 66 028

|
Здравствуйте, возникла у меня вот такая проблема w5100 не даёт устанавится TCP соединению разывает его флагом reset. Всё более менее работает странички открываются картинки выдаются но иногда при retransmission происходит сброс а бразуер всё шлёт и шлёт retransmission и на этом всё зависает пока куда-то вся инициализация не слетит Код 22068 2652.981635000 192.168.1.63 192.168.1.4 TCP 54 52877 > 5000 [FIN, ACK] Seq=361 Ack=12 Win=64230 Len=0 22069 2652.982735000 192.168.1.4 192.168.1.63 TCP 60 5000 > 52877 [ACK] Seq=12 Ack=362 Win=2048 Len=0 22070 2653.820030000 192.168.1.4 192.168.1.63 TCP 60 [TCP Retransmission] 5000 > 52877 [FIN, ACK] Seq=3084509875 Ack=3252656888 Win=2048 Len=0 22071 2653.820069000 192.168.1.63 192.168.1.4 TCP 54 52877 > 5000 [RST] Seq=3252656888 Win=0 Len=0 22072 2653.822132000 192.168.1.4 192.168.1.63 TCP 60 [TCP Retransmission] 5000 > 52877 [FIN, ACK] Seq=3084509875 Ack=3252656888 Win=2048 Len=0 22073 2653.822156000 192.168.1.63 192.168.1.4 TCP 54 52877 > 5000 [RST] Seq=3252656888 Win=0 Len=0 22074 2653.822936000 192.168.1.4 192.168.1.63 TCP 60 [TCP Retransmission] 5000 > 52877 [FIN, ACK] Seq=3084509875 Ack=3252656888 Win=2048 Len=0 22075 2653.822959000 192.168.1.63 192.168.1.4 TCP 54 52877 > 5000 [RST] Seq=3252656888 Win=0 Len=0 22079 2653.825881000 192.168.1.4 0.0.0.0 TCP 60 5000 > 0 [FIN, ACK] Seq=1 Ack=1 Win=2048 Len=0 22094 2653.972698000 192.168.1.63 192.168.1.4 TCP 66 52880 > 5000 [SYN] Seq=0 Win=8192 Len=0 MSS=1460 WS=4 SACK_PERM=1 22095 2653.982600000 192.248.1.4 0.0.0.0 TCP 60 5000 > 0 [FIN, ACK] Seq=1 Ack=1 Win=2048 Len=0 22096 2653.989771000 192.240.1.4 0.0.0.0 TCP 60 5000 > 0 [FIN, ACK] Seq=1 Ack=1 Win=2048 Len=0 22102 2654.017253000 192.240.1.4 0.0.0.0 TCP 60 [TCP Retransmission] 5000 > 0 [FIN, ACK] Seq=1 Ack=1 Win=2048 Len=0 После этого всё даже ping не работает.
Код CHIP_WRITE(0x0000,0); //GWR (Gateway IP Address Register) [R/W] [0x0001 – 0x0004] [0x00] CHIP_WRITE(0x0001,192); CHIP_WRITE(0x0002,168); CHIP_WRITE(0x0003,1); CHIP_WRITE(0x0004,18); //SUBR (Subnet Mask Register) [R/W] [0x0005 – 0x0008] [0x00] CHIP_WRITE(0x0005,255); CHIP_WRITE(0x0006,255); CHIP_WRITE(0x0007,255); CHIP_WRITE(0x0008,0); //SHAR (Source Hardware Address Register) [R/W] [0x0009 – 0x000E] [0x00] //This register sets up the Source Hardware address. CHIP_WRITE(0x0009,0x00); CHIP_WRITE(0x000A,0x08); CHIP_WRITE(0x000B,0xDC); CHIP_WRITE(0x000C,0x01); CHIP_WRITE(0x000D,0x02); CHIP_WRITE(0x000E,0x03); //SIPR (Source IP Address Register) [R/W] [0x000F – 0x0012] [0x00] //This register sets up the Source IP address. CHIP_WRITE(0x000F,192); CHIP_WRITE(0x0010,168); CHIP_WRITE(0x0011,1); CHIP_WRITE(0x0012,4); //IR (Interrupt Register) [R] [0x0015] [0x00] //This register is accessed by the host processor to know the cause of an interrupt. //Any interrupt can be masked in the Interrupt Mask Register (IMR). The /INT signal retain low //as long as any masked signal is set, and will not go high until all masked bits in this Register //have been cleared. // 7 6 5 4 3 2 1 0 //CONFLICT UNREACH PPPoE Reserved S3_INT S2_INT S1_INT S0_INT //CHIP_WRITE(0x0015,); CHIP_WRITE(0x0016,0);
CHIP_WRITE(0x0017,0x00); // таймаут 400ms CHIP_WRITE(0x0018,0xc8);
//CHIP_WRITE(0x0017,0x0f); // таймаут 400ms //CHIP_WRITE(0x0018,0xA0);
CHIP_WRITE(0x0019,0x08);
//Значение регистра "RX Memory Size Register" ($001A) устанавливается в b00000011. Считываем, проверяем, Ok! //Значение регистра "TX Memory Size Register" ($001B) устанавливается в b00000011. Считываем, проверяем, Ok! CHIP_WRITE(0x001A,0x06); CHIP_WRITE(0x001B,0x06); //Значение регистра "Interrupt Mask Register" ($0016) //Значение регистра "Retry Time-value Register" ($0017) //Значение регистра "Retry Time-value Register" ($0018)
|
|
|
|
Сообщений в этой теме
Zemlyanov Ethernet контроллер W5100 от Wiznet, проблемы. Jul 8 2010, 13:14 Yarst Здравствуйте, Zemlyanov!
Пытаюсь разобраться с... Sep 16 2010, 13:16 DSIoffe Цитата4 пакета по 1460 байт
А чем кончилось, а? У ... Feb 6 2011, 16:25 Zemlyanov Проблема в не правильном указании адреса начало и ... Feb 7 2011, 12:05 DSIoffe Большое спасибо. Буду разбираться. Правда, у меня ... Feb 7 2011, 12:38 Zemlyanov Код
hi=wiz_rd(0x0424);// считываете ... Feb 7 2011, 16:25 DSIoffe Большое спасибо, я нашёл у себя лажу, теперь W5100... Feb 13 2011, 20:58 kolobok0 Цитата(DSIoffe @ Feb 13 2011, 23:58) ...К... Mar 14 2011, 09:29 DSIoffe Спасибо, разобрался, есть такое слово - MTU. Вот т... Feb 14 2011, 19:22 DSIoffe Спасибо, всё так: моё устройство подключено кабеле... Mar 14 2011, 09:42 Errorkpi А где-то есть описание использования драйвера от п... Apr 6 2011, 09:41 DSIoffe Лучше всего читать datasheet. Там описаны все реги... Apr 6 2011, 10:34 Errorkpi Прочитал, конечно впечатляет, но немного не то. Я ... Apr 6 2011, 10:45 DSIoffe Да я вообще проект для ПЛИС писал по тому даташиту... Apr 6 2011, 10:50 Errorkpi Курю даташит. Вроде все понятно, пока
Будем разби... Apr 6 2011, 11:09 Errorkpi тут в соседней теме прочитал следующее:
ЦитатаСнач... Apr 6 2011, 12:10 DSIoffe Я софтового сброса не делал, только аппаратный. В ... Apr 6 2011, 13:29 Errorkpi А выдержка по времени??? или это было притянуто за... Apr 6 2011, 13:31 DSIoffe Табличка "AC Characteristics". Не менее ... Apr 6 2011, 14:25 Errorkpi Ну я собственно об этом и писал 2мкс + 10мс. Тольк... Apr 8 2011, 06:34 DSIoffe Ну да, запас - это святое. А что за соседняя тема? Apr 8 2011, 07:10 Errorkpi http://electronix.ru/forum/index.php?showt...mp;#e... Apr 8 2011, 14:51 Unfog Дабы не плодить темы, напишу здесь.
Работаю W5100 ... May 20 2012, 17:37 Lmx2315 QUOTE (Unfog @ May 20 2012, 21:37) Дабы н... Oct 7 2013, 18:21  Lmx2315 QUOTE (Lmx2315 @ Oct 7 2013, 22:21) Решил... Oct 8 2013, 17:01 pokk Что-то понять не могу с регистра статуса Sn_SR ... Oct 10 2013, 09:01
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|