This is WIZnet Ethernet Interface using Hardware TCP/IP chip, W5500, W5200 and W5100. One of them can be selected by enabling it in wiznet.h.

Dependents:   Embedded_web EmailButton EmailButton HTTPClient_Weather ... more

other drivers

for only W5500 / WIZ550io user, you could use

Import libraryW5500Interface

This is the Interface library for WIZnet W5500 chip which forked of EthernetInterfaceW5500, WIZnetInterface and WIZ550ioInterface. This library has simple name as "W5500Interface". and can be used for Wiz550io users also.

Committer:
jbkim
Date:
Thu May 08 03:57:58 2014 +0000
Revision:
0:b72d22e10709
Child:
1:8138a268fbd2
1st commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jbkim 0:b72d22e10709 1 /*
jbkim 0:b72d22e10709 2 *
jbkim 0:b72d22e10709 3 * Test program for W5500 mbed Library
jbkim 0:b72d22e10709 4
jbkim 0:b72d22e10709 5 */
jbkim 0:b72d22e10709 6 #include "mbed.h"
jbkim 0:b72d22e10709 7 #include "WIZnetInterface.h"
jbkim 0:b72d22e10709 8
jbkim 0:b72d22e10709 9 #define ECHO_SERVER_PORT 5000
jbkim 0:b72d22e10709 10 const char* ECHO_SERVER_ADDRESS = "192.168.1.229";
jbkim 0:b72d22e10709 11
jbkim 0:b72d22e10709 12 #define LPC
jbkim 0:b72d22e10709 13 //#define ST_NUCLEO
jbkim 0:b72d22e10709 14
jbkim 0:b72d22e10709 15 // Setting Seial setting
jbkim 0:b72d22e10709 16 //Serial pc(P1_13, P1_14); // tx, rx
jbkim 0:b72d22e10709 17 //Serial pc(PA_2, PA_3); // tx, rx
jbkim 0:b72d22e10709 18
jbkim 0:b72d22e10709 19 #define TCP_Server
jbkim 0:b72d22e10709 20 //#define TCP_Client
jbkim 0:b72d22e10709 21 //#define UDP_Server
jbkim 0:b72d22e10709 22 //#define UDP_Client
jbkim 0:b72d22e10709 23
jbkim 0:b72d22e10709 24 #ifdef LPC
jbkim 0:b72d22e10709 25 // LPC1768 & LPC11U24
jbkim 0:b72d22e10709 26 SPI spi(p5, p6, p7); // mosi, miso, sclk
jbkim 0:b72d22e10709 27 WIZnetInterface eth(&spi, p8, p9); // spi, cs, reset
jbkim 0:b72d22e10709 28 Serial pc(USBTX,USBRX);
jbkim 0:b72d22e10709 29 #endif
jbkim 0:b72d22e10709 30
jbkim 0:b72d22e10709 31 #ifdef ST_NUCLEO
jbkim 0:b72d22e10709 32 // ST Nucleo
jbkim 0:b72d22e10709 33 SPI spi(PA_7, PA_6, PA_5); // mosi, miso, sclk
jbkim 0:b72d22e10709 34 WIZnetInterface eth(&spi, PB_6, PA_10); // spi, cs, reset
jbkim 0:b72d22e10709 35 Serial pc(USBTX,USBRX);
jbkim 0:b72d22e10709 36 #endif
jbkim 0:b72d22e10709 37
jbkim 0:b72d22e10709 38 // Seeedstudio Arch
jbkim 0:b72d22e10709 39 //SPI spi(P1_22, P1_21, P1_20); // mosi, miso, sclk
jbkim 0:b72d22e10709 40 //WIZnetInterface eth(&spi, P0_2, P0_0); // spi, cs, reset
jbkim 0:b72d22e10709 41
jbkim 0:b72d22e10709 42 // Freescale FRDM KL25Z
jbkim 0:b72d22e10709 43 //SPI spi(PTD2, PTD3, PTD1); // mosi, miso, sclk
jbkim 0:b72d22e10709 44 //WIZnetInterface eth(&spi, PTD0, PTA20); // spi, cs, reset
jbkim 0:b72d22e10709 45 //Serial pc(USBTX,USBRX);
jbkim 0:b72d22e10709 46
jbkim 0:b72d22e10709 47 const char * IP_Addr = "192.168.1.120";
jbkim 0:b72d22e10709 48 const char * IP_Subnet = "255.255.255.0";
jbkim 0:b72d22e10709 49 const char * IP_Gateway = "192.168.1.111";
jbkim 0:b72d22e10709 50
jbkim 0:b72d22e10709 51
jbkim 0:b72d22e10709 52 int main()
jbkim 0:b72d22e10709 53 {
jbkim 0:b72d22e10709 54 pc.printf("Start\n");
jbkim 0:b72d22e10709 55
jbkim 0:b72d22e10709 56 // int ret = eth.init(); //Use DHCP
jbkim 0:b72d22e10709 57 int ret = eth.init(IP_Addr, IP_Subnet, IP_Gateway); // static
jbkim 0:b72d22e10709 58
jbkim 0:b72d22e10709 59 if (!ret) {
jbkim 0:b72d22e10709 60 pc.printf("Initialized, MAC: %s\n", eth.getMACAddress());
jbkim 0:b72d22e10709 61 } else {
jbkim 0:b72d22e10709 62 pc.printf("Error eth.init() - ret = %d\n", ret);
jbkim 0:b72d22e10709 63 return -1;
jbkim 0:b72d22e10709 64 }
jbkim 0:b72d22e10709 65
jbkim 0:b72d22e10709 66 ret = eth.connect();
jbkim 0:b72d22e10709 67 if (!ret) {
jbkim 0:b72d22e10709 68 pc.printf("IP: %s, MASK: %s, GW: %s\n",
jbkim 0:b72d22e10709 69 eth.getIPAddress(), eth.getNetworkMask(), eth.getGateway());
jbkim 0:b72d22e10709 70 } else {
jbkim 0:b72d22e10709 71 pc.printf("Error eth.connect() - ret = %d\n", ret);
jbkim 0:b72d22e10709 72 return -1;
jbkim 0:b72d22e10709 73 }
jbkim 0:b72d22e10709 74
jbkim 0:b72d22e10709 75
jbkim 0:b72d22e10709 76 #ifdef TCP_Server
jbkim 0:b72d22e10709 77 TCPSocketServer server;
jbkim 0:b72d22e10709 78 server.bind(ECHO_SERVER_PORT);
jbkim 0:b72d22e10709 79 server.listen();
jbkim 0:b72d22e10709 80
jbkim 0:b72d22e10709 81 while (true) {
jbkim 0:b72d22e10709 82 pc.printf("\nWait for new connection...\n");
jbkim 0:b72d22e10709 83 TCPSocketConnection client;
jbkim 0:b72d22e10709 84 server.accept(client);
jbkim 0:b72d22e10709 85 //client.set_blocking(false, 1500); // Timeout after (1.5)s
jbkim 0:b72d22e10709 86
jbkim 0:b72d22e10709 87 pc.printf("Connection from: %s\n", client.get_address());
jbkim 0:b72d22e10709 88 char buffer[256];
jbkim 0:b72d22e10709 89 while (true) {
jbkim 0:b72d22e10709 90 int n = client.receive(buffer, sizeof(buffer));
jbkim 0:b72d22e10709 91 if (n <= 0) break;
jbkim 0:b72d22e10709 92
jbkim 0:b72d22e10709 93 client.send_all(buffer, n);
jbkim 0:b72d22e10709 94 if (n <= 0) break;
jbkim 0:b72d22e10709 95 }
jbkim 0:b72d22e10709 96
jbkim 0:b72d22e10709 97 client.close();
jbkim 0:b72d22e10709 98 }
jbkim 0:b72d22e10709 99 #endif
jbkim 0:b72d22e10709 100
jbkim 0:b72d22e10709 101 #ifdef TCP_Client
jbkim 0:b72d22e10709 102 TCPSocketConnection socket;
jbkim 0:b72d22e10709 103 while (socket.connect(ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT) < 0) {
jbkim 0:b72d22e10709 104 printf("Unable to connect to (%s) on port (%d)\n", ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT);
jbkim 0:b72d22e10709 105 wait(1);
jbkim 0:b72d22e10709 106 }
jbkim 0:b72d22e10709 107
jbkim 0:b72d22e10709 108 char hello[] = "Hello World\n";
jbkim 0:b72d22e10709 109 socket.send_all(hello, sizeof(hello) - 1);
jbkim 0:b72d22e10709 110
jbkim 0:b72d22e10709 111 char buf[256];
jbkim 0:b72d22e10709 112 int n = socket.receive(buf, 256);
jbkim 0:b72d22e10709 113 buf[n] = '\0';
jbkim 0:b72d22e10709 114 printf("%s", buf);
jbkim 0:b72d22e10709 115
jbkim 0:b72d22e10709 116 socket.close();
jbkim 0:b72d22e10709 117 eth.disconnect();
jbkim 0:b72d22e10709 118
jbkim 0:b72d22e10709 119 while(true) {}
jbkim 0:b72d22e10709 120 #endif
jbkim 0:b72d22e10709 121
jbkim 0:b72d22e10709 122
jbkim 0:b72d22e10709 123 #ifdef UDP_Server
jbkim 0:b72d22e10709 124 UDPSocket server;
jbkim 0:b72d22e10709 125 ret = server.bind(ECHO_SERVER_PORT);
jbkim 0:b72d22e10709 126 printf("sock.bind = %d\n", ret);
jbkim 0:b72d22e10709 127
jbkim 0:b72d22e10709 128 Endpoint client;
jbkim 0:b72d22e10709 129 char buffer[256];
jbkim 0:b72d22e10709 130 while (true) {
jbkim 0:b72d22e10709 131 printf("\nWait for packet...\n");
jbkim 0:b72d22e10709 132 int n = server.receiveFrom(client, buffer, sizeof(buffer));
jbkim 0:b72d22e10709 133
jbkim 0:b72d22e10709 134 printf("Received packet from: %s\n", client.get_address());
jbkim 0:b72d22e10709 135 server.sendTo(client, buffer, n);
jbkim 0:b72d22e10709 136 }
jbkim 0:b72d22e10709 137 #endif
jbkim 0:b72d22e10709 138
jbkim 0:b72d22e10709 139 #ifdef UDP_Client
jbkim 0:b72d22e10709 140 UDPSocket sock;
jbkim 0:b72d22e10709 141 ret = sock.init();
jbkim 0:b72d22e10709 142 sock.bind(0);
jbkim 0:b72d22e10709 143 printf("sock.bind = %d\n", ret);
jbkim 0:b72d22e10709 144 if (ret == -1) printf("Socket creation Fail\n");
jbkim 0:b72d22e10709 145
jbkim 0:b72d22e10709 146 Endpoint echo_server;
jbkim 0:b72d22e10709 147 echo_server.set_address(ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT);
jbkim 0:b72d22e10709 148
jbkim 0:b72d22e10709 149 printf("\nSend UDP data\n");
jbkim 0:b72d22e10709 150
jbkim 0:b72d22e10709 151 char out_buffer[] = "Hello World\n";
jbkim 0:b72d22e10709 152 ret = sock.sendTo(echo_server, out_buffer, sizeof(out_buffer));
jbkim 0:b72d22e10709 153 if (ret < 0) printf("UDP Send Error\n");
jbkim 0:b72d22e10709 154 else printf("UDP Send: %d\n", ret);
jbkim 0:b72d22e10709 155
jbkim 0:b72d22e10709 156 char in_buffer[256];
jbkim 0:b72d22e10709 157 int n = sock.receiveFrom(echo_server, in_buffer, sizeof(in_buffer));
jbkim 0:b72d22e10709 158
jbkim 0:b72d22e10709 159 in_buffer[n] = '\0';
jbkim 0:b72d22e10709 160 printf("%s\n", in_buffer);
jbkim 0:b72d22e10709 161
jbkim 0:b72d22e10709 162 sock.close();
jbkim 0:b72d22e10709 163
jbkim 0:b72d22e10709 164 eth.disconnect();
jbkim 0:b72d22e10709 165 while(1) {}
jbkim 0:b72d22e10709 166 #endif
jbkim 0:b72d22e10709 167
jbkim 0:b72d22e10709 168 #ifdef NTP
jbkim 0:b72d22e10709 169 // NTP
jbkim 0:b72d22e10709 170 time_t ctTime;
jbkim 0:b72d22e10709 171 ctTime = time(NULL);
jbkim 0:b72d22e10709 172 printf("1. Current Time is: %s\r\n", ctime(&ctTime));
jbkim 0:b72d22e10709 173
jbkim 0:b72d22e10709 174 printf("Trying to update time...\r\n");
jbkim 0:b72d22e10709 175 if (ntp.setTime("0.pool.ntp.org") == 0) {
jbkim 0:b72d22e10709 176 ctTime = time(NULL);
jbkim 0:b72d22e10709 177 printf("2. Current Time is: %s\r\n", ctime(&ctTime));
jbkim 0:b72d22e10709 178
jbkim 0:b72d22e10709 179 // resetting GMT+9
jbkim 0:b72d22e10709 180 set_time( time(NULL) + 32400 ); // 9x60x60
jbkim 0:b72d22e10709 181 //
jbkim 0:b72d22e10709 182 printf("Set time successfully\r\n");
jbkim 0:b72d22e10709 183 //time_t ctTime;
jbkim 0:b72d22e10709 184 ctTime = time(NULL);
jbkim 0:b72d22e10709 185 printf("Time is set to (UTC): %s\r\n", ctime(&ctTime));
jbkim 0:b72d22e10709 186 } else {
jbkim 0:b72d22e10709 187 printf("Error\r\n");
jbkim 0:b72d22e10709 188 }
jbkim 0:b72d22e10709 189
jbkim 0:b72d22e10709 190 eth.disconnect();
jbkim 0:b72d22e10709 191
jbkim 0:b72d22e10709 192 while(1) {
jbkim 0:b72d22e10709 193 }
jbkim 0:b72d22e10709 194 #endif
jbkim 0:b72d22e10709 195 }