Ethernet Shield SS pin 10 to Ground

Ethernet Shield SS pin 10 to Ground:

I'm using a Wiznet Ethernet Shield connected a Freeduino board via a six wire harness connecting their ICSP headers. I am also connecting the boards' Ethernet SS pins (pins 10) to each other. The boards are thus about a foot (30cm) apart.

This setup works great as a web server!

As I do not wish to use the SD service of the shield, I thought I could simply ground pin 10 locally on the Ethernet shield, thus permitting the elimination of the separate wire connecting the number 10 pins on the two boards.

But this causes my web server to NOT work any more !
Even after cold reboot.
Manipulating pin 4 seems to make no difference.

Question: Why do the pins #10 need to be connected instead of just grounding pin 10 on the Ethernet Shield if I only want to use shield for Ethernet and not for SD ?

Thank you for helping me !

Bob W.
Rochester, NY USA

The Ethernet library toggles the state of the SS pin. Grounding it is NOT a good idea. It is an OUTPUT pin, so grounding it creates a short circuit when it is set HIGH.

Pin 10 is used to set the SPI bus as master, too.

But i wasn't grounding pin 10 of the Arduino !
I was grounding pin 10 of the Shield !
Which is NOT mounted on the Arduino.

How is my grounding pin 10 of the shield with a jumper any different than the Arduino grounding it programmatically ?

Bob W.

But i wasn't grounding pin 10 of the Arduino !

Whew. That's good. It wasn't clear.

How is my grounding pin 10 of the shield with a jumper any different than the Arduino grounding it programmatically ?

The Arduino is doing more than that. Think of the SS pin as an "Hey, I'm talking to you!" pin. The device responds only when the SS pin is in one state, and ignores the master when the pin is in the other state. The slave needs to monitor the pin, to determine if it is being talked to.

I suspect it does that using edge detection. No edge == no "Hey, you, listen up". Grounding the pin means that no edges happen (the pin does not toggle from HIGH to LOW or LOW to HIGH).

I don't know whether the SS pin is HIGH to indicate that a particular slave is supposed to listen, or if LOW means that a particular slave is supposed to listen. I could determine that, if important, but it is the slave's responsibility to know. That would determine, though, whether grounding the pin or tying it to 5V was appropriate. Of course, if it is edges that cause the slave to wake up and pay attention, then you have no choice but to run the wire.

As I do not wish to use the SD service of the shield, I thought I could simply ground pin 10 locally on the Ethernet shield, thus permitting the elimination of the separate wire connecting the number 10 pins on the two boards.

But this causes my web server to NOT work any more !
Even after cold reboot.
Manipulating pin 4 seems to make no difference.

Not sure what you have done or why, but if you do not have an SD card in the SD slot on the w5100 ethernet shield, then the operation of the ethernet shield should be unaffected.

zoomkat:

Not sure what you have done or why, but if you do not have an SD card in the SD slot on the w5100 ethernet shield, then the operation of the ethernet shield should be unaffected.

I removed the SD card that was in the slot - jumper between pins 10 still necessary for operation.
Must have to do with edge detection as suggested earlier. I had not thought of this.

Bob W.

Reason for attempting this is that my "Arduino" is a "Bare Bones Board" (BBB) from moderndevice.com, and its form factor does not permit direct seating of the Shield onto the BBB.

I can happily connect the pins 10...
I just didn't understand why it was necessary.

Bob W.