WIZnet Developer Forum

W5200 PHY status Register 체크 관련 문의

W5200 SNMP 소스에
wiz550 소스 참조하여 DHCP를 추가하려는데 잘 몰라서 일단 처음부터 액션을 다 따라해보기로 했습니다.
처음에 PHY를 체크하길래 W5200에도 PHY STATUS 레지스터가 있어서 읽어봤는데 (0x0035)
값이 0x17이 나오네요…PHY Link down 상태로…(5번 bit)

잘은 모르겠지만 PHY가 물리 계층이라고 하던데…
Link down으로 나오지만 snmp 통신 주고받고는 잘 되거든요…
ping 도 되구요…

wiz550 wiz 초기화 부분에
/* PHY link status check /
do {
if(ctlwizchip(CW_GET_PHYLINK, (void
)&tmp) == -1) {
;
//myprintf(“Unknown PHY Link status.\r\n”);
//return 0;
}
} while (tmp == PHY_LINK_OFF);

이렇게 PHY LINK 될때까지 체크하도록 되어있는 것 같은데…
W5200은 상관없는건지…제가 잘못 체크한건지…
물리계층이면… 일단 컨넥터 연결되면 Link up 이 되는거죠 원래 ?
PC 랑 연결해서 그런건지;;; =_= 제가 네트웍 지식이 거의 없어서 ㅠㅠ 질문 수준이 낮아도 이해 부탁드립니다.
밑에서부터 파고 들어서 하기엔 시간이 별루 없어서 ㅠㅠ 도움 부탁드립니다…

안녕하세요.
W5500과 W5200 칩의 PHY status 관련 레지스터는 각각 주소와 각 bit의 의미가 다르며, Datasheet를 통해 확인 하실 수 있습니다.
다만 보드에 전원이 인가 된 후 스위치 / 허브 / PC 등과 물리적 링크가 성립되면 해당 레지스터의 LINK bit는 Link up을 나타내는 1로 변경 되어, 확인 하실 수 있어야 하는 것이 맞습니다.

현재 질문 내용을 보면, W5200 칩을 활용하기 위해 W5500 예제와 W5200 예제를 조합하여 사용 중이신 것으로 보입니다.
가능하면 최신 예제 코드 및 ioLibrary Driver를 제공하는 W5500 칩을 이용하여 개발 하시는 것을 권장합니다.

위즈네트 GitHub repository에 DHCP 및 SNMPv1 프로토콜 예제 및 프로젝트가 공개되어 있으므로 이를 활용하시면 좋을 것 같습니다.
주소는 다음과 같습니다. 모든 코드는 오픈 되어 있으며 곧바로 다운로드가 가능하므로, 활용하셔서 개발에 도움 되시길 바랍니다.

SNMP : github.com/Wiznet/SNMP_LPC11E36_LPCXpresso
DHCP handling example : github.com/Wiznet/W5500_EVB/blo … src/main.c

칩을 바꿀수는 없을 것 같구요… (개발 기간이 얼마 안남아서요… )

5200 데이터시트에 0x0035번지에 PHYSTATUS 라는 레지스터가 있어서 그부분 체크했을때
0x17이 나오네요…


저 부분 체크한거구요…

혹시 파이 체크하기전에 뭔가 되있어야 하는 작업이 있나요 ?
뭐 맥어드레스가 세팅이 되어 있어야 한다거나…??

그런건 아니죠 ?
젤 처음에 해주는거맞죠 ?
일단 물리적으로는 연결이 돼 있는게 맞는데…
왜 PHY LINK DOWN으로 나오는지 모르겠네요… (전글에 말씀드린것처럼 저 상태에서도 snmp 는 잘 됩니다…)

좀 기다려줬어야 하나봐요~
딜레이주고 될때까지 체크하니깐 2초 이후정도에 잘 되네요^^
죄송합니다~

Copyright © 2017 WIZnet Co., Ltd. All Rights Reserved.