여러대의 W5500 장치 사용시 간헐적 무응답

안녕하세요?

아래 질문자님처럼 저도 동시에 2개 이상의 W5500장비를 사용해야 합니다.

1대 할때는 문제 없는데요.
2대 동시 사용시 데이타 응답이 없거나 기타 등등의 이유로 동작이 원활하지가 않습니다.
- YouTube <=== 동영상이 안올라 가서 유튜브에 올렸습니다.
확인 부탁 드립니다.

STM32F103 과 연동 해서 사용 중인데요.

wiz_NetInfo gWIZNETINFO = {.mac  = {0x00, 0x08, 0xdc, 0xab, 0xcd, 0xef},
                           .ip   = {1,2,3,4},
                           .sn   = {255, 255, 255, 0},
                           .gw   = {192, 168,0, 1},
                           .dns  = {8, 8, 8, 8},
                           .dhcp = NETINFO_STATIC};

위와 같이 설정 해놓고 IP는 중간에 바꾸어서 사용 합니다.
192.168.0.2
192.168.0.4
이렇게 해서 테스트 하고 있습니다.

  W5500Initialze();
  wizchip_setnetinfo(&gWIZNETINFO);
  print_network_information();

중간에 위와 같이 설정 하구요 (라이브러리에 있는거 그대로 불러서 사용)

Main 문에서 While 에서

  while(1){            
    if(EDIT_Mode==0) Display_FND();  else Display_EDIT();
    W5500(0, buffer, WIFI_PORT); 
  }

위와 같은 방법으로 불러서 사용중입니다.

int32_t W5500(uint8_t sn, uint8_t* buf, uint16_t port){
   int32_t ret;
   uint16_t size = 0, sentsize=0;
   double c_cnt, c_pos, c_pos1,t_pos;
   int drv_value;
   char send_buff[50];
             
#ifdef _LOOPBACK_DEBUG_
   uint8_t destip[4];
   uint16_t destport;
#endif

  switch(getSn_SR(sn)){
    case SOCK_LISTEN:{//0x14    ////////////////////////////////////////////////
      asm("nop");
      break;
    }
    case SOCK_SYNSENT:{//0x15   ////////////////////////////////////////////////
      asm("nop");
      break;
    }    
    case SOCK_ESTABLISHED :   //0x17 ///////////////////////////////////////////
    if(getSn_IR(sn) & Sn_IR_CON){
#ifdef _LOOPBACK_DEBUG_
      getSn_DIPR(sn, destip);
      destport = getSn_DPORT(sn);
      printf("%d:Connected - %d.%d.%d.%d : %d\r\n",sn, destip[0], destip[1], destip[2], destip[3], destport);
#endif
      setSn_IR(sn,Sn_IR_CON);
    }
    if((size = getSn_RX_RSR(sn)) > 0){ // Don't need to check SOCKERR_BUSY because it doesn't not occur.
      if(size > DATA_BUF_SIZE) size = DATA_BUF_SIZE;
      ret = recv(sn, buf, size);


위과 같이 W5500은 자료로 있던건지 인터넷에서 찾은거 그대로 사용 중입니다.

뭐가 문제 인지 모르겠는데요.
무슨 모드로 사용하는건지도 모르겠고 그냥 1개 할때 잘 되길래 그렇게 사용하고 있었는데 2대 사용할때 문제가 될줄은 ㅠ.ㅠ

어떤 부분을 확인 해봐야 되나요?

밑에 다른분 글 달린거 보면 MAC 주소가 언급 되었던데.

W5500 장비 마다 MAC 주소를 임의로 틀리게 주어야 되나요?
이부분 말고는 어떤 부분을 확인 해봐야 될까요?

동영상 보시는 거처럼
인터넷을 통한 공유기가 아니라

노트북 — HUB ----- W5500 (IP 192.168.0.2 PORT 10)
---- W5500 (IP 192.168.0.4 PORT 10)

이렇게 사용 중입니다.

혹시나 싶어서 MAC 주소를 한개의 장치만 바꾸어서 하니까 바로 바로 응답은 옵니다.
좀더 장시간 사용은 해봐야 겠지만…

다른 부분에 문제가 없는지 한번 글은 읽어봐주세요 ^.^

안녕하세요.

MAC 주소는 고유의 주소를 사용하셔야 합니다.
또한, 내부 망에서 TEST용으로 사용할 경우, 임의의 값을 사용하셔도 되지만, 외부망(인터넷)에 연결하시는 경우에는 반드시 IEEE에 할당 받은 값을 사용하셔야 합니다.

감사합니다.