[WIZ850io] SOCKERR_SOCKINIT 에 관해 질문이 있습니다.

안녕하세요.

현재 저는 Wiz850io모듈과 Nucleo-L496ZG(stm32L496ZG) 키트를 연결하여 이더넷 통신을 하려고 합니다.

wiznet에서 제공하는 라이브러리를 사용하여, 포팅 후 핑 테스트까지는 문제없이 진행하였습니다.

문제는 핑 테스트가 정상적으로 진행이 되고, RJ45 케이블이 연결되는 곳에서 불이 들어옴에도,

PHY_LINK가 off가 되어 있습니다. on이 되질 않음

그리고 SOCK_CLOSED 상태에서 소켓을 생성하려고 하면, SOCKERR_SOCKINIT를 리턴받습니다.

이 부분을 해결하기 위한 방법이 어떤것이 있을까요?

확인부탁드립니다.

감사합니다.

먼저 질문 주셨는데 답이 없어서 다시 올리셨네요. 여기에 답변드릴께요~
핑이 되신다니, common register 영역의 접근은 잘 되는 것으로 보입니다.
그래도 지금 현상은 아예 Sn_commnad 가 제대로 되지 않는 것 같은데,
먼저 read/write 가 정상인지 확인하는 것이 확실한 시작이 될 것 같습니다.
먼저, 확인차 아래 주소의 Version register 를 읽어서 확인해 주세요. 0x04 가 나와야 합니다.
image

그다음, socket register 부분에도 정상적으로 접근이 되는지 확인해 봐야 합니다.
기본값이 0x00이 아닌 영역은 TTL 이라는 레지스터가 있습니다.
image
socket 0번의 TTL 을 읽어 보시고 0x80 이 나오는지 확인해 보시고,
Sn_MR 값도 쓰고, 읽고 같은 값이 나오는지 확인해 보시는게 먼저 인것 같습니다.

close상태에서 socket이 생성되지않고 SOCKERR_SOCKINIT를 리턴 받는 경우는
Source IP Address가 0인 경우입니다.
이런 경우 ping 테스트도 동작하지 않습니다.
위의 분의 답변처럼 각 레지스터들 값이 잘읽히는지 확인해보시고
Source IP Address가 제대로 읽히는지, PING 테스트가 성공한것이 맞는지 다시한번 확인해보시기 바랍니다.

Link LED의 경우에 추가로 확인하셔야할것은
LAN cable의 종류입니다.

W5500은 AUTO MDIX를 지원하지 않습니다.
Crossover cable을 사용하신다면, LAN이 연결된 반대쪽의 장치가 Auto-MDIX를 지원해야 사용하가능합니다.
반대쪽 장치가 Auto-MDIX를 지원하지 않는다며느 Straight cable을 사용하셔야합니다.