W5100디바이스 두개를 1:1로 Cross 케이블로 Mapping 해서 데이터를 UDP로 송수신하는 코드를 짜서 테스트 중인데 테스트가 잘 진행 중이다가
송신을 하였는데 아무리 기다려도 수신쪽으로 데이터가 들어오지 않는겁니다.(인터럽트 발생 안함, 수신데이터 사이즈 레지스터도 증가 안함)
그래서 자세히 여기 저기 검토를 해보니 TX 쪽 W5100 디바이스에서 Send_OK 인터럽트는 발생했는데 Data가 나가지 않는 것으로 확인 되었습니다.
Send_OK 인터럽트는 어떠한 case로 발생되는 것인지, 그리고 이러한 경우가 발생할 수 있는 것인지, 만약 발생하는게 맞다면, 어느정도로 빈번하게
발생하는지 통계같은게 있으신지… 답변을 부탁드립니다.
현제 제가 테스트 하기로는 소켓 송수신 버퍼 사이즈는 2K로 설정하고 1회당 데이터를 500바이트씩 전송하는 수신하는 간단한 테스트 코드이며,
롱런 테스트시 Success 108498 times, Fail 377 times의 빈도로 랜덤한 타이밍에 위와 같은 현상이 발생하고 있습니다. 그런데 한번 발생하면
연달아 발생(2~3, 대체로 2번 연달아 발생)하는 것 같습니다.
추가로 파악된 부분이 있어 추가 사항을 더 적어보자면 Send_OK 인터럽트는 발생했는데 Data가 나가지 않는 것으로 확인된 것이 P & N 핀을
스코프로 찍었을 때 아무런 신호가 실리지 않는 것을 보면 Link가 끊어지는 것이 아닌가 하는 생각이 듭니다.
읽어보시고 제 생각이 맞는것인지 아닌지, 그리고 위의 문제를 어떻게 해결할 방법이 있는지 답변 부탁드립니다.