[From QnA]WIZ812MJ have a random reset problem

I am having problems with a WIZ812MJ.

All seems well until I try to open a socket.

Then I get a status of 0x94.

Reset is also unstable and modules will not always behave the same. I noticed in previous posts that chips earlier than “0942” have a random reset problem. The chips on our 2 modules are “0938”.

Do you have any solution?

I think you should check whether the read and write function of registers is normal or not firstly.
And then check the initial status of the socket Sn_SR is 0x00 (which means closed) .
For the second question, I think you should check the reset signal by using oscilloscope.
It must be satisfied our guide on our datasheet.
Actually the W5100 old version (before 0942) has little problem with reset signal but it occurs very occasionally.
In that case you can overcome using synced reset signal with main clock of W5100 (can be used such as D-LATCH).

Thanks for response.

  1. All read and writes are OK. I can read back all values from registers. I can even transmit and receive.

  2. What does the status of 0x94 mean? I cannot find this in data sheet and I am trying to make sure I can account for all states.

  3. I hold the reset low for 2msecs originally. I was getting about 30% error. Now I have changed routine to pulse reset low for 1ms then high for 1ms and repeat six times. Now I have only 5% error. I am looking for less than 1% error.

  4. We have purchased the modules, so I cannot add anything to the reset line of the chips. The chips on the modules are the old ones. I need to get replacement modules or have them repaired, as warranty repair.


You mean you can open socket successfully and send and receive TCP packet normally? Only the status of socket is abnormal? Fantastic!
Anyway please check following points:

  1. Which MCU are you using? Which kind of interface between MCU and W5100 are you using? Direct Bus, Indirect Bus or SPI?

  2. Are you sure that you are following the standard W5100 initialization steps?

    a) For H/W reset, check the voltage level of W5100 reset pin (active low 0V). After the reset you should maintain the voltage of reset pin to 3.3V high.

    b) Set w5100 base address according to interface between MCU and W5100

    c) software reset w5100 by setting MR and wait more than 200ms after reset (ex. for PIC24 MCU 400ms quite enough delay, for atmega128 200ms)

    d) use driver function socket() to open your desired socket

    e) use dirver function getSn_SSR() to read the socket status

  3. If you did all, but the status is still incredible, such as 0x94, I think the chip is damaged.