SPI to Ethernet Master

Dependencies:   WIZnetInterface mbed

Fork of SPI_HelloWorld_Mbed by mbed official

Committer:
Ricky_Kwon
Date:
Wed Mar 09 08:23:40 2016 +0000
Revision:
4:1b4fc2571fd4
Parent:
3:feec15e3bb27
Child:
5:fc5ffd86b1df
simple

Who changed what in which revision?

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