RS-485 is the same old-school as RS-232, it is slow (115200), unreliable, etc, but it may be kilometers long (at 2400 baud, this option definitely not for Icarus
CAN is definitely faster and reliable but is very complicated, I've worked with CAN node programming about a decade ago and it was a hell.
And both are not supported by Raspberry Pi.
All we need - fast synchronous addressed shift register (SPI). No overhead to FPGA design, easy to implement and debug, also we will reduce overall rig stale rate due to fast syncronous data exchange between master CPU and FPGAs.
And Raspberry PI has 3 SPI ports (I hope it is true).
RS-485 is reliable and fast enough for mining.CAN is definitely faster and reliable but is very complicated, I've worked with CAN node programming about a decade ago and it was a hell.
And both are not supported by Raspberry Pi.
All we need - fast synchronous addressed shift register (SPI). No overhead to FPGA design, easy to implement and debug, also we will reduce overall rig stale rate due to fast syncronous data exchange between master CPU and FPGAs.
And Raspberry PI has 3 SPI ports (I hope it is true).
But why would we even care about Raspberry Pi ?
Because it is 35$ ARM platform, possible working (who knows . Please advise me another cost-effective solution for command&control of FPGA boards.
I have several linux-based dev.boards on my desktop now (TI OMAP, Atmel's AT91RM9200, Atheros MIPS) but they all are over-sized and cost more than $300 each.