Mbed wiz550io spi통신문의

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");
    }
}

}


스코프 확인결과

mosi 에서는 출력이 나가는데

miso 에서 아무런 값이 나오지않습니다.

답변 부탁드립니다.

안녕하세요.

WIZ550io는 MAC이 있는 Network module입니다.

따라서 MAC 세팅은 하지 않으셔도 됩니다.

SPI pin 세팅은 맞으시구요.

아래는 WIZ550io를 이용하여 구성한 코드입니다. 참고해주세요.

developer.mbed.org/teams/Ethern … 9/main.cpp

감사합니다.