SPI to Ethernet Slave
Dependencies: WIZnetInterface mbed
Fork of SPI_HelloWorld_Mbed by
Revision 5:709f1ad85e97, committed 2016-03-10
- Comitter:
- Ricky_Kwon
- Date:
- Thu Mar 10 01:28:35 2016 +0000
- Parent:
- 4:eec728094dbc
- Child:
- 6:6edad6566ab0
- Commit message:
- Ethernet ---> W7500 ---> SPI ---> W7500 ---> Ethernet
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Wed Mar 09 08:23:53 2016 +0000 +++ b/main.cpp Thu Mar 10 01:28:35 2016 +0000 @@ -1,9 +1,23 @@ #include "mbed.h" #include "EthernetInterface.h" +#define DHCP 1 + +uint8_t mac_addr[6] = {0x00, 0x08, 0xdc, 0x45, 0x56, 0x67}; +const char ip_addr[] = "xxx.xxx.xxx.xxx"; +const char mask_addr[] = "xxx.xxx.xxx.xxx"; +const char gateway_addr[] = "xxx.xxx.xxx.xxx"; + +const char* Target_addr = "192.168.0.2"; +const int Target_port = 22222; + + SPISlave slave(PA_8, PA_7, PA_6, PA_5); // mosi, miso, sclk, ssel int main() { + int spidata=0; + char EthTx[1]; + printf("SPI to Ethernet Slave\r\n"); /* @@ -11,13 +25,51 @@ */ slave.format(8,3); slave.frequency(1000000); - + /* + * Network Setting + */ + printf("Wait a second...\r\n"); + EthernetInterface eth; + #if DHCP==1 + printf("Network Setting DHCP\r\n"); + eth.init(mac_addr); + #else + printf("Network Setting Static\r\n"); + eth.init(mac_addr, ip_addr, mask_addr, gateway_addr); + #endif + eth.connect(); + printf("IP Address is %s\r\n", eth.getIPAddress()); while(1) { - if(slave.receive()) + printf("Check Ethernet Link\r\n"); + if(eth.link() == true) { - int SPI_re = slave.read(); // Read byte from master - printf("SPI_re=%c\r\n",SPI_re); + printf("Link up\r\n"); + break; + } + } + + /* + * Create Client Socket and Connecting + */ + TCPSocketConnection socket; + while(1) + { + while (socket.connect(Target_addr, Target_port) < 0) + { + printf("Unable to connect to (%s) on port (%d)\r\n", Target_addr, Target_port); + wait(1); + } + printf("Connected to Server at %s\r\n",Target_addr); + + while(1) + { + if(slave.receive()) + { + spidata = slave.read(); + EthTx[0] = spidata; + socket.send(EthTx, 1); + } } } } \ No newline at end of file