Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of W5500_Porting_WIZnetLib by
Revision 2:12863af451af, committed 2014-03-31
- Comitter:
- dennyem
- Date:
- Mon Mar 31 04:01:59 2014 +0000
- Parent:
- 1:0476e70177e6
- Commit message:
- New from W5500_Porting_WIZnetlib
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r 0476e70177e6 -r 12863af451af main.cpp --- a/main.cpp Tue Feb 18 05:42:27 2014 +0000 +++ b/main.cpp Mon Mar 31 04:01:59 2014 +0000 @@ -2,9 +2,9 @@ #include "Ethernet/wizchip_conf.h" #include "Ethernet/socket.h" -SPI spi(p5, p6, p7); // mosi, miso, sclk -DigitalOut cs(p8), nRESET(p9); -DigitalIn RDY(p10); +SPI spi(P0_14, P0_15, P0_12); // mosi, miso, sclk +DigitalOut cs(P0_13), nRESET(P0_16); // reset pin of Wiz550io +DigitalIn RDY(P0_17); // ready pin of Wiz550io Serial pc(USBTX, USBRX); // tx, rx @@ -29,22 +29,15 @@ pc.baud(115200); spi.format(8,0); // 8bit, mode 0 - //spi.frequency(80000000); // 80MHz - //spi.frequency(8000000); // 8MHz - spi.frequency(7000000); // 7MHz - //spi.frequency(6000000); // 6MHz - //spi.frequency(5000000); // 5MHz - //spi.frequency(1000000); // 1MHz - //spi.frequency(100000); // 100KHz - //spi.frequency(10000); // 10KHz + spi.frequency(1000000); // 1MHz. Do not use more than 1Mhz on the LPC800, errors result nRESET = 0; wait(0.001); // 1ms nRESET = 1; while(RDY!=1); + cs = 1; - //wait(0.1); // 100ms #if _WIZCHIP_IO_MODE_ == _WIZCHIP_IO_MODE_SPI_VDM_ reg_wizchip_cs_cbfunc(wizchip_select, wizchip_deselect); @@ -65,47 +58,27 @@ pc.printf("WIZCHIP Initialized fail.\r\n"); while(1); } - do - { + + do { if(ctlwizchip(CW_GET_PHYLINK, (void*)&tmp) == -1) - pc.printf("Unknown PHY Link stauts.\r\n"); - }while(tmp == PHY_LINK_OFF); + pc.printf("Unknown PHY Link status.\r\n"); + } while(tmp == PHY_LINK_OFF); + /* wizchip netconf */ -#if _WIZCHIP_ == 5200 - gWIZNETINFO.mac[0] = 0x00; - gWIZNETINFO.mac[1] = 0x08; - gWIZNETINFO.mac[2] = 0xDC; - gWIZNETINFO.mac[3] = 0x00; - gWIZNETINFO.mac[4] = 0xAB; - gWIZNETINFO.mac[5] = 0xCD; + ctlnetwork(CN_GET_NETINFO, (void*)&gWIZNETINFO); + gWIZNETINFO.ip[0] = 192; gWIZNETINFO.ip[1] = 168; - gWIZNETINFO.ip[2] = 1; - gWIZNETINFO.ip[3] = 119; - gWIZNETINFO.gw[0] = 192; - gWIZNETINFO.gw[1] = 168; - gWIZNETINFO.gw[2] = 1; - gWIZNETINFO.gw[3] = 1; - gWIZNETINFO.sn[0] = 255; - gWIZNETINFO.sn[1] = 255; - gWIZNETINFO.sn[2] = 255; - gWIZNETINFO.sn[3] = 0; - gWIZNETINFO.dns[0] = 0; - gWIZNETINFO.dns[1] = 0; - gWIZNETINFO.dns[2] = 0; - gWIZNETINFO.dns[3] = 0; + gWIZNETINFO.ip[2] = 43; + gWIZNETINFO.ip[3] = 116; gWIZNETINFO.dhcp = NETINFO_STATIC; -#else - ctlnetwork(CN_GET_NETINFO, (void*)&gWIZNETINFO); -#endif - gWIZNETINFO.ip[0] = 192; - gWIZNETINFO.ip[1] = 168; - gWIZNETINFO.ip[2] = 1; - gWIZNETINFO.ip[3] = 119; + ctlnetwork(CN_SET_NETINFO, (void*)&gWIZNETINFO); ctlnetwork(CN_GET_NETINFO, (void*)&gWIZNETINFO); + //DISPLAY NETWORK ctlwizchip(CW_GET_ID,(void*)tmpstr); + pc.printf("=== %s NET CONF ===\r\n",(char*)tmpstr); pc.printf("MAC:%02X.%02X.%02X.%02X.%02X.%02X\r\n",gWIZNETINFO.mac[0],gWIZNETINFO.mac[1],gWIZNETINFO.mac[2], gWIZNETINFO.mac[3],gWIZNETINFO.mac[4],gWIZNETINFO.mac[5]); @@ -116,43 +89,44 @@ while(1) { uint8_t sn = 2; - if((ret = socket(sn,Sn_MR_TCP,3000,SF_TCP_NODELAY)) != sn) + + if((ret = socket(sn, Sn_MR_TCP, 3000, SF_TCP_NODELAY)) != sn) { - printf("%d:socket() error:%ld\r\n", sn,ret); + pc.printf("%d:socket() error: %ld\r\n", sn,ret); close(sn); continue; } - printf("%d:socket() ok.\r\n",sn); - if((ret = listen(sn)) != SOCK_OK) - { - printf("%d:listen() error:%ld",sn,ret); + pc.printf("%d:socket() ok.\r\n", sn); + + if((ret = listen(sn)) != SOCK_OK) { + pc.printf("%d:listen() error:%ld", sn, ret); close(sn); return ret; } - printf("%d:listen() ok.\r\n",sn); - if((ret = socket(sn+1, Sn_MR_UDP, 3000, 0)) != sn+1) - { - printf("%d:socket() error:%ld\r\n", sn+1,ret); + pc.printf("%d:listen() ok.\r\n", sn); + + if((ret = socket(sn + 1, Sn_MR_UDP, 3000, 0)) != sn + 1) { + pc.printf("%d:socket() error:%ld\r\n", sn + 1, ret); continue; - } - do - { - getsockopt(sn,SO_STATUS, &tmp); - }while(tmp != SOCK_CLOSED && tmp != SOCK_ESTABLISHED); + } + + do { + getsockopt(sn, SO_STATUS, &tmp); + } while(tmp != SOCK_CLOSED && tmp != SOCK_ESTABLISHED); + if(tmp == SOCK_CLOSED) continue; + //Accept for client - printf("%d:connected\r\nLBStarted Blocking mode\r\n",sn); - while(1) - { - if((ret = loopback_tcps(sn, gDATABUF, DATA_BUF_SIZE)) < 0) - { - printf("%d:loopback_tcps error:%ld\r\n",sn,ret); + pc.printf("%d:connected\r\nLBStarted Blocking mode\r\n", sn); + + while(1) { + if((ret = loopback_tcps(sn, gDATABUF, DATA_BUF_SIZE)) < 0) { + pc.printf("%d:loopback_tcps error:%ld\r\n", sn, ret); break; } /* - if((ret=loopback_udps(sn+1,gDATABUF,10)) < 0) - { - printf("%d:loopback_udps error:%ld\r\n",sn+1,ret); + if((ret=loopback_udps(sn+1,gDATABUF,10)) < 0) { + pc.printf("%d:loopback_udps error:%ld\r\n", sn + 1, ret); break; } */ @@ -183,23 +157,27 @@ int32_t loopback_tcps(uint8_t sn, uint8_t* buf, uint16_t size) { int32_t ret = 0; - ret = recv(sn,buf,size); - if(ret != size) - { + + ret = recv(sn, buf, size); + + if(ret != size) { if(ret < 0) { - printf("%d:recv() error:%ld\r\n",sn,ret); + pc.printf("%d:recv() error:%ld\r\n", sn, ret); close(sn); return ret; } } + size = ret; - ret = send(sn,buf,size); - if(ret != size) - { - if(ret < 0) - { - printf("%d:send() error:%ld\r\n",sn,ret); + ret = send(sn, buf, size); + + for(int x = 0; x < size; x++) + pc.printf("%c", buf[x]); + + if(ret != size) { + if(ret < 0) { + pc.printf("%d:send() error:%ld\r\n", sn, ret); close(sn); } } @@ -215,26 +193,26 @@ if((ret = recvfrom(sn,buf,size, addr,&port,&packinfo)) < 0) { - printf("%d:recvfrom error:%ld\r\n",sn,ret); + pc.printf("%d:recvfrom error:%ld\r\n", sn, ret); return ret; } if(packinfo & 0x80) { - printf("%d:recvfrom %d.%d.%d.%d(%d), size=%ld.\r\n",sn,addr[0],addr[1],addr[2],addr[3],port, ret); + pc.printf("%d:recvfrom %d.%d.%d.%d(%d), size=%ld.\r\n", sn, addr[0], addr[1], addr[2], addr[3], port, ret); } if(packinfo & 0x01) { - printf("%d:recvfrom remained packet.\r\n",sn); + pc.printf("%d:recvfrom remained packet.\r\n", sn); } else { - printf("%d:recvfrom completed.\r\n",sn); + pc.printf("%d:recvfrom completed.\r\n", sn); } if( (ret = sendto(sn, buf, ret, addr, port)) < 0) { - printf("%d:sendto error:%ld\r\n",sn,ret); + pc.printf("%d:sendto error:%ld\r\n", sn, ret); return ret; } - printf("%d:sendto %d.%d.%d.%d(%d), size=%ld\r\n",sn,addr[0],addr[1],addr[2],addr[3],port, ret); + pc.printf("%d:sendto %d.%d.%d.%d(%d), size=%ld\r\n", sn, addr[0], addr[1], addr[2], addr[3], port, ret); return ret; } \ No newline at end of file