SPI to Ethernet Slave

Dependencies:   WIZnetInterface mbed

Fork of SPI_HelloWorld_Mbed by mbed official

Committer:
Ricky_Kwon
Date:
Thu Mar 10 01:28:35 2016 +0000
Revision:
5:709f1ad85e97
Parent:
4:eec728094dbc
Child:
6:6edad6566ab0
Ethernet ---> W7500 ---> SPI ---> W7500 ---> Ethernet

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 0:466ad3f38b6b 1 #include "mbed.h"
Ricky_Kwon 3:30b262b6c2f9 2 #include "EthernetInterface.h"
Ricky_Kwon 3:30b262b6c2f9 3
Ricky_Kwon 5:709f1ad85e97 4 #define DHCP 1
Ricky_Kwon 5:709f1ad85e97 5
Ricky_Kwon 5:709f1ad85e97 6 uint8_t mac_addr[6] = {0x00, 0x08, 0xdc, 0x45, 0x56, 0x67};
Ricky_Kwon 5:709f1ad85e97 7 const char ip_addr[] = "xxx.xxx.xxx.xxx";
Ricky_Kwon 5:709f1ad85e97 8 const char mask_addr[] = "xxx.xxx.xxx.xxx";
Ricky_Kwon 5:709f1ad85e97 9 const char gateway_addr[] = "xxx.xxx.xxx.xxx";
Ricky_Kwon 5:709f1ad85e97 10
Ricky_Kwon 5:709f1ad85e97 11 const char* Target_addr = "192.168.0.2";
Ricky_Kwon 5:709f1ad85e97 12 const int Target_port = 22222;
Ricky_Kwon 5:709f1ad85e97 13
Ricky_Kwon 5:709f1ad85e97 14
Ricky_Kwon 3:30b262b6c2f9 15 SPISlave slave(PA_8, PA_7, PA_6, PA_5); // mosi, miso, sclk, ssel
mbed_official 0:466ad3f38b6b 16
mbed_official 0:466ad3f38b6b 17 int main() {
Ricky_Kwon 5:709f1ad85e97 18 int spidata=0;
Ricky_Kwon 5:709f1ad85e97 19 char EthTx[1];
Ricky_Kwon 5:709f1ad85e97 20
Ricky_Kwon 3:30b262b6c2f9 21 printf("SPI to Ethernet Slave\r\n");
Ricky_Kwon 3:30b262b6c2f9 22
Ricky_Kwon 3:30b262b6c2f9 23 /*
Ricky_Kwon 3:30b262b6c2f9 24 * SPI Setting
Ricky_Kwon 3:30b262b6c2f9 25 */
Ricky_Kwon 3:30b262b6c2f9 26 slave.format(8,3);
Ricky_Kwon 3:30b262b6c2f9 27 slave.frequency(1000000);
Ricky_Kwon 5:709f1ad85e97 28 /*
Ricky_Kwon 5:709f1ad85e97 29 * Network Setting
Ricky_Kwon 5:709f1ad85e97 30 */
Ricky_Kwon 5:709f1ad85e97 31 printf("Wait a second...\r\n");
Ricky_Kwon 5:709f1ad85e97 32 EthernetInterface eth;
Ricky_Kwon 5:709f1ad85e97 33 #if DHCP==1
Ricky_Kwon 5:709f1ad85e97 34 printf("Network Setting DHCP\r\n");
Ricky_Kwon 5:709f1ad85e97 35 eth.init(mac_addr);
Ricky_Kwon 5:709f1ad85e97 36 #else
Ricky_Kwon 5:709f1ad85e97 37 printf("Network Setting Static\r\n");
Ricky_Kwon 5:709f1ad85e97 38 eth.init(mac_addr, ip_addr, mask_addr, gateway_addr);
Ricky_Kwon 5:709f1ad85e97 39 #endif
Ricky_Kwon 5:709f1ad85e97 40 eth.connect();
Ricky_Kwon 5:709f1ad85e97 41 printf("IP Address is %s\r\n", eth.getIPAddress());
Ricky_Kwon 3:30b262b6c2f9 42 while(1)
Ricky_Kwon 3:30b262b6c2f9 43 {
Ricky_Kwon 5:709f1ad85e97 44 printf("Check Ethernet Link\r\n");
Ricky_Kwon 5:709f1ad85e97 45 if(eth.link() == true)
Ricky_Kwon 3:30b262b6c2f9 46 {
Ricky_Kwon 5:709f1ad85e97 47 printf("Link up\r\n");
Ricky_Kwon 5:709f1ad85e97 48 break;
Ricky_Kwon 5:709f1ad85e97 49 }
Ricky_Kwon 5:709f1ad85e97 50 }
Ricky_Kwon 5:709f1ad85e97 51
Ricky_Kwon 5:709f1ad85e97 52 /*
Ricky_Kwon 5:709f1ad85e97 53 * Create Client Socket and Connecting
Ricky_Kwon 5:709f1ad85e97 54 */
Ricky_Kwon 5:709f1ad85e97 55 TCPSocketConnection socket;
Ricky_Kwon 5:709f1ad85e97 56 while(1)
Ricky_Kwon 5:709f1ad85e97 57 {
Ricky_Kwon 5:709f1ad85e97 58 while (socket.connect(Target_addr, Target_port) < 0)
Ricky_Kwon 5:709f1ad85e97 59 {
Ricky_Kwon 5:709f1ad85e97 60 printf("Unable to connect to (%s) on port (%d)\r\n", Target_addr, Target_port);
Ricky_Kwon 5:709f1ad85e97 61 wait(1);
Ricky_Kwon 5:709f1ad85e97 62 }
Ricky_Kwon 5:709f1ad85e97 63 printf("Connected to Server at %s\r\n",Target_addr);
Ricky_Kwon 5:709f1ad85e97 64
Ricky_Kwon 5:709f1ad85e97 65 while(1)
Ricky_Kwon 5:709f1ad85e97 66 {
Ricky_Kwon 5:709f1ad85e97 67 if(slave.receive())
Ricky_Kwon 5:709f1ad85e97 68 {
Ricky_Kwon 5:709f1ad85e97 69 spidata = slave.read();
Ricky_Kwon 5:709f1ad85e97 70 EthTx[0] = spidata;
Ricky_Kwon 5:709f1ad85e97 71 socket.send(EthTx, 1);
Ricky_Kwon 5:709f1ad85e97 72 }
Ricky_Kwon 3:30b262b6c2f9 73 }
Ricky_Kwon 3:30b262b6c2f9 74 }
mbed_official 0:466ad3f38b6b 75 }