0
\$\begingroup\$

I know the Raspberry Pi GPIO uses 3.3V, and you should never connect voltages higher than that to the pins. However, when connecting an I2C device I accidentally put 3k pull-up resistors to 5V (because that's what the sensor used) on the I2C lines and it worked fine.

What are probable maximum voltages where a Raspberry Pi GPIO a) works correctly, and what are limits where it b) doesn't do permanent damage to the board? Does it depend on things like resistance and/or capacitance?

\$\endgroup\$
  • 2
    \$\begingroup\$ 'probably' doesn't lend itself well to an exact answer, and I doubt there is much experience, much less hard evidence on this. If you want to interface to a 5V peripheral, why not use a $0.20 level shifter? \$\endgroup\$ – Wouter van Ooijen Sep 22 '18 at 15:10
  • \$\begingroup\$ I connected the pull-up to 5V by accident, meant to use 3.3V (which is well in the spec range of the sensor), and got curious. \$\endgroup\$ – Sampo Sep 22 '18 at 15:56
3
\$\begingroup\$

The only safe answer is to do only what the datasheet says is allowed.

That doesn't mean that abusing the limits always causes the device to operate incorrectly or to damage it. It only means these things might happen, and the manufacturer is off the hook if they do.

Probably what happend in your case is that the protection diodes of the pins in the processor were forward biased. Let's say the went to 600 mV forward drop, so 3.9 V relative to ground. That means the current thru them was (1.1 V)/(3 kΩ) = 370 µA. That could be bad, depending on what exactly the datasheet says about it.

For some devices, unexpected currents like that can cause them to crowbar on power up. For others, they will mostly work OK, but some things, particularly anything analog, gets flaky or out of spec. For others, they continue to operate fine.

When you violate datasheet parameters you don't know what you get. Asking what you can get away with is the wrong question and just plain irresponsible anyway. We are not here to help you practise irresponsible electrical engineering.

In your particular case, just connect the pullups to 3.3 V. The IIC voltage thresholds are specified so that this should work. Check your slave devices to make sure that 3.3 V is solidly above the minimum guaranteed logic high level.

\$\endgroup\$
  • \$\begingroup\$ Good answer. Only thing missing is what the spec says for the Pi. From the other answer I believe the answer to b) is that <4.1V should certainly not break the Pi? Couldn't quickly find answer to a) in the datasheet. \$\endgroup\$ – Sampo Sep 22 '18 at 15:53
  • 3
    \$\begingroup\$ <4.1 should not break it but it might not work properly. \$\endgroup\$ – Wouter van Ooijen Sep 22 '18 at 16:05
  • 1
    \$\begingroup\$ @Sampo You risk latching-up the RPI. That's a failure mode unrelated to DC breakdown voltage. As Olin says, latch-up is a failure mode that " might happen". It isn't clear to me how vulnerable a RPI is to latch-up - some chip-makers take more care than others in preventing latch-up. Pull-ups to +5V make latch-up more likely. Latch-up can kill a chip. But even worse, it can continue working, making errors. Why risk it? \$\endgroup\$ – glen_geek Sep 22 '18 at 20:14
1
\$\begingroup\$

Integrated Circuits are tested for overvoltage, by forcing a continuous current into each pin, one pin at a time, letting that current seek return paths (all possible paths will be used) and possibly cause latchup (high currents may flow, destroying various onchip transistors) or interfere with precise transistor operation in BandGaps (voltage references, etc) or in comparators or in the diffpairs of OpAmps.

Thus, each pin having been INTENTIONALLY over-driven, both below ground and above VDD, and the tested silicon was found to not only survive and continue to operate and indeed operate accurately, the accidental and resistor-limited injection of currents should not be a problem. Just keep the current levels low; use 1Kohm resistors, at least.

\$\endgroup\$
0
\$\begingroup\$

(Read also comments below for a definition of absolute maxima/maximum ratings).

See datasheet of Raspberry Pi

Chapter 6, excerpt:

enter image description here

Conclusion: maximum 4.10 V.

In the table below there the maximum capaticance can be found: 5 pF

enter image description here

\$\endgroup\$
  • \$\begingroup\$ Do you know that 'absolute maximum ratings' is the term for conditions that don't (immediately) kill your device, but do not guarantee its proper working? \$\endgroup\$ – Wouter van Ooijen Sep 22 '18 at 15:11
  • 2
    \$\begingroup\$ @elliot what you say is correct. But what I add is that staying within the absolute maxima does NOT guarantee correct behaviour. The OP asked for "a) works", so the asbolute maxima are irrelevant. You must use the normal operating conditions (or the equivalent wording). \$\endgroup\$ – Wouter van Ooijen Sep 22 '18 at 15:47
  • 2
    \$\begingroup\$ @michel You quoted a figure from the abolute maxima (4.1V) without mentioning that such level doesn't gurantee normal behaviour. It only gaurantees *no immediate permanent damage". \$\endgroup\$ – Wouter van Ooijen Sep 22 '18 at 15:49
  • 2
    \$\begingroup\$ There is some standardized interpretation for the absolute maxima. The closest I can quickly find is (italics by me) "(1) Stresses beyond those listed under Absolute Maximum Ratings may cause permanent damage to the device. These are stress ratings only, which do not imply functional operation of the device at these or any other conditions beyond those indicated under Recommended Operating Conditions. Exposure to absolute-maximum-rated conditions for extended periods may affect device reliability." \$\endgroup\$ – Wouter van Ooijen Sep 22 '18 at 15:53
  • 1
    \$\begingroup\$ Sorry - I meant the question as two parts: What are the limits where is works, and what are the limits where it doesn't break. I realize it can be understood as an "AND" as well. \$\endgroup\$ – Sampo Sep 22 '18 at 19:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.