W6100 version register 읽기 오류?

[W6100] [wiz610io]

wiz610io를 사서 개발중에 있습니다.

spi통신이 제대로 되었는지 확인하기 위해서 chip의 register값을 읽고있는데

uint8_t tmpstr[6];
ctlwizchip(CW_GET_ID, (void*)tmpstr);
uint16_t tmp16;
ctlwizchip(CW_GET_VER, (void*)&tmp16);

를 하였을 경우 chip id 는’ W6100’ 으로 잘 읽히는데
version이
image

이렇게 뜹니다. datasheet상으론 4661이 읽혀야 하는데요.

관련 코드 첨부드립니다. 버전이 제대로 읽히지 않는 이유를 찾아주세요. 부탁드립니다.

void W6100Initialze(void)
{
uint8_t temp;

W6100Reset();

/* SPI method callback registration */
reg_wizchip_spi_cbfunc(W6100SpiReadByte, W6100SpiWriteByte, W6100SpiReadBurst, W6100SpiWriteBurst);
//reg_wizchip_spi_cbfunc(W6100SpiReadByte, W6100SpiWriteByte, 0, 0);

/* CS function register */
reg_wizchip_cs_cbfunc(W6100CsEnable, W6100CsDisable);

/* Critical Section */
//reg_wizchip_cris_cbfunc(your_critical_enter, your_critical_exit);

unsigned char W6100_AdrSet[2][8] = {{2, 2, 2, 2, 2, 2, 2, 2}, {2, 2, 2, 2, 2, 2, 2, 2}};

#if 0
do
{
if (ctlwizchip(CW_GET_PHYLINK, (void *)&temp) == -1)
{
printf(“\r\n Unknown PHY link status.”);
}
} while (temp == PHY_LINK_OFF);
printf(“\r\n PHY OK.”);
#endif

#if 0
temp = IK_DEST_UNREACH;

if (ctlwizchip(CW_INIT_WIZCHIP, (void *)W6100_AdrSet) == -1)
{
	printf("\r\n W6100 initialized fail.");
}

if (ctlwizchip(CW_SET_INTRMASK, &temp) == -1)
{
	printf("\r\n W6100 interrupt");
}
//printf("\r\n interrupt mask: %02x",getIMR());

#endif
}

void network_init(void)
{
uint8_t syslock = SYS_NET_LOCK;

//W6100Initialze();
//LL_GPIO_ResetOutputPin(SPI1_CS_GPIO_Port, SPI1_CS_Pin);
gWIZNETINFO.ip[0] = 192;
gWIZNETINFO.ip[1] = 168;
gWIZNETINFO.ip[2] = 10;
gWIZNETINFO.ip[3] = 135;
gWIZNETINFO.sn[0] = 255;
gWIZNETINFO.sn[1] = 255;
gWIZNETINFO.sn[2] = 255;
gWIZNETINFO.sn[3] = 0;
gWIZNETINFO.gw[0] = 192;
gWIZNETINFO.gw[1] = 168;
gWIZNETINFO.gw[2] = 10;
gWIZNETINFO.gw[3] = 1;
gWIZNETINFO.dns[0] = 8;
gWIZNETINFO.dns[1] = 8;
gWIZNETINFO.dns[2] = 8;
gWIZNETINFO.dns[3] = 8;

ctlwizchip(CW_SYS_UNLOCK, &syslock);


ctlnetwork(CN_SET_NETINFO, &gWIZNETINFO);

//ctlnetwork(CN_SET_TIMEOUT, &gWIZNETTIMEOUT)

}