Is it neccesary to pull-up the reset pin on home made Arduino board?

Hello All

I am building a perfboard Arduino.

I cam across a blog where the builder had placed a pull-down resistor on his reset pin, effectively placing the board in permanent reset mode. This made me realise a pull-up resistor is required, or is it?

I am wondering if I need to put a pull up resistor on the reset pin, or if I can safely allow it to float.

Currently I have a 2313 chip on a standalone board which does not have the reset pin pulled up or down when not programming and this seems to be running fine. Am I setting myself up for some random resets or is it safe?

Thanks for any advice

In the datasheet for the 328 (pg318) it mentions a reset pin pull up resistor in the same manner that it mentions the individual pin pull up resistors, so combined with reading elsewhere that you don't need one that's what I'd go for. The 2313 datasheet has a similar table on page 177.

Unless you're making thousands of boards though, what's the cost of a resistor?

Edit: I should mention to clarify that if you have a reset button, a resistor is needed, don't want any shorts! :slight_smile:

Thanks a.d.

I guess a resistor (10kOhm) will not hurt.

Just laziness I guess - the less I put on my board the cleaner it is.

Looks like there's an internal pull-up resistor - check p47 of the datasheet.

Yes - I saw there is an internal pullup resistor, but would that not be used if you are using the pin for input/output?

In this case it is dedicated to be the reset pin, so maybe the pullup is done automagically??

AgeingHippy:
Yes - I saw there is an internal pullup resistor, but would that not be used if you are using the pin for input/output?

The internal pull-up is in place when the pin is configured as RESET. The problem is that it is a very weak pull-up; probably in the 50K to 100K range. I've been able to trigger a reset by touching the pin with my finger. An external 10K resistor makes the reset more reliable.

Having said that, when I'm experimenting, I frequently exclude the external pull-up. I have a few battery powered gadgets that don't have an external pull-up and they have been very reliable.

The other problem is that by default the pull up resistors are not enabled. Therefore you can't use it until the code is running. The code can't run unless this pin is high. See the problem?

I have a few battery powered gadgets that don't have an external pull-up and they have been very reliable.

What you mean is that you have not detected any problems with the limited use you have given this project. The rule in electronics is that if the data sheet says something is needed you better be pretty dam sure of what is happening if you ignore it. Otherwise all bets are off and the manufacturers will not be held responsible for anything the chip consequently does or does not do. For god sake it is only a resistor, even on my penny pinching projects that were made in there millions we would not do such a stupid thing.

The other problem is that by default the pull up resistors are not enabled. Therefore you can't use it until the code is running. The code can't run unless this pin is high. See the problem?

But is that true for the reset pin? I though it's set-up (with internal pull-up) by way of the fuse setting, not programmed with user code which is what the thread is about, or at least started up about. But your point about using progammable pull-up options on general I/O pins is correct. If the external circuit requires them for safe operations there will be a start-up delay before they will be enabled.

Lefty

The other problem is that by default the pull up resistors are not enabled

When the RESET pin is configured to be a RESET pin, the internal pull-up is always enabled. There is no way to disable it.

What you mean is that you have not detected any problems with the limited use you have given this project

I meant what I said. In 2.5 years of use the gadgets have all been reliable. Any problem would be recognized by the human.

if the data sheet says something is needed

Which is why I chose to not use an external pull-up on RESET. There is no indication in the datasheet that it is required.

I meant what I said. In 2.5 years of use the gadgets have all been reliable. Any problem would be recognized by the human.

Sorry but this is a very naive view of reliability.

How many have you tested a dozen maybe two? I bet not several hundred. Also I suspect you have not tested it in respect to temperature and electrical environment, so one hot day a motorcycle drives past and you unit does not malfunction? A taxi is outside using it's transmitter? A motor generating interference has no effect on it? It is subjected to the waveforms in the FCC susceptibility tests?

The problem with some people is they think if they have something that appears to work then what they have is a reliable repeatable circuit. This is not true. If you are going to do something as drastic as this then you better be on solid ground. I notice that while the data sheet doesn't say it has to be pulled up it also doesn't say it is allowed to float. Data sheets are normally explicit on saying something is permitted to float if it is. The assumption in digital electronics, is that all inputs must be connected to something. The data sheet says it can't be connected to Vcc and connecting it to ground would see the processor not running (unless the disable external interrupt fuse was set), therefore it has to be connected.

Sorry but this is a very naive view of reliability.

That kind of reared it's ugly head in a recent posting a week or so ago. Seems the DTR automatic reset pulse can generate a +10vdc signal onto the reset pin and in certain cases (external pull-up wired to pin 4 or some other but not all I/O pins) can result in a 'locked up' processor condition until another reset is generated. Adding a reversed biased diode across the reset pull-up resistor 'cures' the symptom. Reset is a particular touchy function in that it's not only voltage sensitive, but timing sensitive (there is a minimum time requirement for a proper reset) and the pin has no positive voltage clamping diode as the pin is also a mechanism for high voltage programming mode.

Lefty

Agreed. The datasheet shows a 30-to-60kOhm pull-up resistor permanently connected to the external-reset signal. This is independent of the switchable 20-to-50kOhm pull-up resistors (which in this case is disabled, presumably via the RSTDISBL fuse bit).

The datasheet also implies that the external-reset signal is directly connected to pin PC6 meaning that the reset pull-up resistor is permanently applied to this pin, even when it is working as an I/O pin (I haven't checked this yet).

Damn!! Now I am really confused. :~

I have fitted a 10k pullup resistor to the pin... I guess if I have problems I will remove it.

All very interesting though.

AgeingHippy:
Damn!! Now I am really confused. :~

Sorry about that.

I have fitted a 10k pullup resistor to the pin...

In which case, spend the extra 10 cents and include the resistor. It's worth the price.

I have fitted a 10k pullup resistor to the pin... I guess if I have problems I will remove it.

Wrong way round, with a 10K pull up you will have no problems, we were discussing if you have problems if you leave it out.

The datasheet also implies that the external-reset signal is directly connected to pin PC6

No it don't imply anything. the same physical pin can be used as either an external reset OR a GPIO pin 6 on port C. What it actually is can be determined by the fuse setting.

Grumpy_Mike:

The datasheet also implies that the external-reset signal is directly connected to pin PC6

No it don't imply anything. the same physical pin can be used as either an external reset OR a GPIO pin 6 on port C. What it actually is can be determined by the fuse setting.

Page 87, the external-reset signal is connected to AIO on PC6.
Page 80, AIO is connected directly to the pin.

If it were otherwise, then why would a pull-up resistor be necessary?

tim7:
If it were otherwise, then why would a pull-up resistor be necessary?

There is a fixed internal weak pull-up on the reset line, but the question is if this is sufficient or not. Atmel design recommendations (application note AVR042) suggest not and so we (being conservative engineers) add the external 10k resistor (as did the Arduino team for Uno and its predecessors). We should respect that such recommendations are based on a collective experience for designs that span the full operating range of the microcontroller (supply voltage, clock frequency, temperature, …) and no individual (or company for that matter) is likely to offer better advice in this respect.

AVR042 also recommends (term used is “highly recommended”) a voltage/ESD clamp on the reset line. The post from retrolefty suggesting that the Uno may lock-up in some cases due to the lack of such protection may serve as an example that real problems can be avoided if we follow manufacturer recommendations.

To answer the question from AgeingHippy : YES. If you guys talk about the ATmega328 pin 1. And I agree with you Grumpy_Mike. In Every ( most ) of CPU's ( that including the computer in front of you ), a reset circuit is needed. Even a simple counter chip ( 7490 ) need a reset circuit. <-- Correct me if am wrong. In the book title "The 8088 Project Book", page 64, by Robert Grossblatt, a reset circuit is needed. It basicaly : 10 K pull-up config , push-on button in serie with 150 , 4.7 uF elec and 0.1 uF ( in parallel with the push-on button and the resistor) and 1N914 diode in parallel with the 10 K resistor. Work like this : At power-up, the cap is short for the time of RC ( 10 K * ( 4.7 uF + 0.1 uF ) <--put a LOW signal ( possibility of clearing the internal Flip-Flop - counters ) , and slowly going into HIGH for the CPU to run. When you press reset, I will do the same procedure when it start-up.

Adding a reversed biased diode across the reset pull-up resistor 'cures' the symptom.

Thank you retrolefty to remind me of the diode. I will place it in my breadboard Arduino/ ATmega358 setup.