Electronic – Correct SPI, I2C termination and EMI limiter for external bus

emi-filteringi2cspitermination

[EDIT]
This question has been edited. The bus does not split anymore. The entire question and figures has been edited.

BACKGROUND
I'm using an ATSAM3U2E and want to include both the SPI and I2C bus in the expansion connector for future expansion boards. Since I don't know how many devices will be connected to each bus I'm looking for a guideline in how to terminate the bus correctly on the main board (and backplanes?).

There are actually two backplanes.

schematic

simulate this circuit – Schematic created using CircuitLab

Both busses (I2C and SPI) are connected to the two backplanes with a ribbon cable. On each backplane there are 1 resp. 3 edge connectors where the expansion board/modules are slided in.

The cable distance to the x3 backplane is about maybe 20 – 30mm but signal traces on main board might be about 50mm. The x1 backplane cable is about 50 – 60mm.

I want to keep down the amount of traces and wires so I don't plan to pair them with GND in the cables.

Since I don't know what these modules and expansion board would look like in the future, I guess we have to estimate an average amount of devices. There is already one SPI device on the main board and estimate 1 SPI and one I2C on each module and Expansion board to a total of:

  • Expansion board bus – 1 SPI and one I2C devices.
  • Module bus – 3 SPI and 3 I2C devices.

I aim to run the busses at max speed; SPI @ 20MHz and I2C at 400kHz if possible.

The expansion board is supposed to add new high speed ports such as Ethernet or other more advance expansions. It will most likely have it's own MCU.

The modules are for more simple tasks, such as keypads, LED indicators and maybe a small LCD.

QUESTION
Since the SPI and I2C pass through 4 ribbon connectors, I assume I will put some serie resistors close to the MCU. But how about EMI in the cables? Should I put something at the connectors on the main board and backplanes as well? How about the edge connectors, should I place anything there?

The I2C pull-up resistors, should I put them close to the MCU or close to the I2C bus end on the backplane?. Or at the expansion connector?

If the busses was only on the mainboard, I would have it covered. But since there are so many connectors/cables on the way I'm not quite sure of how to deal with this correctly.

(For the sake of discussion, assume that I have the SPI SS signals covered, no need to point out that I don't mention them.)

Best Answer

At 20 MHz SPI you may have problems with signal integrity as well as EMI. It has more to do with the rise time of the signal. Bad signal integrity could cause SPI to not function. Lack of ground wires in the cables could certainly increase EMI. Both of these could be mitigated some with series resistors to slow down the edges of the SPI signals. I would consider adding extra ground wires in the cable adjacent to the SPI signals. It would be a good idea to simulate this but tools to do that are very expensive at least the ones I use. It is hard to predict what is actually going to happen. I2C is much slower and therefore lower risk. I don't think it matters much where you place the pull-up resistors, but you probably want them on the main board so the I2C bus is not floating if the backplane is not connected.