W5500 phy stuck at 10mbps / 1/2 Duplex

#1

Greetings,

My W5500 is stuck in 10MBPS 1/2 Duplex mode. When it auto negotiates with my switch, it won’t choose 100MBPS / Full Duplex. Further, Even if I set the phy to 100mbit it just falls back to 10mbps immediately.

Thanks in advance for your help!

Here’s my source code:

void initWizchip()
{
wiz_NetInfo netInfo;
wiz_PhyConf phyConf;

getRunningNetConfig(&netInfo);  


ETH_CS_set_level(true);	// high select.
ETH_RST_set_level(false); // hold the chip in reset.

reg_wizchip_cris_cbfunc(wizCritEnter, wizCritExit);
reg_wizchip_cs_cbfunc(wizChipSelect, wizChipDeselect);
reg_wizchip_spi_cbfunc(wizReadByte, wizWriteByte);
reg_wizchip_spiburst_cbfunc(wizSpiRead, wizSpiWrite);

_delay_ms(50);			// wait for the chip to reset.
ETH_RST_set_level(true);
_delay_ms(50);

phyConf.by = PHY_CONFBY_SW;
phyConf.duplex = PHY_DUPLEX_FULL;
phyConf.mode = PHY_MODE_MANUAL;
phyConf.speed = PHY_SPEED_100;	

wizphy_setphyconf(&phyConf);

ctlnetwork(CN_SET_NETINFO, (void*)&netInfo);

}

#2

hello,

Are you really half-duplex at 10mbps?
If you do not configure phy, the W5500 will work with auto negoation, which is the default setting.

If you set it to 100mbps, the link is caught at 100mbps or not caught.
So I think that you are not doing the right thing, or might be wrong.