Question regarding stable mode

#1

We are in the process of evaluating the W5200 using the W5200 pictail plus module + hardware stack + dspic33e mcu.
In the provided sample code for the HW stack we found the ‘stable mode’ fragment.

WORD getSn_RX_RSR(BYTE s) { #if defined (__W5200_STABLE_MODE__) WORD Temp1, Temp2; do{ Temp1 = ReadReg16(Sn_RX_RSR0(s)).Val; Temp2 = ReadReg16(Sn_RX_RSR0(s)).Val; }while(Temp1 != Temp2); return Temp1; #else return ReadSockReg16(Sn_RX_RSR0,s).Val; #endif }

We observed that Sn_RX_RSR0 is read twice. Apparently it is risky to read Sn_RX_RSR0 only once. In the Datasheet we cannot find anything on this.
Can you clarify the double reading of Sn_RX_RSR0?
What are the risks of reading Sn_RX_RSR0 only once?

#2

Dear Sir,

WIZnet has a new chip which is W5500.
The spec of W5500 is almost same as W5200. But it is Low power and Low cost version.
If it is possible, you’d better evalute using W5500 instead of W5200.

Thanks,

#3

We in fact evaluate W5500 now, but started the evaluation process with w5200 pictail code examples. That is why we ask the questions here in the w5200 forum.
Can you confirm that ‘stable mode’ is no issue to worry about with w5500?

#4

You’re right. You should read Sn_RX_RSR0 twice.
We have to change in the Datasheet (W5500 as well)on this and we didn’t realize it until you posted.
Noramlly our customer use the drive code ( sample code) which is provided by WIZnet.
The code read it twice.

Sn_RX_RSR0 is Receive size register.
It is consisted of 16 bits , H/W can read 8 bits each time.
To read 2 bytes, there is some time interval.
So we can clarify the double reading of Sn-RX_RST0

Thanks,

#5

This is a clear answer.
Thanks for the explanation.