I2C communications, pull up resistors and level translators

Status
Not open for further replies.

AverageGuy

Well-known member
I am communicating over I2C between a Teensy 2 (5V) and a Raspberry Pi (3.3V) vi a bidirectional level translator (Adafruit). It's working over a short distance fine at default speed without pull up resistors but do I need resistors on both sides of the level translator? I'm going to assume that I only need it on the master side for the SCL line, but what about the SDA line?

Thanks,
Jim.
 
I'd second Christoph's request.

It is sometimes the case that pull-up resistors are already mounted on these Sparkfun boards.
However, in general, I2C requires pull-up resistors on both lines. Don't assume but read some technical documentation!

Such as This and This
 
It's adafruit, not sparkfun.

Actually, I hate sparkfun's habit of adding pull-ups to I2C boards. Two sparkfun boards? => You get two pairs of pull-ups and have to remove one.
 
You're right. I had that Sparkfun stuck in my head from a previous thread ;-)
the Adafruit level shifters I have seen don't have pullup resistors on them.

Having pullup resistors on a board is not necessarily a bad idea. I do that on my own LED shields. However, it is also good practice to put some solder jumpers on the board so you can disable them and easily re-enable them.
I've not seen that on the sparkfun boards and that makes it really a PITA if you have more than one device on the bus.
 
Love it! As soon as I oven my big mouth I am proven wrong :cool:

Yes, 10K is plenty. Bit of a brute force method somewhat limiting you in speed. Fine at the default 100kHz I2C bus frequency.
However, if you want to transfer more data, the Teensy can go to I2C bus frequencies in excess of 2MHz. I use 1MHz on my LED shields (with an I2C bus buffer and level converter chip).
 
Yes, 10K is plenty. Bit of a brute force method somewhat limiting you in speed.

My application would run just fine at 110 baud over a serial link, so I sure don't need anything higher than 100khz. The data is small and time critical only if the delay runs into seconds. I anticipate the distance between the two units to be less than a foot.

Thanks,
Jim.
 
Status
Not open for further replies.
Back
Top