I2C at 2.4 MHz with five microcontrollers over 2 meters

high frequencyhigh speedi2cmicrocontrollerteensy

I have five Teensy 3.1 and I would like to interface them with I2C running at 2.4 MHz.

The maximum Line Length will be around 2 meters.

Will it work?

What's the best way I can wire this up?


update on Aug 25:

Regarding the manual saying 100kbit at page 1169; that's a generic note about I2C. If you go down a couple of pages, there is a table with the divider values needed to set the Clock speed of the bus. And the maximum is 240 (2.4 mhz).

Apart from this; I done a couple of test between two teensy 3.1 and the bus works flawlessy at 2.4 Mhz. Its still slower since (According to wikipedia) some devices can support up to 5Mhz Clock speed

I just want to link 5 Teensy 3.1 and not any other devices.

My problem is that I Don't have a scope and i cannot afford one at the moment; so I'm going by guess.

If 2 meters is too much; I could perhaps reduce the link length to 40 cm by using the second I2C port on each Teensy 3.1 to link to the next.

Should I use Cat5 cable?
twisted pair?

Best Answer

There is a highspeed specification for I2C, you can read about it here: http://www.i2c-bus.org/highspeed/

However, it needs special hardware and very few devices support it.

I2C fast mode supports up to 1MHz, but you have to be very careful about how much capacitance you have on the bus. Two meters of wire is likely a non-starter.

So I would consider other interfaces. SPI might be a good choice as EE developer mentioned.

All this assumes that you mean megahertz not millihertz :)