1
\$\begingroup\$

From my recent introduction to pull-up/pull-down resistors, I understand that an input with a pull-down will stay low instead of floating. Since the pull-down resistor leads to ground, couldn't I also use a pulled-down pin as ground?

My raspberry pi has software-activated pull-up/down resistors. I thought I could use them to perform a reset of my connected Arduino nano. To reset the nano, I have to tie a line to ground until the nano switches off. Then I have to disconnect from ground. The line can float at this point. I thought this might be possible by pulling the line on the pi down, and then back up.

Is the pull-down resistor too large to properly perform as a ground?

\$\endgroup\$
1
\$\begingroup\$

A From my recent introduction to pull-up/pull-down resistors, I understand that an input with a pull-down will stay low instead of floating.

If the pin is in fact floating, yes.

Since the pull-down resistor leads to ground, couldn't I also use a pulled-down pin as ground?

The question is what exactly do you want to achieve? If "pin" is a GPIO, just configure it as output and drive it actively to low.

My raspberry pi has software-activated pull-up/down resistors. I thought I could use them to perform a reset of my connected Arduino nano. To reset the nano, I have to tie a line to ground until the nano switches off.

Looking at Wikipedia, the raspberry pi has plenty of GPIO. Just connect one of those (as output) to the reset pin of your "nano". If the reset pin of the nano doesn't have an internal pull up, it wouldn't hurt to add an external one. Set your raspberry output to high as default and pull it down for a few milliseconds (refer to datasheet) to perform a reset of you nano.

Is the pull-down resistor too large to properly perform as a ground?

Maybe i don't understand what you want to achieve exactly, but just driving a GPO to low will probably to what you want.

EDIT regarding the comment:

I thought about driving a GPIO to low, but I didn't try it because I thought 0v and ground were two different things.

Most controllers define the maximum input low voltage around 0.5V. Look at the datasheet, in most cases this depends on the supply voltage. The controller on the Arduino nano is an ATmega328 if i am not mistaken. From the data sheet:

DC characteristics Take a look at the "Input low voltage, RESET pin". It states as max $$ 0,1 * Vcc $$

At Vcc = 5V this gives you $$ 0,1 * 5V = 0,5V $$ So everything below 0.5V on the Reset pin will trigger a reset.

\$\endgroup\$
  • \$\begingroup\$ I thought about driving a GPIO to low, but I didn't try it because I thought 0v and ground were two different things. It might be a solution though, so I'll give it a whirl. \$\endgroup\$ – RocketLauncher Jul 5 '13 at 16:52
  • \$\begingroup\$ Logic 0 != GND. Most controllers define the maximum input low voltage around 0.5V. Look at the datasheet, in most cases this depends on the supply voltage. So everything below 0.5V would be Logic 0. \$\endgroup\$ – Rev1.0 Jul 5 '13 at 17:15
  • \$\begingroup\$ I added some information to the answer. \$\endgroup\$ – Rev1.0 Jul 5 '13 at 17:23
  • \$\begingroup\$ Although only your first sentence had anything to do with the original question, your answer solves my problem. Thanks. And technically I did ask only a yes/no question. \$\endgroup\$ – RocketLauncher Jul 15 '13 at 17:46
2
\$\begingroup\$

Yes, you can pull a floating line or a pin to ground with a pull-down resistor. That's what pull-downs are for.

... if nothing else is pulling the line up.

In most microcontroller schematics, the reset pin needs a pull-up to keep the μC running and not resetting. If you enable an internal pull-down, it will form a voltage divider with the external pull-up. As a result, it will pull the reset pin to some non-zero voltage.

Many microcontrollers (μC for short) have a mechanism for initiating a reset internally. Such mechanism can be invoked from firmware code. It preforms the reset regardless of the reset pin state (voltage).

In some μC, it's possible to disconnect the reset function from the pin and use the pin as digital I/O.

There may be a leakage current associated with a floating pin. (In other words, a floating pin may not be perfectly floating.) This current sets the upper limit for pull-down (or -up) resistance. See also a discussion about pull-downs and leakage currents in this thread.

P.S. Maybe I'm missing your question. Maybe, some specifics are missing from the question, such as the model of μC and wiring of the reset pin.

\$\endgroup\$
  • \$\begingroup\$ I was terribly torn whether to mark this as the answer. It's a much better answer to the question in a strict sense, but @Rev1.0 both answered the question and solved the problem which caused it. That's what I think will be most useful to visitors in the future. \$\endgroup\$ – RocketLauncher Jul 15 '13 at 17:51
0
\$\begingroup\$

Edit: I don't know how I managed to misread 2013 as 2017, but since I found this on google, I'll leave it in the hopes that it'll interest other people

Both of the other answers dealt with your specific situation, however one of the questions you asked is pretty interesting and could have some nice learning opportunities so I'm going to try to deal with it in a more general sense:

couldn't I also use a pulled-down pin as ground

This would work, but it would be entirely dependent on how much current you want the pin to be able to sink. In general, connecting to high resistances such as a microcontroller pin would work, but anything requiring non-negligible current would start to have issues.

Pins with pulldown resistors on them will be slightly above ground - and the higher the value of the resistor the more the pin will be above ground; but for most pulldown values the voltage across them will be negligable. The main issue, however, would be sinking current. What if you wanted to go extreme and ground something beefier than a digital input, like say: a headphone amplifier?

In this case, the chip would need to sink significant currents (100's of milliamps). Lets assume it is connected to an Arduino Uno input pin with a 20kilo-ohm pulldown resistor. The microcontroller in the Uno is an Atmega328, and in the datasheet it lists an input leakage of 1 micro-amp. This is the current that flows through the pulldown resistor to make the pins voltage go low - therefore, when nothing but the pulldown resistor is connected to the pin, the voltage at that pin would equal $$ V_{pin} = I_{leakage} \times R_{pullup} = 1\mu A \times 20k\Omega = 0.02V $$

schematic

simulate this circuit – Schematic created using CircuitLab

Now, lets connect the headphone amplifier. For simplicities sake we can model the headphone amplifier as a resistor of 50 ohms, this would cause 100mA to flow when connected to 5V.

schematic

simulate this circuit

The input resistance of the Uno is about 100 mega-ohm, so it's totally negligible. This means that the resistance of the amplifier would be effectively connected in series with the pulldown resistor. Now, you've got a voltage divider with 50 ohms in the top, and 20, 000 on the bottom! The vast majority of the voltage would be dropped across the bottom resistor, so the chip would see less than 0.01 volts between it's voltage and ground lines, and so it would fail to function.

I'm still learning electronics myself, so don't take this as 100% truth, but I'm pretty sure it's all correct :)

\$\endgroup\$
  • \$\begingroup\$ Very cool, thanks for contributing to the discussion \$\endgroup\$ – RocketLauncher Jul 18 '17 at 15:22

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.