w5500.getPHYCFGR fails


#1

Wanted to know if anyone else has run into this issue using the Wiz850IO network module. if I query
the Wiz850IO module just after setup but prior to communications with a client, everything works great and I get all the info requested. However, after I first start handling clients, code like that shown below fails to work.

Code:

uint8_t GetControllerLinkStatus()
{
if (bitRead(w5500.getPHYCFGR(), 0))
return 1;
else
return 0;
}

Basically, the w5500.getPHYCFGR() read returns all 8 bits as zero. Since calls to w5500.getPHYCFGR() work perfectly well prior to handling clients, I’m stumped as to the cause
of this. As getting link status information is most helpful while in production, I’d really like to find an answer to this. From the Wiz5500 data sheet:

Bit Symbol Description

2 DPX Duplex Status [Read Only]
1: Full duplex
0: Half duplex

1 SPD Speed Status [Read Only]
1: 100Mpbs based
0: 10Mpbs based

0 LNK Link Status [Read Only]
1: Link up
0: Link down

Should I only make the w5500.getPHYCFGR() call after the WIZ sets an interrupt from the INTn pin?