W5100 연결 끊김 현상
Ethernet Chips
No replies yet. Be the first to reply.
Join the discussion.
Ethernet Chips
No replies yet. Be the first to reply.
Join the discussion.
Share projects and connect with makers.
Joined before the site update? first.
New to WIZnet Makers?
We sent a verification link to your address. Open it to activate your account, then log in.
Accounts from this email provider are reviewed by an administrator after verification. Approval usually takes one business day.
Already have an account?
Enter your email address. If it belongs to an account, we'll send a link to set a new password. Members who joined before the site update use this to set their password.
If an account uses that address, we sent a link to set a new password. The link works once and expires in 30 minutes.
Know your password?
Need an account?
RE: W5100 연결 끊김 현상
by jbkim ·
정말 이해가 안되는 현상이네요.
만약 3개중 뽑아버린 하나가 반드시 있어야만 통신이 되는 상황이 아니라면, 남은 2개는 통신이 제대로 되야 합니다.
W5100으로 만든 보드 3개가 서로 어떻게 통신을 하고 있나요?
각각의 IP와 Mac 어드레스는 어떻게 되나요?
RE: W5100 연결 끊김 현상
by BON ·
처음 질문 초안에 질문 보완 했습니다.
빠른 검토 부탁 드립니다.
RE: W5100 연결 끊김 현상
by hjjeon0608 ·
안녕하세요 고객님.
97번에 지속적인 ARP 패킷을 보낸다는 것은 Master 에서 97번에 지속적으로 UDP send를 보낸다는 의미 같습니다.
펌웨어에서 97번에 지속적으로 UDP send를 하는 구간에서 멈춰있는 것 같은데 이 부분을 수정해 보시고
해결이 안된다면 다시 질문 부탁드립니다.
감사합니다.
RE: W5100 연결 끊김 현상
by BON ·
MCU에서는 97번과 156번을 3~4초 간격으로 폴링하고 있습니다.
wireshark에서 캡쳐한 것을 봐도 정상적일 때(모두 연결되어 있을 때)는 정상적인 주기로 폴링을 합니다.
따라서, 97번을 뽑았을 때 97번으로 계속 보내고 있는 것은 MCU는 아니고, W5100인 것 같습니다.
임시방편으로,
Timeout 발생시 하드웨어 적으로 리셋을 시키고, Init 후 다음 모듈(여기서는 156번)을 호출하는 방식으로 구현하였습니다.
이렇게 할 경우 문제없이 동작하는 것 처럼 보입니다만 이 방법은 비정상적인 방법 이고,
추정되는 오류를 한번 더 생각해 주세요.
기본적인 기능이라서 분명 어이없는 오류가 있을 듯 한데, 찾아내기가 쉽지가 않네요.
혹시… 참고될만한 코드 있으면 부탁 드립니다.
RE: W5100 연결 끊김 현상
by hjjeon0608 ·
폴링의 의미를 좀 더 구체적으로 설명해 주셨으면 합니다.
또한 w5100에서는 UDP send를 할 경우 ARP를 보낸 후 데이터를 보내게 됩니다. 그렇기 때문에 UDP 데이터를 지속적으로 보내는 곳이 없는지 확인 부탁 드린다고 말씀드린 겁니다.
그러므로 데이터를 97번으로 보내고 싶어하는 단말이 존재하므로 당연히 ARP패킷은 나가게 되는 겁니다.
TCP의 경우 connection을 맺는 과정에서 ARP패킷을 주고 받고 그 이후 connection이 맺어있는 동안은 ARP패킷을 주고 받지 않지만, UDP는 connection을 맺는 과정이 없으므로 설계하신 부분에서 UDP를 이용하여 지속적으로 데이터를 보낸다면 ARP패킷을 지속적으로 보내게 됩니다.
이것은 구현상의 방법이므로 오류는 아닙니다. UDP send를 언제 멈춰야 할지 결정하는 것 또한 설계상의 방법이므로
정답은 없다고 보는게 맞습니다.
RE: W5100 연결 끊김 현상
by BON ·
경험이 짧아서 헤메는 것 같습니다.
존재하지 않는 IP로 UDP data를 보냈을 때 time out interrupt를 감지하고, 적정 시간 이후에 send를 clear 하면 된다는 뜻인것 같네요.
그런데, send를 clear 할 수 있는 방법을 못 찾겠네요.
도움 부탁 드리겠습니다.
가지고 있는 pdf 문서에서 검색을 하면 다른 여느 파일과 다르게 정확한 위치에 검색이 되질 않습니다.
수정할 때 검색도 고려해 주시면 감사하겠습니다.
RE: W5100 연결 끊김 현상
by jbkim ·
패킷을 보니 65번 (마스터) 이 156, 97에 주기적으로 UDP패킷을 보내고, 156, 97은 응답을 하는 구조인것 같군요.
W5100이 UDP를 보내기전에 매번 ARP 패킷을 보냅니다.패킷을 받는 쪽에서는 ARP reply를 하는데 만약 랜선이 뽑혀 있으면 ARP에 대한 응답이 없으므로 time out이 납니다.
따라서 코드에서 주기적으로 156, 97에 UDP 패킷을 보내도록 하셨으면, 응답이 없거나, ARP timeout 이 나는 소켓은 close하고 더이상 보내지 않도록 하면 됩니다.
RE: W5100 연결 끊김 현상
by hjjeon0608 ·
안녕하세요 고객님.
데이터시트가 검색이 잘 안되신다면 1.2.4 버전을 받아보시기 바랍니다.
send명령을 끝내는 시점판단에 대해 추천드리는 방법은
먼저 RTR과 RCR을 세팅하시기 바랍니다. RTR에 세팅된 시간에 따라 ARP재전송이 일어나며 RCR값의 횟수 만큼 재전송 이후
Sn_IR의 timeout bit가 1로 변합니다. 이 interrupt값을 이용하여 clear시킨다면 될것 같습니다.
감사합니다.
RE: W5100 연결 끊김 현상
by BON ·
먼저 감사드립니다.
데이터 시트는 1.2.4를 보고 있는데도 다른 문서와 달리 검색이 잘 안되네요.
제 프로그램이 문제인가요? ㅠㅜ
RTR과 RCR을 세팅해서 200mS 간격으로 5번 설정되어 있고, timeout bit를 감지하여 send를 clear하려했으나,
적절한 방법을 못 찾았습니다.
Clear하는 구체적인 방법을 알려주시면 감사하겠습니다.
어떤 명령어를 어떻게 쓰면 send된 data가 지워지고, 보내고자 하는 다음 IP로 보낼 수 있다… 이런 식으로 부탁 드립니다.
RE: W5100 연결 끊김 현상
by hjjeon0608 ·
안녕하세요 고객님.
timeout interrupt가 발생하면 interrupt pin output이 low로 떨어 집니다.(interrupt관련 자세한 내용은 datasheet를 참조하시면 됩니다.) 그러면 MCU에서 이 신호를 받아 interrupt routine으로 가게 되며 이곳에 원하는 내용의 코드를 설계하시면 될겁니다.
감사합니다.