I2C Speed on Teensy 3.x

Status
Not open for further replies.

syso2342

Well-known member
Hello,

For my project I have a long bus of I2C Slaves (Teensies) attached to a Teensy 3.1 as I2C-Master. What is the maximum speed for the Teensy I2C and how
is it changeable? As far as I remember, I could only observe 100KHz or 400KHz on my Logic Analyzer (I don't remember the current
speed). I would like to use I2C >1MHz.

I see there is this (http://forum.pjrc.com/threads/21680-New-I2C-library-for-Teensy3) library, but is it also possible with the original Wire/Wire1 library?
 
Last edited:
I am not sure that can be done with the normal wire.h library. It can be done with the i2c_t3.h library.
However, in cases where you have long lines (how long ?) and several devices on that bus an Oscilloscope really is a necessity.

So......how long is your bus and how many devices are on it ?
Are these devices FM+ capable ?
 
30-35cm is not really that long and you may be able to live without additional hardware in form of I2C bus buffers such as the PCA9600 .

One thing to think about is that the Teensy 3.1 has 2 I2C busses and it may actually be helpful to have 8 slaves per bus and split the work. If you can locate the master physically in the middle that will cut the bus length in halve.

The Teensy 3.x in conjunction with the i2c_t3 library actually suypports i2c frequencies of up to 2.4 MHz. How far you can take this will depend on the overall capacitance of the bus incuding wire length and capacitance of the Teensy adds to the bus as an i2c device.

This article very nicely describes the effect of different pull-up resisitors

The minimum value of a pull-up resistor that is right up to the 3mV limit a regular i2c pin can sink is 1.1KOhm for a 3.3V system. If you go lower the pin may not be able to sink the current anymore and pull the line down below logical zero.
 
Last edited:
Status
Not open for further replies.
Back
Top