Posts: 7
Joined: Thu May 31, 2012 12:26 am

i2c pull up resistors

Wed Jun 06, 2012 6:24 pm

While I wait for some I2C breakout boards to arrive, I'm looking for some confirmation on one point:

Since the RPi board already has 1.8K resistors on the I2C lines, any pull-ups included on a breakout board are superfluous and can be removed. On the other hand, they probably won't cause any problems as long as they aren't too big or too small in value.




Posts: 258
Joined: Fri Oct 21, 2011 5:53 pm
Location: UK

Re: i2c pull up resistors

Wed Jun 06, 2012 6:59 pm

Well if the breakout board also had 1.8K resistors that would mean you have two resistors in parallel making the combined resistance only 900ohms. That is quite low and will result in a higher than necessary current draw when the line is pulled low of almost 4mA. So you would be better off leaving off any pull-up resistors on the breakout board.

User avatar
Posts: 423
Joined: Fri Aug 26, 2011 3:25 pm

Re: i2c pull up resistors

Sat Jun 09, 2012 8:41 pm

Agreed. I also designed a breakout board (rpi_serial) and I didn't know of the pullups on the raspberry pi. So there are spots on the board for the pullups but only the very, very first board that had to be sent out before the pullups on the RPI were know has had these installed. I hope they have been removed by the owner by now.

The board continues to have the pullup resistor pads installed. Possibly in the future the raspberry won't have them anymore (*), so you might want to install them here.

(*) Which would be good for those who want to use the pins as a general purpose IO pin.
Check out our raspberry pi addons:

Posts: 7
Joined: Mon Dec 26, 2011 3:15 pm

Re: i2c pull up resistors

Sun Jun 10, 2012 1:09 am

I am thinking of using the Adafruit BSS138 quad logic converter to translate 5V systens to 3.3V.

However it states that "This breakout has 4 BSS138 FETs with 10K pullups."... 10k pull up in parallel with the RPi 8k pull-ups would result in a 4.5k pull-up total; way too low IMHO.

That would be a show stopper, but I am considering to try to figure out which componments on this breakout are the pull-ups for the 3.3V side and remove them. That would make the board usable.

On a related issue; I would like to use the board to translate UART traffic. Does the UART require pull-up resistors?

Best regards
/ Daniel

Posts: 7
Joined: Mon Dec 26, 2011 3:15 pm

Re: i2c pull up resistors

Mon Jun 11, 2012 8:17 am

Ah - the RPi has 1.8k pullups and not 8k (of course)... This makes it even lower, parallell resistance (10k + 1.8k) is then 1.5k. According to an I2C spec file I have from Philips, the minimum allowed for a 3.3V system is somewhere around 1k... that ought to work in other words.

I also see that 10k pullups on the 5V side is ok for 'standard mode' (up to ~80pF bus capacitance) however for 'fast mode' they are way too large, max is ~3k for a ~80pF bus.

/ Daniel

Posts: 10
Joined: Mon Feb 27, 2012 8:34 pm
Location: Kent, UK

Re: i2c pull up resistors

Mon Jun 11, 2012 6:28 pm

I also made my own add-on board before I knew about the 1.8K pullups, so I have extra 2.2K ones as well. I've connected a DS1307 RTC, which is a 5V chip but with a minimum logic high input of 2.2V, so I've also not bothered with level translation on I2C but that depends on what you're connecting. Works fine for me.

User avatar
Posts: 29
Joined: Fri Apr 12, 2013 7:45 am
Location: Belgium

Re: i2c pull up resistors

Fri Jul 10, 2015 6:40 am

This seems to me a very good alternative:
This is a breakout board with a PCA9548 on board, allowing you to have 8 separate I2c busses _and_ level conversion all in one.

The nice thing is that the input I2c lines have pull up resistors of 10k, resulting in low influence in combination (parallel) with the 1k8 pull ups of the RPi. Worst case, you can always remove them of course...

The output I2c lines have no pull up resistors, giving you the total freedom to choose the best pull up resistor values for your particular situation.

My 2ct.

Return to “Interfacing (DSI, CSI, I2C, etc.)”