15
\$\begingroup\$

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

\$\endgroup\$
15
\$\begingroup\$

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Ω].

\$\endgroup\$
  • 1
    \$\begingroup\$ 20k to 80k, or 20k divided by 80k? :) \$\endgroup\$ – JYelton Sep 17 '12 at 5:43
  • \$\begingroup\$ Thanks for the Hardware Design Consideration link. I wasn't aware of this document! \$\endgroup\$ – JYelton Sep 17 '12 at 5:49
  • \$\begingroup\$ Haha, I used that sign because everybody's using the minus sign. Negative resistance wouldn't make any sense either :) \$\endgroup\$ – Jonny B Good Sep 17 '12 at 6:00
  • \$\begingroup\$ I usually see the tilde (~) used to mean "through" but also "approximate." I guess it depends on context. Thanks for pointing out the datasheet lists the reset pullup resistor, I hadn't realized it would include that information. The datasheet I have shows the Pull-up Resistor for the Reset Pin to be between 30k and 80k. At least I know where to look now. Thanks! \$\endgroup\$ – JYelton Sep 17 '12 at 6:05
  • 4
    \$\begingroup\$ Another good indicator for the resistor range of values I commonly see is: \$20\,k\Omega \ldots 80\,k\Omega\$ \$\endgroup\$ – PetPaulsen Sep 17 '12 at 6:33
7
\$\begingroup\$

I always just use a 10k pullup resistor to Vcc on the /Reset pin and have never had any problems. It's also generally a good idea to include a 100nF capacitor near the Vcc pin between Vcc and GND for stable chip operation. In my opinion the capacitor on the reset pin is not necessary, which is to say I have never included one in any AVR circuit I have developed (and I've developed lots) and it's never caused me grief.

\$\endgroup\$
  • \$\begingroup\$ Can you explain (or point to a good newbie tutorial) how these tiny capacitors help in addition to or instead of a larger electrolytic that's parallel to the power supply? \$\endgroup\$ – JYelton Sep 17 '12 at 3:49
  • 1
    \$\begingroup\$ it deals with "ripple frequencies" and can be a more-complicated-than-meets-the-eye topic, but at a minimum 100nF is an accepted rule-of-thumb standard practice for bypass capacitors. Here's one (of many) reference article that might be of interest: seattlerobotics.org/encoder/jun97/basics.html. You can also find related posts on this site by searching for 'bypass' or 'decoupling' \$\endgroup\$ – vicatcu Sep 17 '12 at 3:54
  • \$\begingroup\$ Large electrolytic capacitors handle the low frequencies, but are ineffective at high frequencies. Small ceramic capacitors (0.1uF) handle the high frequencies, but are ineffective at low frequencies. \$\endgroup\$ – Technophile Jan 23 at 23:17
  • \$\begingroup\$ So use both, the supply should have a large one anyway, and have the small one locally. Induction and HF can be an issue, but in the extreme. Interesting that HSVP considerations do not have a diode in series with that reset pin resistor too. \$\endgroup\$ – mckenzm Apr 19 at 6:50

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.