Arduino – receive Ethernet W5100 signal to multiple arduinos


I'm after doing a device in which I'll use 4 AtMega328 chips; Since they'll all be mounted on the same PCB, and I need an ethernet connection for them, I was wondering if there's a way to share the ethernet signal from the WizNet W5100 shield to all 4 of them?

Note, I will only need to receive the signals, which is broadcasted anyway, and I have the code inside of each 328 which knows what data to read and what to ignore; So basically, the same data could be delivered to all of them, but I'd like to avoid the need of having a) stupidly 4 ethernet shields + ethernet switch inside or b) less stupidly (but still) another 328 to receive the data and forward the data via serial Tx/Rx chained through all other chips…?

I know they only have one pair of serial interface, but since I only need to read the data, I could use the Tx to link to another's Rx with no issues.

I was just wondering, if is there a way to split what's coming out of WizNet IC or not…?

I know it connects via ICSP header normally, but it's using digital pins, not the actual ICSP, if I'm not mistaken, right..? So, could it possibly work if I'd steal the signal off those pins and just parallerly link them to others…?

And to answer the plausible question asked: No, it cannot be done via one of the ICs directly and forwarded via serial. If this is the way, I'll have to add another 328 to take care of that. If I can avoid that, however, it would be awesome.


Best Answer

The W5100 chip connects to the Arduino via an SPI interface. This is a bit-serial interface (but not async serial RS-232). SPI is a master-slave interface: the Arduino is master, and the W5100 is slave.

No, you can't share a single W5100 across multiple Arduinos. The best you can do is to add a fifth Arduino to act as the master to control the W5100, and then connect that Arduino (somehow) to the other four.