goodney
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.

Thoughs?

thanks!

-Andrew

domesday
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
rew
Posts: 445
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: https://www.bitwizard.nl/shop/

jdj
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 http://www.adafruit.com/products/757 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

jdj
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.

Cheers
/ Daniel

DavidK
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
GeertVc
Posts: 33
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: http://www.ebay.com/itm/331530855962?redirect=mobile.
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.

FernandoAg
Posts: 1
Joined: Fri Oct 25, 2019 5:43 am
Location: Buenos Aires, Argentina

Re: i2c pull up resistors

Fri Oct 25, 2019 5:53 am

I can't find the 1K8 pull-up resistors for SDA1 and SCL1 on the RPi 4B schematics.
Do you know if they are still there (and were omitted in the drawings) or they have been removed in the new boards?

User avatar
MikeDB
Posts: 465
Joined: Sun Oct 12, 2014 8:27 am

Re: i2c pull up resistors

Sun Oct 27, 2019 7:31 pm

rew wrote:
Sat Jun 09, 2012 8:41 pm
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.
And for those of us who always put LTC4311 active pullups on our I2C lines to get the best performance

User avatar
rasparator
Posts: 77
Joined: Wed Oct 14, 2020 5:39 am

Re: i2c pull up resistors

Thu Feb 18, 2021 6:54 pm

I can't find the 1K8 pull-up resistors for SDA1 and SCL1 on the RPi 4B schematics.
Do you know if they are still there (and were omitted in the drawings) or they have been removed in the new boards?
Can some one please confirm on this.If this is true we need to have the pull ups on the breakout board/slave right?

Regards,

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

Re: i2c pull up resistors

Sun Feb 21, 2021 9:08 am

rasparator wrote:
Thu Feb 18, 2021 6:54 pm

Can some one please confirm on this.If this is true we need to have the pull ups on the breakout board/slave right?

Regards,
Not sure if the RPi still has the pull-up resistors in its latest versions, couldn't find the I2C 1k8 resistors on the schematics of the RPi4. But if they are not stuffed anymore, then you definitely need to provide them yourself!

Best,
--Geert

User avatar
Milliways
Posts: 681
Joined: Fri Apr 25, 2014 12:18 am
Location: Sydney, Australia

Re: i2c pull up resistors

Sun Feb 21, 2021 11:30 am

All Pi have pullups on pin 2/3 (CM possibly excepted), even if you can't find them on the woefully incomplete schematics.

It is a trivial exercise to TEST if there are pullups if you have any doubt.
Configure as inputs THEN connect a 1.8kΩ to Gnd and you will find the voltage is 3.3/2V!

In a similar vein, if using a 5V board with external pullups you can remove them, but this can be difficult/next to impossible.
The SOLUTION is to install a resistor 2*pullup to Gnd and all is good. (I consider connecting anything exceeding 3.3V to be an unacceptable risk.)
It is simple to determine the value of the external pullups either by direct measurement or using a voltage divider calculation.
Most boards with pullup use rather high pullup, so the current will not be an issue and well within the nominal 3mA limit (16mA max).

An alternative is a Schottky diode clamp to 3.3V.

User avatar
rasparator
Posts: 77
Joined: Wed Oct 14, 2020 5:39 am

Re: i2c pull up resistors

Tue Feb 23, 2021 11:54 am

Code: Select all

It is a trivial exercise to TEST if there are pullups if you have any doubt.
Configure as inputs THEN connect a 1.8kΩ to Gnd and you will find the voltage is 3.3/2V!
Can you please post the code and the connection diagram for this

User avatar
Milliways
Posts: 681
Joined: Fri Apr 25, 2014 12:18 am
Location: Sydney, Australia

Re: i2c pull up resistors

Tue Feb 23, 2021 9:39 pm

rasparator wrote:
Tue Feb 23, 2021 11:54 am

Code: Select all

It is a trivial exercise to TEST if there are pullups if you have any doubt.
Configure as inputs THEN connect a 1.8kΩ to Gnd and you will find the voltage is 3.3/2V!
Can you please post the code and the connection diagram for this
There is no code involved. Use a voltmeter.

Surely you don't need a diagram to connect one resistor?

User avatar
rasparator
Posts: 77
Joined: Wed Oct 14, 2020 5:39 am

Re: i2c pull up resistors

Wed Feb 24, 2021 4:05 pm

I am totally noob on this so please forgive my reasoning ! :roll: I am a tester and i have some new part numbers so cant reveal the datasheet.

I used multi-meter and found ~3.3V on the both i2c clock and data lines.(when gps is connected on i2c lines)
I didn't use any external pull up.

the peripheral(gps) cant be detected on the issuing i2cdetect -y 1.(no address is shown on the output)

But if I connect an accelerometer sensor , i2cdetect -y 1 (gives the detected address) on the same i2c lines (gps removed)

The data sheet says there is an internal pull up for gps.

what could be the reason for no detection using i2cdetect?

Is there an internal pull up already present on the Raspberry Side ( though the data sheet doesn't show anything)
Even if both the resistors are present(internal pull ups on both RPI and on GPS chip side) , the effect will be parallel resistor which will ultimately decrease the whole resistance. Will it effect the detection? What is the best practice - pull up on peripheral side or on the host side?
Can some one provide a check i can do on both the peripheral to arrive at the reason for not detecting the gps peripheral using i2cdetect.

Br,

User avatar
rpdom
Posts: 18493
Joined: Sun May 06, 2012 5:17 am
Location: Chelmsford, Essex, UK

Re: i2c pull up resistors

Wed Feb 24, 2021 4:09 pm

There are 1K8 pull up resistors on-board for i2c on pins 3 and 5 of all A/B/Zero/400 models of Pi so far.
Unreadable squiggle

User avatar
rasparator
Posts: 77
Joined: Wed Oct 14, 2020 5:39 am

Re: i2c pull up resistors

Wed Feb 24, 2021 5:24 pm

There are 1K8 pull up resistors on-board for i2c on pins 3 and 5 of all A/B/Zero/400 models of Pi so far.
So do i need to disable it , if there is any way possible?
Does it effect the i2cdetect?

User avatar
rpdom
Posts: 18493
Joined: Sun May 06, 2012 5:17 am
Location: Chelmsford, Essex, UK

Re: i2c pull up resistors

Wed Feb 24, 2021 7:17 pm

rasparator wrote:
Wed Feb 24, 2021 5:24 pm
So do i need to disable it , if there is any way possible?
Does it effect the i2cdetect?
You shouldn't need to disable it (you can't anyway).

It is (usually) required for i2cdetect to work. That is what the pull up is for.
Unreadable squiggle

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