W5500 에서 SPI 통신 확인

#1

안녕하세요?

W5500과 STM32F 제품을 연결 해서 사용 하려고 합니다.

PING 테스트 해서 요청시간이 만료된다고 나와서…

혹시나 싶어서 SPI 부분만 제대로 되었는지 확인을 하고 싶은데요.

혹시…
void W5500Initialze(void){
unsigned char temp;
unsigned char W5500FifoSize[2][8] = {{2,2,2,2,2,2,2,2,},{2,2,2,2,2,2,2,2}};

W5500DeSelect();
// spi function register
reg_wizchip_spi_cbfunc(W5500ReadByte, W5500WriteByte);
//reg_wizchip_spiburst_cbfunc(wizchip_burst_read, wizchip_burst_write);
// CS function register
reg_wizchip_cs_cbfunc(W5500Select, W5500DeSelect);
if(ctlwizchip(CW_INIT_WIZCHIP,(void*)W5500FifoSize) == -1){printf(“W5500 initialized fail.\r\n”);}
do{//check phy status.
if(ctlwizchip(CW_GET_PHYLINK,(void*)&temp) == -1){printf(“Unknown PHY link status.\r\n”);}
}while(temp == PHY_LINK_OFF);
}

이부분에서 LAN 케이블이 연결 되어 있거나 안되어 있을때 구분이 되면 SPI 통신이 된다고 봐야 되는건가요?

#2

안녕하세요,
SPI 관련 신호들이 제대로 설정되어있는지 간단한 확인 방법은
Common Register 중 Version Register를 읽어 보는 것이 가장 정확합니다.
ioLibrary에서 getVERSIONR() 함수가 있으니, 이 함수로 데이터를 읽었을때, 0x04의 값이 나온다면, SPI 설정이 제대로 된것입니다.

감사합니다.
irina

#3

빠른 답변 감사합니다.

if(getVERSIONR() != 0x04){printf(“ACCESS ERR: VERSIONR != 0x04, Read value=%02bx\r\n”, getVERSIONR());while(1);}

0x04 잘 나옵니다.

#4

안녕하세요
Version Register가 제대로 읽힌다면, SPI 설정은 제대로 되어있는 것입니다.

또한, 해당 포스트를 한국포럼으로 옮기겠습니다.

감사합니다
irina

#5

안녕하세요?

https://blog.naver.com/newspacekor/221527749216

요 글좀 한번 확인 부탁 드려도 될까요?

#6

안녕하세요

해당 글 확인하였습니다.
LISTEN상태는 TCP Server가 TCP Client의 접속을 기다리고 있는상태입니다.
TCP Client에서 Destination의 IP와 Port가 맞는지 확인한번더 해보시고 연결시도해보시기 바랍니다

#7

안녕하세요?

확인 하였습니다.

^.^

서버로 두고 테스트를 하고 있었더군요.

확인 해서 해결 했습니다.

감사합니다.