SPI to Ethernet Slave

Dependencies:   WIZnetInterface mbed

Fork of SPI_HelloWorld_Mbed by mbed official

Committer:
Ricky_Kwon
Date:
Thu Mar 10 05:55:20 2016 +0000
Revision:
9:32e3edb40824
Parent:
8:46bd5776b6ae
123123

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 8:46bd5776b6ae 18
Ricky_Kwon 8:46bd5776b6ae 19 /**(volatile uint32_t *)(0x41001014) = 0x0060100;
Ricky_Kwon 8:46bd5776b6ae 20 *(volatile uint32_t *)(0x41003000) = 0x10;
Ricky_Kwon 8:46bd5776b6ae 21 *(volatile uint32_t *)(0x41003004) = 0x10;
Ricky_Kwon 8:46bd5776b6ae 22 *(volatile uint32_t *)(0x41003008) = 0x10;
Ricky_Kwon 8:46bd5776b6ae 23 *(volatile uint32_t *)(0x41003080) = 0x10;
Ricky_Kwon 8:46bd5776b6ae 24 *(volatile uint32_t *)(0x41003098) = 0x10;*/
Ricky_Kwon 8:46bd5776b6ae 25
Ricky_Kwon 8:46bd5776b6ae 26 int SPI_Data=0;
Ricky_Kwon 8:46bd5776b6ae 27 int SPI_Send_Cnt=0;
Ricky_Kwon 8:46bd5776b6ae 28 int Length=0;
Ricky_Kwon 8:46bd5776b6ae 29 char Eth_Receive_Check_Flag = 1;
Ricky_Kwon 8:46bd5776b6ae 30 char EthTx[1]={0};
Ricky_Kwon 9:32e3edb40824 31 char EthRx[1]={0,};
Ricky_Kwon 9:32e3edb40824 32 int test;
Ricky_Kwon 5:709f1ad85e97 33
Ricky_Kwon 3:30b262b6c2f9 34 printf("SPI to Ethernet Slave\r\n");
Ricky_Kwon 3:30b262b6c2f9 35
Ricky_Kwon 3:30b262b6c2f9 36 /*
Ricky_Kwon 3:30b262b6c2f9 37 * SPI Setting
Ricky_Kwon 3:30b262b6c2f9 38 */
Ricky_Kwon 3:30b262b6c2f9 39 slave.format(8,3);
Ricky_Kwon 3:30b262b6c2f9 40 slave.frequency(1000000);
Ricky_Kwon 5:709f1ad85e97 41 /*
Ricky_Kwon 5:709f1ad85e97 42 * Network Setting
Ricky_Kwon 5:709f1ad85e97 43 */
Ricky_Kwon 5:709f1ad85e97 44 printf("Wait a second...\r\n");
Ricky_Kwon 5:709f1ad85e97 45 EthernetInterface eth;
Ricky_Kwon 5:709f1ad85e97 46 #if DHCP==1
Ricky_Kwon 5:709f1ad85e97 47 printf("Network Setting DHCP\r\n");
Ricky_Kwon 5:709f1ad85e97 48 eth.init(mac_addr);
Ricky_Kwon 5:709f1ad85e97 49 #else
Ricky_Kwon 5:709f1ad85e97 50 printf("Network Setting Static\r\n");
Ricky_Kwon 5:709f1ad85e97 51 eth.init(mac_addr, ip_addr, mask_addr, gateway_addr);
Ricky_Kwon 5:709f1ad85e97 52 #endif
Ricky_Kwon 5:709f1ad85e97 53 eth.connect();
Ricky_Kwon 5:709f1ad85e97 54 printf("IP Address is %s\r\n", eth.getIPAddress());
Ricky_Kwon 3:30b262b6c2f9 55 while(1)
Ricky_Kwon 3:30b262b6c2f9 56 {
Ricky_Kwon 5:709f1ad85e97 57 printf("Check Ethernet Link\r\n");
Ricky_Kwon 5:709f1ad85e97 58 if(eth.link() == true)
Ricky_Kwon 3:30b262b6c2f9 59 {
Ricky_Kwon 5:709f1ad85e97 60 printf("Link up\r\n");
Ricky_Kwon 5:709f1ad85e97 61 break;
Ricky_Kwon 5:709f1ad85e97 62 }
Ricky_Kwon 5:709f1ad85e97 63 }
Ricky_Kwon 8:46bd5776b6ae 64
Ricky_Kwon 5:709f1ad85e97 65 /*
Ricky_Kwon 5:709f1ad85e97 66 * Create Client Socket and Connecting
Ricky_Kwon 5:709f1ad85e97 67 */
Ricky_Kwon 5:709f1ad85e97 68 TCPSocketConnection socket;
Ricky_Kwon 5:709f1ad85e97 69 while(1)
Ricky_Kwon 5:709f1ad85e97 70 {
Ricky_Kwon 5:709f1ad85e97 71 while (socket.connect(Target_addr, Target_port) < 0)
Ricky_Kwon 5:709f1ad85e97 72 {
Ricky_Kwon 5:709f1ad85e97 73 printf("Unable to connect to (%s) on port (%d)\r\n", Target_addr, Target_port);
Ricky_Kwon 5:709f1ad85e97 74 wait(1);
Ricky_Kwon 5:709f1ad85e97 75 }
Ricky_Kwon 5:709f1ad85e97 76 printf("Connected to Server at %s\r\n",Target_addr);
Ricky_Kwon 5:709f1ad85e97 77
Ricky_Kwon 5:709f1ad85e97 78 while(1)
Ricky_Kwon 5:709f1ad85e97 79 {
Ricky_Kwon 5:709f1ad85e97 80 if(slave.receive())
Ricky_Kwon 5:709f1ad85e97 81 {
Ricky_Kwon 9:32e3edb40824 82 socket.receive(EthRx, sizeof(EthRx));
Ricky_Kwon 9:32e3edb40824 83 slave.reply(EthRx[0]);
Ricky_Kwon 5:709f1ad85e97 84 }
Ricky_Kwon 9:32e3edb40824 85
Ricky_Kwon 3:30b262b6c2f9 86 }
Ricky_Kwon 3:30b262b6c2f9 87 }
mbed_official 0:466ad3f38b6b 88 }