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).
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:
Which MCU are you using? Which kind of interface between MCU and W5100 are you using? Direct Bus, Indirect Bus or SPI?
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
If you did all, but the status is still incredible, such as 0x94, I think the chip is damaged.