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
Re: i2c pull up resistors
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.
Re: i2c pull up resistors
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.
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/
Re: i2c pull up resistors
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
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
Re: i2c pull up resistors
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
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
Re: i2c pull up resistors
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.
Re: i2c pull up resistors
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.
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.
-
- Posts: 1
- Joined: Fri Oct 25, 2019 5:43 am
- Location: Buenos Aires, Argentina
Re: i2c pull up resistors
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?
Do you know if they are still there (and were omitted in the drawings) or they have been removed in the new boards?
Re: i2c pull up resistors
And for those of us who always put LTC4311 active pullups on our I2C lines to get the best performance
-
- Posts: 61
- Joined: Wed Oct 14, 2020 5:39 am
Re: i2c pull up resistors
Can some one please confirm on this.If this is true we need to have the pull ups on the breakout board/slave right?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?
Regards,
Re: i2c pull up resistors
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!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,
Best,
--Geert
Re: i2c pull up resistors
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.
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.
-
- Posts: 61
- Joined: Wed Oct 14, 2020 5:39 am
Re: i2c pull up resistors
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!
Re: i2c pull up resistors
There is no code involved. Use a voltmeter.rasparator wrote: ↑Tue Feb 23, 2021 11:54 amCan you please post the code and the connection diagram for thisCode: 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!
Surely you don't need a diagram to connect one resistor?
-
- Posts: 61
- Joined: Wed Oct 14, 2020 5:39 am
Re: i2c pull up resistors
I am totally noob on this so please forgive my reasoning !
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,

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,
Re: i2c pull up resistors
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
-
- Posts: 61
- Joined: Wed Oct 14, 2020 5:39 am
Re: i2c pull up resistors
So do i need to disable it , if there is any way possible?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.
Does it effect the i2cdetect?
Re: i2c pull up resistors
You shouldn't need to disable it (you can't anyway).rasparator wrote: ↑Wed Feb 24, 2021 5:24 pmSo do i need to disable it , if there is any way possible?
Does it effect the i2cdetect?
It is (usually) required for i2cdetect to work. That is what the pull up is for.
Unreadable squiggle