Go Down

Topic: Connecting pin (5v intollerant) to source pulled up (by 30kOhm) to 5v. Bad? (Read 435 times) previous topic - next topic


I've recently broken a pin on my DUE (it's stuck at 3v now).  I'm assuming it is because it had been connected to a node at 5v (pulled high by 30kOhm).  I contacted my collaborator (who is much more experienced than I) and told him about the issue.  He seemed unconcerned replying:

"The BED is actually not sending any signals to the DUE. Only the pins are pulled high (to 5V though 30 kOhm resistors) which is overridden by the DUE because it actively sets the pins high or low right on boot. Setting a pin high or low is done without such a pull-up or down resistor. Instead is the pin in a low-impedance state which easily overrides the 30kOhm."

And I may as well note:  There are 4 other pins operating under the same conditions (the node is 5v before being connected to the DUE and then it goes down to either 0 or 3.3v when connected).  These other pins haven't broken yet and have been functioning fine for some time now.

Can anybody explain what he means?  On a fundamental level what is it that 'hurts' a pin?  Is it the voltage or the current?



When the device is first powered up, the pins are in 'input' mode in which case they are not begin driven by the device itself. (Sometimes this is referred to as 'tri-state' mode in that the pin output circuit is not driving the pin.) If you have a pull-up resistor on a pin in that condition then it will float high which is probably the 5V you are seeing.
If your program sets the pin as an output then it will be driven high or low by the device itself, and for the DUE that means 3.3V (high) or 0V (low) or there abouts (these things are not always exact!). This is why it drops to 3.3v when the program starts running.
Now it is very important to understand what "5V tolerant" means: it means that it can withstand a 5V input. While I don't know for sure for the DUE, this generally means there is a clamping circuit on the pin input that stops the 5V damaging the input.
In the above paragraph I've said NOTHING about the output! When set as an output, a pin will transition between 0V and 3.3V as required, regardless of whether or not it is labelled as "5V tolerant". If you want the device to switch between 0V and 5V then you need to use an "open collector" pin and my knowledge of the DUE is not up to knowing of such things exist (and I don't have time to look it up right now). However "open collector" is not the same thing as "5V tolerant".
If you put a pull-up resistor onto a pin that is configured as an output, then the outcome will be determined by the size of the resistor. You mention 30KOhm in which case you should probably be OK as the extra loading (i.e. current source or sink caused by the pull-up resistor) is very small, but it is very easy to damage the electronics that surround a pin if it is force-fed too high a current.

Go Up