Electronic – What values of resistor and capacitor to use for AVR reset pin isolation

avrisolationreset

Background…

I'm a newbie to AVR applications. I recently built two ATTINY13-based circuits (glorified LED blinkers) which worked correctly (independently) on the breadboard. When I combined them on a solder perfboard with a shared power supply, things went haywire. After much investigation, it appeared they were constantly resetting.

I had left pin 1 (reset) of each micro un-connected. I researched proper ways of handling the reset pin and from this implemented the following:

  1. Added a 100uF electrolytic capacitor in parallel with the power supply to help with any potential current draw the power supply would be too "slow" to deal with.

  2. Added a 4.7K resistor from VCC to RESET

  3. Added a 0.1uF ceramic capacitor from GND to RESET

These steps solved the problem completely.

The question:

The page I linked above is providing advice when doing ISP (in-system programming) which I am not doing (yet). (I'm programming the micros separately with no other components connected to them.)

I've seen several different values of capacitor (10nF, 0.1uF, etc.) and resistor (4.7K, 10K, etc.) and am not sure what factors alter these values. Can anyone shed some light on how reset pin isolation works, and how to calculate component values to use? Can you explain what values to use if there is no in-system programming header?

AVR Reset Pin Isolation schematic

Best Answer

Atmel AVR042: AVR Hardware Design Considerations tell us that the capacitor on the reset pin is not necessary. Personally I think it's overkill. There is no reason for you to continue making dozens of AVR circuits, each and every one with that redundant capacitor.

As for the reset pullup resistor:

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. Refer to datasheet for value of pull-up resistor on specific devices. Connecting the RESET so that it is possible to enter both high-voltage programming and ordinary low level reset can be achieved by applying a pull-up resistor to the RESET line. This pull-up resistor makes sure that reset does not go low unintended. The pull-up resistor can in theory be of any size, but if the Atmel®AVR® should be programmed from e.g. STK500/AVRISP the pull-up should not be so strong that the programmer cannot activate RESET by draw the RESET line low. The recommended pull-up resistor is 4.7kΩ or larger when using STK500 for programming. For debugWIRE to function properly, the pull-up must not be smaller than 10kΩ.

If you take a look at professional products that incorporate the AVR micros, such as the Arduino, its numerous clones, dozens of dev kits, you'll find that most use a 4.7kΩ or 10kΩ resistor.

And particularily for your ATtiny13, its datasheet specifies that the pullup should ideally range [20kΩ, 80kΩ].