SPI to Ethernet Slave

Dependencies:   WIZnetInterface mbed

Fork of SPI_HelloWorld_Mbed by mbed official

Committer:
Ricky_Kwon
Date:
Thu Mar 10 02:12:58 2016 +0000
Revision:
7:b09eade395f7
Parent:
6:6edad6566ab0
Child:
8:46bd5776b6ae
spi to 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 6:6edad6566ab0 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 * Create Client Socket and Connecting
Ricky_Kwon 5:709f1ad85e97 53 */
Ricky_Kwon 5:709f1ad85e97 54 TCPSocketConnection socket;
Ricky_Kwon 5:709f1ad85e97 55 while(1)
Ricky_Kwon 5:709f1ad85e97 56 {
Ricky_Kwon 5:709f1ad85e97 57 while (socket.connect(Target_addr, Target_port) < 0)
Ricky_Kwon 5:709f1ad85e97 58 {
Ricky_Kwon 5:709f1ad85e97 59 printf("Unable to connect to (%s) on port (%d)\r\n", Target_addr, Target_port);
Ricky_Kwon 5:709f1ad85e97 60 wait(1);
Ricky_Kwon 5:709f1ad85e97 61 }
Ricky_Kwon 5:709f1ad85e97 62 printf("Connected to Server at %s\r\n",Target_addr);
Ricky_Kwon 5:709f1ad85e97 63
Ricky_Kwon 5:709f1ad85e97 64 while(1)
Ricky_Kwon 5:709f1ad85e97 65 {
Ricky_Kwon 5:709f1ad85e97 66 if(slave.receive())
Ricky_Kwon 5:709f1ad85e97 67 {
Ricky_Kwon 6:6edad6566ab0 68 SpiData = slave.read();
Ricky_Kwon 6:6edad6566ab0 69 EthTx[0] = SpiData;
Ricky_Kwon 5:709f1ad85e97 70 socket.send(EthTx, 1);
Ricky_Kwon 5:709f1ad85e97 71 }
Ricky_Kwon 3:30b262b6c2f9 72 }
Ricky_Kwon 3:30b262b6c2f9 73 }
mbed_official 0:466ad3f38b6b 74 }