Atmega328P Reset Pin DIrect To Positive Supply - Page 1
Forum section: electronics / general

author: petersanch
author_rank: Regular Contributor
timestamp: August 04, 2018, 07:03:36 am
content: Hi AllIm building a PCB with an Atmega328p running Arduino. The Atmega will be programmed by the distributor and never needs to be reprogrammed. Can I connect the reset pin directly to +5v instead of using a pull up resistor?Cheers

author: westfw
author_rank: Super Contributor
timestamp: August 04, 2018, 07:21:21 am
content: Why?It's actually got a built-in pullup resistor; in theory, you need not connect it to anything. (which is less ... limiting ... than connecting it to Power.)

author: Kleinstein
author_rank: Super Contributor
timestamp: August 04, 2018, 08:02:18 am
content: Some of the newer AVRs allow to use the reset pin as an normal IO if the reset function is disabled. I have not checked if this works with the 328P though. Usually there is no need to have the reset pin hard at VCC, though it would be possible.

author: petersanch
author_rank: Regular Contributor
timestamp: August 04, 2018, 08:13:28 am
content: Quote from: westfw on August 04, 2018, 07:21:21 amThanks.The reason is to lower the list of parts. I read that the builtin resistor is quite weak and should not be used for production. Has any body had any luck with only the internal pull up for production? Were there any glitches?

author: Rerouter
author_rank: Super Contributor
timestamp: August 04, 2018, 10:28:26 pm
content: The default pullup is in the order of 100K, its fine when its just a pad, or single digit mm away from your ICSP header with no ground plane breaks under it,When its longer, or has breaks under it with high speed traces, (Sometimes you route yourself into a corner), you should just throw a single passive at the problem, e.g. a 10K pullup.And for the biggest reason, if you hard tie the reset you can never reprogram via ICSP without removing the chip from the board, it uses the reset pin for programming.

author: Siwastaja
author_rank: Super Contributor
timestamp: August 06, 2018, 10:03:40 am
content: Older AVRs had a silicon design fault so that the reset circuitry was unreliable and very sensitive to noise; the official solution was to override the large pullup resistor with a smaller external value, typically around 4.7k, and possibly add a small capacitor to the ground. Some programming devices AFAIK went so far as tomeasurethe value of this resistance and refuse to work without a properly sized external resistor. At least I remember using an official programmer which never worked at all unless you added the pullup.Now, I'dguessthey have already fixed their product, so the pullupshouldn'tbe necessary anymore - but it became common practice to use one, and you can see the legacy on the forums.I'd keep the pin open to have the reprogrammibility, unless you are doing very massive batches with pre-programmed chips from Atmel/Microchip and you are sure your firmware won't need updating, or have your own reliable and verified in-application programming in place. Even if this means trusting the internal pullup, itshouldn'tbe a problem anymore.

author: cv007
author_rank: Frequent Contributor
timestamp: August 06, 2018, 03:25:04 pm
content: The datasheet shows the internal pullup as 30-60k.Put a footprint for the pullup resistor on the pcb, either route a trace between the pads or leave as-is.All the bases will be covered-no ext pullup resistor needed as you wishif using a trace between pads- if re-programming ever needed for some reason just cut traceif not using trace between pads- if internal pullup not adequate for some reason, just place pullup resistor or short pullup pads

author: rstofer
author_rank: Super Contributor
timestamp: August 06, 2018, 04:14:38 pm
content: As a matter of practice, I never tie any logic signal hard to Vcc. I just don't!I will tie them hard to Gnd.Mostly this is left over from the early days of TTL but, seriously, how much does an 0805 (or smaller) resistor cost in quantity?"Never need reprogramming" sounds a lot like the Eureka Syndrome. "Eureka, I got the last bug out!". I would absolutely put the ICSP header on the board. I see this implemented on many boards as simply plated through holes. The pads are placed slightly out of line (staggered) so that the programmer header will be forced to make a connection on all pins. The pads are probably no cost except real estate.

author: Siwastaja
author_rank: Super Contributor
timestamp: August 06, 2018, 04:32:06 pm
content: Quote from: rstofer on August 06, 2018, 04:14:38 pmIf it's a very cheap mass produced device, it's cheaper to just ship replacement boards when the bug is found, with the new SW revision, than to try to reprogram. Reprogramming with the AVR ISP is a can of worms; you need a special device, so practically the customer cannot do it. If you calculate for two-way shipping, someone manually programming the devices, OR shipping a programmer to the customer, it's always at least tens if not hundreds of $. This is why single-time programmable devices exist, as well.Similarly, sometimes the combined real estate cost, P&P cost, BOM line cost and part cost of a resistor is non-negligible. In a very simple and cheap design, it can account for 5% of total cost.And, if you have a customer-reprogrammable firmware (by using your custom reflasher code), it's fine without the reset pin.

author: Scrts
author_rank: Frequent Contributor
timestamp: August 06, 2018, 05:14:16 pm
content: Quote from: rstofer on August 06, 2018, 04:14:38 pmEven if you put the resistor in, you can do the tests and not populate it in the final BOM. But I don't think connecting reset to VCC is a good idea.

author: Quarlo Klobrigney
author_rank: Super Contributor
timestamp: August 14, 2018, 03:44:57 pm
content: I'd still hang a low value cap off it for noise immunity. I also turn all unused pins into outputs to avoid the same issue i.e. floating holes (0=in, 1=out) for which noise can fall in to.