WIZNET W5100

Feb 09, 2008 2 Replies

witam,



czy ktos korzystal z tego cuda? Udalo mi sie uruchomic to to przez SPI, otwieram socket (TCP), robie connect, send, disconnect i niestety nie moge tej operacji powtorzyc. Zwisa mi na send, ale tak naprawde rzecz w tym, ze bez software'owego resetu uklad na drugie polecenie connect nie posyla nic w siec Ethernet. Podczas pierwszego polaczenia dziala ksiazkowo (SYN,ACK,FIN). Testowalem juz rozne kombinacje rejestrow robiac ich zrzuty - jak dotad nic nie moglo. Uklad utyka w grafie stanow na SYNSEND (cos go blokuje chyba wewnetrznie, ze nic nie posyla) i stad dalsze proby koncza sie niepowodzeniem. Korzystam z modulu WIZ810MJ i sprawdzalem efekt juz na dwoch - powtarzalne. Taiwanczycy nie odpisuja pomimo, ze poslalem im zrzuty rejestrow ukladu w roznych stanach :/



pozdrawiam Janusz U.



P.S. Nie oczekuje odpowiedzi typu uzyj Ethernuta czy lwIP, bo nie w tym rzecz. Jak nie odpale tego to tak postapie, bo doswiadczenie z nimi mam (glownie lwIP).



Czy na pewno przed każdym połączeniem otwierasz gniazdko?

I try to implement TCP client (HTTP exactly) using W5100 chip. I do (using functions from w5100.c/h and socket.c/h like for PIC24 demo):

INITIALIZATION

----------------------- iinchip_init(); // SW reset setSHAR(SHAR); sysinit(0x55/*2K*/, 0x55/*2K*/);

// DHCP before? setGAR(GAR); setSUBR(SUBR); setSIPR(IPR);

LOOP

---------- wait 0.5s socket(s, Sn_MR_TCP, 0/*source port: temporary*/, 0/*flags: none*/) connect(s, (uint8*)&iptl, 80) send(s, dd, sizeof(dd)-1) getSn_RX_RSR(s) recv(s, &b, sizeof(b)) recv(s, &b, sizeof(b)) disconnect(s)

My problem: W5100 halts on send() in second loop. What is the problem?!

best regards Janusz Uzycki

TEXTSHOT:

Channel : SEND MEM SIZE : RECV MEM SIZE

0 : 4000 : 6000 : 0800 : 0800 1 : 4800 : 6800 : 0800 : 0800 2 : 5000 : 7000 : 0800 : 0800 3 : 5800 : 7800 : 0800 : 0800 module W5100 configured

================================================ Net Config Information ================================================ MAC ADDRESS : 0x00.0x05.0xB7.0x04.0xBF.0x58 SUBNET MASK : 192.168.1.255 G/W IP ADDRESS : 192.168.1.1 LOCAL IP ADDRESS : 192.168.1.232 ================================================ addr ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿavailable socket found: 0 w5100 map:

00000000: 00 C0 A8 01 01 C0 A8 01 | FF 00 05 B7 04 BF 58 C0 | 00000010: A8 01 E8 00 00 00 00 07 | D0 08 55 55 00 00 00 00 | 00000020: 00 00 00 00 00 00 00 00 | 28 00 00 00 00 00 00 00 | 00000400: 00 00 00 00 00 00 FF FF | FF FF FF FF 00 00 00 00 | 00000410: 00 00 00 00 00 00 80 00 | 00 00 00 00 00 00 02 02 | 00000420: 08 00 00 00 00 00 00 00 | 00 00 00 00 00 40 00 00 | socket() close() Sn_SR = 13 , Protocol = 01 socket ready w5100 map: 00000000: 00 C0 A8 01 01 C0 A8 01 | FF 00 05 B7 04 BF 58 C0 | 00000010: A8 01 E8 00 00 00 00 07 | D0 08 55 55 00 00 00 00 | 00000020: 00 00 00 00 00 00 00 00 | 28 00 00 00 00 00 00 00 | 00000400: 01 00 00 13 00 01 FF FF | FF FF FF FF 00 00 00 00 | 00000410: 00 00 05 B4 00 00 80 00 | 00 00 00 00 00 00 02 02 | 00000420: 08 00 00 00 00 00 00 00 | 00 00 00 00 00 40 00 00 | connect() connected w5100 map: 00000000: 00 C0 A8 01 01 C0 A8 01 | FF 00 05 B7 04 BF 58 C0 | 00000010: A8 01 E8 00 00 01 00 07 | D0 08 55 55 00 00 00 00 | 00000020: 00 00 00 00 00 00 00 00 | 28 00 00 00 00 00 00 00 | 00000400: 01 00 05 17 00 01 00 0C | 41 92 49 FE C0 A8 01 AB | 00000410: 00 50 05 B4 00 00 80 00 | 00 00 00 00 00 00 02 02 | 00000420: 08 00 9F 00 9F 00 00 13 | 00 00 00 13 00 40 00 00 | send: GET
formatting link
send() socket 0 freesize(2048) empty or error send() successful w5100 map: 00000000: 00 C0 A8 01 01 C0 A8 01 | FF 00 05 B7 04 BF 58 C0 | 00000010: A8 01 E8 00 00 01 00 07 | D0 08 55 55 00 00 00 00 | 00000020: 00 00 00 00 00 00 00 00 | 28 00 00 00 00 00 00 00 | 00000400: 01 00 05 17 00 01 00 0C | 41 92 49 FE C0 A8 01 AB | 00000410: 00 50 05 B4 00 00 80 00 | 00 00 00 00 00 00 02 02 | 00000420: 07 D2 9F 2E 9F 2E 00 13 | 00 00 00 13 00 40 00 00 | received: 19 recv() ISR_RX: rd_ptr : 0000 rcv1: Y recv() returned 'Y' instead of 'O' disconnect() disconnected / closed w5100 map: 00000000: 00 C0 A8 01 01 C0 A8 01 | FF 00 05 B7 04 BF 58 C0 | 00000010: A8 01 E8 00 00 01 00 07 | D0 08 55 55 00 00 00 00 | 00000020: 00 00 00 00 00 00 00 00 | 28 00 00 00 00 00 00 00 | 00000400: 01 00 07 00 00 01 00 0C | 41 92 49 FE C0 A8 01 AB | 00000410: 00 50 05 B4 00 00 80 00 | 00 00 00 00 00 00 02 02 | 00000420: 08 00 9F 2E 9F 2E 00 12 | 00 01 00 13 00 40 00 00 | available socket found: 0 w5100 map: 00000000: 00 C0 A8 01 01 C0 A8 01 | FF 00 05 B7 04 BF 58 C0 | 00000010: A8 01 E8 00 00 01 00 07 | D0 08 55 55 00 00 00 00 | 00000020: 00 00 00 00 00 00 00 00 | 28 00 00 00 00 00 00 00 | 00000400: 01 00 07 00 00 01 00 0C | 41 92 49 FE C0 A8 01 AB | 00000410: 00 50 05 B4 00 00 80 00 | 00 00 00 00 00 00 02 02 | 00000420: 08 00 9F 2E 9F 2E 00 12 | 00 01 00 13 00 40 00 00 | socket() close() Sn_SR = 13 , Protocol = 01 socket ready w5100 map: 00000000: 00 C0 A8 01 01 C0 A8 01 | FF 00 05 B7 04 BF 58 C0 | 00000010: A8 01 E8 00 00 01 00 07 | D0 08 55 55 00 00 00 00 | 00000020: 00 00 00 00 00 00 00 00 | 28 00 00 00 00 00 00 00 | 00000400: 01 00 07 13 00 02 00 0C | 41 92 49 FE C0 A8 01 AB | 00000410: 00 50 05 B4 00 00 80 00 | 00 00 00 00 00 00 02 02 | 00000420: 08 00 00 00 00 00 00 00 | 00 00 00 00 00 40 00 00 | connect() connected w5100 map: 00000000: 00 C0 A8 01 01 C0 A8 01 | FF 00 05 B7 04 BF 58 C0 | 00000010: A8 01 E8 00 00 01 00 07 | D0 08 55 55 00 00 00 00 | 00000020: 00 00 00 00 00 00 00 00 | 28 00 00 00 00 00 00 00 | 00000400: 01 00 07 15 00 02 00 0C | 41 92 49 FE 63 00 00 00 | 00000410: 00 13 05 B4 00 00 80 00 | 00 00 00 00 00 00 02 02 | 00000420: 08 00 25 18 00 00 00 00 | 00 00 00 00 00 40 00 00 | send: GET
formatting link
send() <== halts here !!!

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required