Pull-up for reset

Why is there a pull-up resistor on reset on my Uno?

Because a floating reset pin is subject to electrical noise which could cause random resets.

The internal one is "weak". It is good enough to get the processor programmed but not good enough for production.

How weak? Without the external 10K pull-up the reset line on my AVR is at 3.1V (instead of 3.3V). What would cause it to drop into the danger zone?

edit: The datasheet puts it at 30-60K.

jboyton:
How weak? Without the external 10K pull-up the reset line on my AVR is at 3.1V (instead of 3.3V). What would cause it to drop into the danger zone?

edit: The datasheet puts it at 30-60K.

It's pretty weak. At least on Attinys, I have found just touching a wire connected to the reset pin is enough to cause a reset. For some reason, it seems weaker than they say.

smeezekitty:
It's pretty weak. At least on Attinys, I have found just touching a wire connected to the reset pin is enough to cause a reset. For some reason, it seems weaker than they say.

Interesting. I tried touching and rubbing the reset pin (or a wire connected to it) on the ATtiny I'm working with and the voltage actually went up 0.1V. When I held a grounded wire in the other hand it went down 0.1-0.2V. Although I couldn't get it to reset, that sort or reaction does seem a little sensitive. Maybe whether it resets or not depends on the humidity or something.

I guess I'll keep the external pull-up. But I can't help wondering why Atmel didn't put a better one on the inside in the first place. Wouldn't just about everyone want this?

In some configuration the reset pin can be used as a digital pin and its pull-up is the same value as the other GPIOs

• RESET/PCINT14 – Port C, Bit 6
RESET, Reset pin: When the RSTDISBL Fuse is programmed, this pin functions as a normal I/O
pin, and the part will have to rely on Power-on Reset and Brown-out Reset as its reset sources.
When the RSTDISBL Fuse is unprog

Page ~86

But I can't help wondering why Atmel didn't put a better one on the inside in the first place. Wouldn't just about everyone want this?

Exactly the opposite. For mass-produced things (the target market) RESET is disabled after the processor is programmed.

That makes sense. For the hobbyist disabling reset is an annoyance because then programming is more complicated.

The datasheet says that the reset "pull-up" is 30-60K. Then it says if you program the RSTDISBL fuse, reset "functions as a normal I/O pin" and those pins have a pull-up of 20-50K. That doesn't seem like a very big difference. Taking it at face value, either you don't need an external pull-up on the reset pin or you should worry about using the INPUT_PULLUP feature of digital I/O pins.

But the processor is kind of a black box.

jboyton:
Interesting. I tried touching and rubbing the reset pin (or a wire connected to it) on the ATtiny I'm working with and the voltage actually went up 0.1V. When I held a grounded wire in the other hand it went down 0.1-0.2V. Although I couldn't get it to reset, that sort or reaction does seem a little sensitive. Maybe whether it resets or not depends on the humidity or something.

I guess I'll keep the external pull-up. But I can't help wondering why Atmel didn't put a better one on the inside in the first place. Wouldn't just about everyone want this?

Grounding the pin should definitely trigger a reset. Are you sure you were actually connecting it to ground.

No point having a pissing contest about it.

It is entirely proportional. The reset pin - or indeed, any I/O pin which you are monitoring with INPUT_PULLUP - has an internal pull-up of a certain effective impedance. If you connect nothing to it, it is extremely unlikely to be affected by outside influences. If however, you connect an antenna - being a wire or trace of any length - then there is a possibility of picking up impulses.

That possibility is proportional to the length of such an antenna and the source of such impulse. If you are in a highly static-conducive environment - dry and insulated by synthetic fabrics, then it will be easy to produce such impulses by touch. If you are wearing the specified wrist strap (which I suspect very few of us here, do) and have carefully avoided synthetic fabrics, then you are quite unlikely to cause such a problem.


Returning to the OP's question,

jboyton:
Why is there a pull-up resistor on reset on my Uno?

Because the Reset pin is connected to three devices:

  • The RST terminal on the headers
  • The RESET button
  • The DTR line of the USB interface (via a capacitor).
    The latter in particular is the reason for the pull-up. The reset pulse must be sufficiently brief that the chip can start the bootloader again. Given that the internal pull-up is not closely specified (as others have noted), the resistor provides a guaranteed reset pulse length.

smeezekitty:
Grounding the pin should definitely trigger a reset. Are you sure you were actually connecting it to ground.

I was holding the reset line in one hand and a grounded wire in the other hand.

Paul__B:

Returning to the OP's question,Because the Reset pin is connected to three devices:

  • The RST terminal on the headers
  • The RESET button
  • The DTR line of the USB interface (via a capacitor).
    The latter in particular is the reason for the pull-up. The reset pulse must be sufficiently brief that the chip can start the bootloader again. Given that the internal pull-up is not closely specified (as others have noted), the resistor provides a guaranteed reset pulse length.

So I think that means I'm okay without a resistor if the only connection is to a reset button (or occasionally the ISP programmer).

Depends on the environment.
See Section 2.

atmel-AVR042-avr-hardware-design-considerations_application-note 7-2013.pdf (758 KB)

Atmel app note:
The reset line has an internal pull-up resistor, but if the environment is noisy it can be insufficient and reset can therefore occur sporadically.

That sums it up pretty well.

It's interesting to see how the various official Arduino boards implement the reset. Some of them have just an external pull-up resistor, some a resistor and a diode, some a resistor and capacitor, and at least one has all three. None rely on the internal pull-up.

Paul__B:
has an internal pull-up of a certain effective impedance. If you connect nothing to it, it is extremely unlikely to be affected by outside influences.

this is correct but old wives tales persist about the need to add circuits to reset. generally has little effect and some cases more harm than good. even a cap. resistor lead, or short pcb track can act as antenna for noise. usually best left unconnected. i was hired to solve this problem in a welding application and even a pad for that pin proved problematic. thought he might have to start cutting the pin itself off but fortunately non-plated hole solved it.

bottom line there is virtually no difference between the 20k-30k internal pullup and popular but pointless 10k external for rf pulses unless you go down to 50ohm or so. direct connect to vcc has its own drawbacks.

also note that it is possible to read this pin w/o rstdsbl fuse by using as adc input and keeping below the reset threshold. very useful trick for pin limited parts like t13 or t25.

also note that it is possible to read this pin w/o rstdsbl fuse by using as adc input and keeping below the reset threshold. very useful trick for pin limited parts

Really?
Interesting. Of course it could be "risky" depending on how low you let it get.

true. but only a few mv from vcc to transfer, for example, sensor state or even serial data. 10k:1k would be good for 5v or 3.3v signal. people like me with "tiny mind" can get pretty desperate for io.

Thanks, John. That's very useful to know about. I have a Tiny mind.

haha. there are a few of us. im sure you must have checked out the incredible smeezkitty arduino t13 package.