Electronic – I2C routing configuration


I have several slave devices communicating with a microcontroller master on an I2C bus. My PCB is only about 1" x 1" and the devices are only communicating at 400 kHz. What is the best way to connect all the I2C peripherals to the microcontroller? In a star configuration or in a daisy-chain configuration?

Best Answer

Propagation delay is not a problem with a 400kHz I2C bus on a 1" by 1" PCB. Lay the traces out in whatever way gives the cleanest routing.

A rule of thumb in EMC design is that you need to consider transmission line effects if your traces are 1/10 the wavelength of your highest significant frequency.

Your highest significant frequency in I2C, which uses pullup resistors, is the fall time. That's usually on the order of 100ns when controlled by a microcontroller with fairly fast I/O. The primary frequency of the 100ns fall time is 5 MHz (which, you'll note, is much greater than 400kHz).

At 5MHz the wavelength is on the order of 100 meters. The rule of thumb says don't worry about it until you get close to 10 meters.