Using a W5200 on a Wiz820io here. Everything appears to be working okay except the MISO line doesn’t seem to be sending any data. I’ve verified with a logic analyzer what is happening - I see the CS pin go low as it should, MOSI shifting data correctly (and I’ve decoded the bytes to make sure the initialization sequence is as it should be - everything looks good), SCK looks good, but there is nothing coming out of the MISO line, ever, even when reading. I have the PWDN line shorted to GND, RST shorted to 3V3, power supplies are stable bench power sources. I’ve tried two separate Wiz820io modules now, one new out of the box and never touched before - same result. Any ideas?
BTW - I am using a 3.3V Arduino Uno with Arduino v1.0.5r2 and I have modified the W5100.h and .cpp files, and changed MAX_SOCKETS to 8.
You must keep RST low for longer than the supply voltage, it would be good to connect Arduino but if you can not at least put a 47uF capacitor to ground and a resistor of 47K to the +.
To be clear I’m not using the reset pin at all. That’s why I hard wired it to 3v3 so the device can never be in a reset state from that pin. Also, the wiz820io has a pull up on the nRST line as well, but I’m just being extra careful. Any further thoughts?
If MISO is always in high state my be a RST problem as already happened to me with other chips like the W5100 and is for this reason that I prefer to move the pin RST with a dedicated pin.
I looked for some Arduino shields and in fact there is only a resistance to the + line ( and also W5100/W5200 library don’t support reset pin) but if you search in the forum you can find many examples of this problem when talk with any W**00 device (See W5200 datasheet at page 80).
From Wiz820Io Datasheet (page 5):
"Reset : This pin is active low input to initialize or re-initialize W5200.
It should be held at least 2us after low assert, and wait for at least 150ms after high de-assert in order for PLL logic to be stable."
There is a sw reset command MR via SPI but if it is not initialized correctly understand that there may be some problems.
There is also a pin SPI_EN in W5200 pinout but this should be already set up within the module Wiz820Io.
Groped not harmful.
I’ve probed the reset pin and it is always in a high state (wired straight to 3V3)… so I don’t think it’s a reset problem. Also, MISO is always in a low state, not high. I’m not using an Arduino Shield, I’ve got a Wiz820io wired up on a breadboard and have verified the connections multiple times against the datasheet.
Not sure what’s up with this, but this device only seems to come out of reset when i connect the reset pin to an arduino’s reset pin, whether the arduino is powered or not, I’ve tried shorting RST to GND, RST to 3V3, but it only comes out of reset when connecting RST to the arduino’s RST. What’s up with that? The Wiz820io has an onboard RST 10k-ohm pullup to 3V3. The arduino has a 10k pullup to the power rail - but again this works when the arduino is OFF or ON.
If I remember correctly Arduino has a capacitor to ground (100nF).
At this point you have a ground problem.
Like I said it is better to connect the reset to an arduino (or other MPU) I/O so you can determine the reset cycle more accurately and have the cleanest fronts.
Thank you but shouldn’t shorting the reset to 3v3 ensure the chip is not in reset ever?
From Wiz820Io Datasheet (page 5):
"Reset : This pin is active low input to initialize or re-initialize W5200. It should be held at least 2us after low assert, and wait for at least 150ms after high de-assert in order for PLL logic to be stable."
Once you’ve put voltage and is stable you have to hold down the RESET for at least 2 uSec and then put it back up.
Before giving ANY signal by SPI must wait at least 150 msec.
If the signal has a dirty front or have ground problems you ever leave the reset state and logic of module dont work and ever answer!
Sure enough. At this point the only thing i can think is the edge wasn’t clean. Thank you!