mbed 에서 w5500 이더넷쉴드 예제 Nucleo_F103RB_W5500HelloWorld 사용.
MBED Nucleo F411RB 사용.
mosi = PA_7
miso = PA_6
sclk = PA_5
cs = PB_6
Reset = PA_9
spi 8비트, mode3 설정.
예제에서
const char * IP_Addr = “192.168.1.2”;
const char * IP_Subnet = “255.255.255.0”;
const char * IP_Gateway = “192.168.1.1”;
unsigned char MAC_Addr[6] = {0x00,0x08,0xDC,0x4D,0xD3,0x46};
ethernet.init(MAC_Addr,IP_Addr,IP_Subnet,IP_Gateway);
으로 설정하고,
ethernet.getMACAddress(), ethernet.getIPAddress(), ethernet.getNetworkMask(), ethernet.getGateway()
[b]함수로 설정을 불러오면,
W5500 Application Started
SPI Initialized
W5500 Networking Started
Initialized, MAC: 00:00:00:00:00:00
IP: 0.0.0.0, MASK: 0.0.0.0, GW: 0.0.0.0
으로 나옵니다. 아래 코드 전문과 연결사진 첨부합니다. 원인이 무엇인지 문의합니다. [/b]
#include “mbed.h”
#include “WIZnetInterface.h”
#define USE_DHCP 0
#define LOOPBACKPORT 5000
const char * IP_Addr = “192.168.1.2”;
const char * IP_Subnet = “255.255.255.0”;
const char * IP_Gateway = “192.168.1.1”;
unsigned char MAC_Addr[6] = {0x00,0x08,0xDC,0x4D,0xD3,0x46};
DigitalOut myled1(LED1);
Serial pc(USBTX, USBRX);
SPI spi(PA_7, PA_6, PA_5); // mosi, miso, sclk
WIZnetInterface ethernet(&spi, PB_6, PA_9);//scs(PB_6), nRESET(PA_9); // reset pin is dummy, don't affect any pin of WIZ550io
int main() {
spi.format(8,3);
spi.frequency(1000000);
mbed_mac_address((char *)MAC_Addr); //Use mbed mac addres
//Set serial port baudrate speed: 115200
pc.baud(9600);
wait(1);
pc.printf("W5500 Application Started \r\n");
char buffer[256];
while(1)
{
//int ret;
#if USE_DHCP
int ret = ethernet.init(MAC_Addr);
#else
int ret = ethernet.init(MAC_Addr,IP_Addr,IP_Subnet,IP_Gateway);
#endif
printf("SPI Initialized \r\n");
wait(1); // 1 second for stable state
printf("W5500 Networking Started \r\n");
wait(1); // 1 second for stable state
if (!ret) {
pc.printf("Initialized, MAC: %s\r\n", ethernet.getMACAddress());
ret = ethernet.connect();
if (!ret) {
pc.printf("IP: %s, MASK: %s, GW: %s\r\n",
ethernet.getIPAddress(), ethernet.getNetworkMask(), ethernet.getGateway());
} else {
pc.printf("Error ethernet.connect() - ret = %d\r\n", ret);
exit(0);
}
} else {
pc.printf("Error ethernet.init() - ret = %d\r\n", ret);
exit(0);
}
TCPSocketServer server;
server.bind(LOOPBACKPORT);
server.listen();
pc.printf("Disconnected.\r\n");
}
}
}