case 1:
reg_wizchip_cs_cbfunc(SpiDrv_Enable_CSA, SpiDrv_Disable_CSA);
reg_wizchip_spi_cbfunc(SpiDrv_ReadA, SpiDrv_WriteA);
SOCK_ESTABLISHEDA=EthernetDrv_TcpSvSockOpen(0,5000);
ChkPhyLinkA=EthernetDrv_TcpTxByte(0,0x01);
break;
case 2:
break;
// }
}
}
이럴때 tick_10ms switch 문이 실행이 되더라도 while 문 아래 reg_wizchip_cs_cbfunc(SpiDrv_Enable_CSB, SpiDrv_Disable_CSB);
reg_wizchip_spi_cbfunc(SpiDrv_ReadB, SpiDrv_WriteB); 이 녀석들이 함수 콜을 계속 하다보니 case1 에 들어가도 소켓성립이 안되는것 같습니다.
그렇다면 reg_wizchip_cs_cbfunc(SpiDrv_Enable_CSB, SpiDrv_Disable_CSB);
reg_wizchip_spi_cbfunc(SpiDrv_ReadB, SpiDrv_WriteB);
유선상으로 말씀드렸다시피
server와 client의 ip대역대가 맞지않아서 arp 가 정상적으로 이루어지지 않고 있는 상태입니다.
ip대역대를 맞추신후에 테스트 부탁드립니다.
또한, 통신에 문제가 있을때 ping이 잘이루어지는지 확인하시는 것이 좋습니다.
command창에서
ping 192.168.xxx.xxx
입력하시면 됩니다.
안녕하세요.
우선 소스에 time_out 설정을 하였습니다.
MCU Reset은 없어졌는데요. connect 함수 안에 while 문 안으로 들어가 timeout으로 return 됩니다. 그래서 MCU Reset은 없어졌구요 하지만 getSn_Sr 의 상태값은 0x00->0x13 반복됩니다.
w5500에서 리셋 되는것 같습니다.
제가 코딩한 부분 첨부하겠습니다.