[W5500] 클라이언트 모드 통신불량

이더넷 통신이 처음인데
W5500이용하여 제 하드웨어 맞게
드라이버, 라이브러리 포팅완료하고
제공되는 루프백 서버 예제까지 완료했습니다.
클라이언트 기능도 필요해서 루프백 클라이언트를
확인하려고 하는데 동작이 안되네요…
디버그 메세지는
SOCKET ERROR : -13, SOCKET ERROR : -4
가 번갈아 나옵니다.

#define SOCK_TCPS0 0
uint8_t DATABUF[TCP_Max_Data_Size];
uint8_t Server[4] = {192, 168, 1, 5};

if((Result = loopback_tcpc(SOCK_TCPS0, DATABUF, Server, 3000)) < 0)
{
printf(“SOCKET ERROR : %d\r\n”, Result);
}

이렇게 짜여져있고
루프백 클라이언트 함수 실행전에 초기화, PHY링크설정, 콜백함수등록 등은 이상없습니다.
서브넷마스크 게이트웨이 DNS서버 PC와 W5500 동일하게 설정되어있구요
루프백 예제 함수에서 제가 수정한 내용은 없습니다.
서버는 잘되는데 클라이언트 동작이 안됩니다.
AX1 프로그램에서 TCP → Listen으로 포트 열어놓아도 안되고
HerCules에서도 TCP Server에서 포트 열어놓고 Listen 눌러도 위 에러메시지만 나오네요.

도움부탁드립니다.

안녕하세요

Error -13은 timeout, -4는 socket closed 입니다.
W5500을 Client로 동작시킬때 hercules에서 tcp server를 port 3000으로 open하신게 맞으신가요??

정확한 네트워크 구성도를 알려주시면 빠른 대응이 가능합니다.
예를 들어 PC와 W5500은 같은 클래스에 다른 IP를 가져야하는데, 이부분 확인필요합니다.
image
설정하신 Server의 IP정보에 의하면( Subnet mask가 255.255.255.0 이라 가정), PC가 192.168.1.5가 되고, W5500 은 192.168.1.xxx로 구성되어 있어야합니다.(192.168.1.5을 제외.,)

감사합니다.
irina

서브넷마스크 : 255.255.255.0
기본게이트웨이 : 192.168.1.1
DNS : 8.8.8.0

위는 PC와 W5500 둘다 동일하고 MAC주소도 서로 다릅니다.
IP는 PC 192.168.1.5 / W5500 192.168.1.100 입니다.

근데 방금 PC IP를 192.168.1.5가 아닌 다른걸로 바꿔서 다시 해보니 또 되는데 이건 무슨 현상일까요?

위의 내용처럼 W5500 192.168.1.100으로 되어있고, PC의 IP를 W5500에 설정한 IP를 제외하고 세팅하셨다면, 동작하는것이 맞습니다.
PC IP 를 192.168.1.5로 하면 안될경우는, 공유기에 연결된 다른 것들중 (PC, 네트워크 제품…)192.168.1.5를 가진 제품이 있을 경우입니다.

혹시 다른 IP란 어떤 주소일까요?

감사합니다.
irina