software pull-up resistor on reset pin possible?

Last post
36 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I forgot to put a pull-up resistor on my ATmega2560 and for design reasons it will cause me a lot of trouble to solder one on between power and reset.

Is there a pull up resistor I can turn on in software?

(couldn't find any info on this in the datasheet, so I'm thinking no, but just in case)

How do YOU make a robot?
http://www.societyofrobots.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:

for design reasons it will cause me a lot of trouble to solder one on between power and reset.

You should have both those signals on the ISP header, and the pads are probably near each other.

You can put lipstick on a pig, but it is still a pig.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I realize that, but:

Quote:
for design reasons it will cause me a lot of trouble to solder one on between power and reset

:mrgreen:

How do YOU make a robot?
http://www.societyofrobots.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

You're being a little cryptic. But... assuming you have an ISP header (do you?) then you really don't need it when the ISP is connected, so you could solder a resister to two female pins and plug in the reset pull-up when the ISP isn't connected.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

All new chips have a weak pull up on reset anyway. The 2 pins, in a standard ISP header, are at the opposite ends. (maybe you don't need one? Use the BOD for reset)

Is the header through hole? An 1/8w resistor could be mounted under the pcb....like the good professional equipments do....

John Samperi

Ampertronics Pty. Ltd.

www.ampertronics.com.au

* Electronic Design * Custom Products * Contract Assembly

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

societyofrobots wrote:
...for design reasons it will cause me a lot of trouble to solder one on between power and reset.

Evidently, you didn't study the Maga2560 data-sheet well enough!

societyofrobots wrote:
Is there a pull up resistor I can turn on in software?

(couldn't find any info on this in the datasheet, so I'm thinking no, but just in case)


Look at page 60, Figure 12.2.1. The drawing clearly shows an internal pull-up resistor connected between VCC and the RESET line.

On Page 370, Table 31.1, at the bottom of the page, it states... The internal RESET Pull-Up resistor is specified to be between 30K Ohms and 60K Ohms.

I think you've learned something for your next design, I hope.

As a suggestion...

On your next design, you might want to consider adding just a 0.1uF to 1.0uF capacitor between RESET and GND. But in addition, add a "Split Pad " style shorting jumper between the end of the capacitor that connects to RESET and RESET proper. Then, without the "Split Pad " jumper shorted, you can use ISP programming without interference by the capacitor. When the program is complete and fully debugged, you simply place a solder short across the "Split Pads " and you're good to go. I really don't think an external Pull-Up resistor is required in most cases - especially if there is a capacitor holding the RESET input steady.

Carl W. Livingston, KC5OTL
microcarl@roadrunner.com

"There are only two ways to sleep well at night... be ignorant or be prepared."

The original Dragon Slayer !

Long live the AVR!!!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The internal pull-ups are only available on I/O Port pins. The Reset pin is not listed as an I/O Port pin on your AVR, therefore it has no software selectable internal pull-up. However, as john pointed out it does have a non-selectable internal weak pull-up. See this application note for more information:

AVR042: AVR Hardware Design Considerations
http://www.atmel.com/dyn/resources/prod_documents/doc2521.pdf

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Unfortunately that weak pull up resistor wasn't enough on this design - it always was before so I left out adding one . . . lesson learned.

Thanks Mike, looks like I'll be soldering a resistor to a thousand boards. Yeap, you read that right! I was hoping for a simple software solution . . .

For everyone else, next time trust me when I say its not feasible :wink:

How do YOU make a robot?
http://www.societyofrobots.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
Unfortunately that weak pull up resistor wasn't enough on this design - it always was before so I left out adding one . . . lesson learned.

I'm more curious as to *why* the internal pullup isn't enough. Makes me suspect other problems with the design. Can you elaborate on the problems you are having?

Quote:
For everyone else, next time trust me when I say its not feasible Wink

But see, it turned out to be feasible, just not very pleasant 8-)

Tom Pappano
Tulsa, Oklahoma

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

tpappano wrote:
I'm more curious as to *why* the internal pullup isn't enough. Makes me suspect other problems with the design.
The ATMEL application note has an answer.
AVR042 wrote:
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......
A discussion of different solutions depending on how you use the AVR reset pin follows.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

tpappano wrote:
Quote:
Unfortunately that weak pull up resistor wasn't enough on this design - it always was before so I left out adding one . . . lesson learned.

I'm more curious as to *why* the internal pullup isn't enough. Makes me suspect other problems with the design. Can you elaborate on the problems you are having?

Quote:
For everyone else, next time trust me when I say its not feasible Wink

But see, it turned out to be feasible, just not very pleasant 8-)


I think Tom has it right.

But thinking out loud here, I'd like to offer the following...

My personal feeling is that 40K Ohms to 60K Ohms is quite enough of a pull-up resistor for all but the noisiest of environments. After all, the intent of the internal pull-up resister between VCC and the RESET line is to get that RESET line up to VCC, or at least very close. So, if the input impedance of the RESET input is say, 1Meg Ohm, the internal pull-up resistor 40K Ohm and VCC = 5 Volts, then:

                1Meg
Vreset = VCC ---------- = 4.8 VDC.
             40K + 1Meg

This is plenty good to pull the RESET up to a proper logic high level.

And even if you treated the RESET input in Thevenin:

                500K
Vreset = VCC ---------- = 4.6 VDC.
             40K + 500K

Still plenty good!

A capacitor of sufficient value will filter out any noise that might cause the RESET line to go low enough to trigger a valid RESET sequence.

Obviously, the Atmel engineers must be of at least close to the same opinion, else they would have used internal pull-up resistor values in the range of 4.7K Ohm to 10K Ohm.

Carl W. Livingston, KC5OTL
microcarl@roadrunner.com

"There are only two ways to sleep well at night... be ignorant or be prepared."

The original Dragon Slayer !

Long live the AVR!!!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
I'm more curious as to *why* the internal pullup isn't enough. Makes me suspect other problems with the design. Can you elaborate on the problems you are having?

This is why I was cryptic, didn't want these additional questions :P

When I keep my mk2 programmer powered up and plugged in, the resets never occur. And they randomly occur otherwise about 30% of the time. Touching the reset pin with my hand can sometimes trigger it. When I multimeter it, it says about 3.5V. Nothing else is connected to the reset line, or even near it. I have a ton of noise filter caps throughout my circuit.

My circuit needs to handle unpredictable interference, abuse, and a broad range of noisy input voltages. Probably best not to trust the internal resistor, anyway. And yes, I'm being cryptic again :P

How do YOU make a robot?
http://www.societyofrobots.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I'm thinking that you need to look at the problem from another perspective...

If the RESET line has no other connection when the programmer is disconnected, and if the programming header is pretty close to the RESET input, I really doubt that the issue is with the RESET input, per Se'.

Touching the RESET input with your finger and having the controller go into RESET isn't anything near a valid test to be drawing conclusions from. If effect, you become an antenna that simply won't exist in the real world. Can you make the controller reset by introducing noise via a long wire in near proximity - without touching the RESET input? That would be closer to the real life scenario.

Touching your finger on the RESET input simply doesn't represent anything near a reasonable test to determine the appropriateness of the internal RESET pull-up resistor.

I'd be looking at other sources where noise can be introduced. Places like I/O lines going off-board and the incoming VCC and GND.

I've designed several controllers that only use the internal pull-up resistor, and that were placed in quite harsh electrically noisy industrial environments. None of these ever had any issues with with the controller being falsely triggered into a reset because of the lack of any external pull-up resistor in the RESET input.

Carl W. Livingston, KC5OTL
microcarl@roadrunner.com

"There are only two ways to sleep well at night... be ignorant or be prepared."

The original Dragon Slayer !

Long live the AVR!!!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:

I'm more curious as to *why* the internal pullup isn't enough.

In our experience, and that of others that have posted in the past: In the real world, the internal pullup is not enough. On the bench, do whatever you want to.

Are there really a lot of production designs that get away without it? I'm willing to be out-voted.

Lee

You can put lipstick on a pig, but it is still a pig.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

theusch wrote:
I'm willing to be out-voted.
Since ATMEL agrees with Lee, I think they carry at least as many votes as Lee has posts :wink:.

BTW, congratulations on exceeding 10k. I miss the avatar though. Hopefully, that bug will get fixed sooner than later.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I put the reset pin always direct on VCC, if not used as IO.
I faced newer problems with it.

Reprogramming was done per bootloader (no reset pin, no SPI pins needed, any single IO-pin can do it).

Peter

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
I miss the avatar though. Hopefully, that bug will get fixed sooner than later.
...by then he would have mutated into who knows what...a "pot plant", a monkey or wabbit with glasses, perhaps a "froggy" with glasses??

His appearance as been defined as "volatile" . :mrgreen:

John Samperi

Ampertronics Pty. Ltd.

www.ampertronics.com.au

* Electronic Design * Custom Products * Contract Assembly

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
My personal feeling is that 40K Ohms to 60K Ohms is quite enough of a pull-up resistor for all but the noisiest of environments. After all, the intent of the internal pull-up resister between VCC and the RESET line is to get that RESET line up to VCC, or at least very close. So, if the input impedance of the RESET input is say, 1Meg Ohm, the internal pull-up resistor 40K Ohm and VCC = 5 Volts, then:

Im sure there is some upper bound resistance based on required current, no? I'll use 300k ohms since I have some around.

How do YOU make a robot?
http://www.societyofrobots.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

societyofrobots wrote:
I'll use 300k ohms since I have some around.

Well, using an external 300K Ohm resistor tied between VCC and the RESET pin really doesn't add appreciably to noise immunity...

         40K * 300K
Rreset = ---------- = 35.25K Ohms.
         40K + 300K

With using an external 300K Ohm pull-up resister between VCC and the RESET input, it would be a better traid-off to just use a decent size capacitor of say, 1uF to 10uF.

Carl W. Livingston, KC5OTL
microcarl@roadrunner.com

"There are only two ways to sleep well at night... be ignorant or be prepared."

The original Dragon Slayer !

Long live the AVR!!!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Ditto to Carl's comments.

Quote:
When I multimeter it, it says about 3.5V. Nothing else is connected to the reset line, or even near it. I have a ton of noise filter caps throughout my circuit.

This is why I made my query. I would expect the voltage measured to be much closer to Vcc. If your circuit runs on 5 volts, (maybe it doesn't) and if your voltmeter is a typical instrument with a relatively high input impedance, (maybe it isn't) you could have some other problem causing resistance that shunts the reset line to ground or to some other track. It could be, for example, flux contamination, incomplete etching, or contamination from being handled, pencil marks, water, sweat, etc. Try sticking you meter from Vcc to reset. You should see zero volts. If you don't, you clearly have a problem. It is obviously good practice to add a bypass cap and a lower value pullup to the reset line as "boiler plate" against unintentional resets. However, during initial testing my personal preference is to leave them (and sometimes other filtering components) unmounted to determine where any potential sensitivity to environmental noise may lie. Obviously one designs in various noise protections from the start, but I somewhat compulsively evaluate the effects of various noises sources on the different parts of the system without some of the filtering installed. This way I can observe that the filter elements perform as desired. So far I have not observed resets caused by noise using only the integral pullup. Like Carl, most of what I do is in the "high noise" arena, and has been for many years.

Quote:
Im sure there is some upper bound resistance based on required current, no? I'll use 300k ohms since I have some around.

If you don't already have a bypass cap on reset, you may get better value for your rework labor adding one.

Tom Pappano
Tulsa, Oklahoma

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
Well, using an external 300K Ohm resistor tied between VCC and the RESET pin really doesn't add appreciably to noise immunity...
Code:

40K * 300K
Rreset = ---------- = 35.25K Ohms.
40K + 300K

With using an external 300K Ohm pull-up resister between VCC and the RESET input, it would be a better traid-off to just use a decent size capacitor of say, 1uF to 10uF.


I just installed a 300k on three of my boards, and they all read about ~4.9V +/- .1V on the reset pin. Without the resistor they read about 4.7V. Not sure where/why I got that other 3.5V reading before . . . perhaps I just wasn't paying attention, or was running different software or something.

Quote:
If you don't already have a bypass cap on reset, you may get better value for your rework labor adding one.

Sounds a lot like guess work . . . Alright I'll try both in a realistic setting and scope it up to see which looks cleaner. It will take me awhile though, because of 'design reasons'. I'll report back my findings in a few days, hopefully it will help others.

How do YOU make a robot?
http://www.societyofrobots.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
Sounds a lot like guess work . . .

Not so much guesswork as a gentle nudge toward deeper analysis.

Tom Pappano
Tulsa, Oklahoma

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hmmmm so I don't have any ceramic caps of either 1uF or 10uF around. I do have (polarized) tantalum caps though . . . would that be a good idea? Perhaps (-) on the reset pin, and (+) on 5V?

I'm thinking the current will be going both ways, so it could damage the cap . . .

How do YOU make a robot?
http://www.societyofrobots.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Tantalum capacitors tend to have a lot of leakage current, for their high capacitance values.

Connecting the capacitor between VCC and the RESET pin places the pull-up resistors (external & internal) across the capacitor, minimizing any delay of voltage being applied to the RESET pin. This will be a possible source of controller start up issues. By placing the capacitor between the RESET pin and VCC, you effectively enter the reset sequence while the power supply is still transitioning to the operating voltage.

The proper way is to place the capacitor with the positive terminal of the capacitor connected to the RESET pin and the negative terminal of the capacitor connected to GND. This way, an RC is formed that is to your advantage - I.E. a start up delay. The idea is to establish a delay of about 15 to 20 milliseconds, allowing the power supply to stabilize - well before the start of a proper controller RESET sequence.

Carl W. Livingston, KC5OTL
microcarl@roadrunner.com

"There are only two ways to sleep well at night... be ignorant or be prepared."

The original Dragon Slayer !

Long live the AVR!!!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

microcarl wrote:
The proper way is to place the capacitor with the positive terminal of the capacitor connected to the RESET pin and the negative terminal of the capacitor connected to GND. This way, an RC is formed that is to your advantage - I.E. a start up delay. The idea is to establish a delay of about 15 to 20 milliseconds, allowing the power supply to stabilize - well before the start of a proper controller RESET sequence.
This is rarely true for AVR processors, especially since most AVRs can program over a 60 ms SUT delay. It also harder to set the R component value of the RC if you have any other external reset hardware attached to the reset pin.
AVR042 wrote:
To protect the RESET line further from noise, it is an advantage to connect a capacitor from the RESET pin to ground. This is not directly required since the AVR internally have a low-pass filter to eliminate spikes and noise that could cause reset. Applying an extra capacitor is thus an additional protection. However, note that this capacitor cannot be present if debugWIRE is used.
In spite of the internal low-pass filter, Trst (minimum reset pulse length) is still only 2.5 nanoseconds.
ATmega2560 data sheet wrote:
Power-on Reset. The MCU is reset when the supply voltage is below the Power-on Reset threshold (Vpot).
This built in power up reset is another reason AVRs do not need an external RC circuit.
AVR042 wrote:
... The recommended pull-up resistor is 4.7kOhm or larger when using STK500 for programming. For debugWIRE to function properly, the pull-up must not be smaller than 10kOhm.
A strong as possible external pull-up appears to be the primary defense against external reset pin noise induced resets.
ATmega2560 data sheet wrote:
After all reset sources have gone inactive, a delay counter is invoked, stretching the internal reset. This allows the power to reach a stable level before normal operation starts. The time-out period of the delay counter is defined by the user through the SUT and CKSEL Fuses. The different selections for the delay period are presented in “Clock Sources” on page 40.
The practice of using an external resistor and capacitor (RC) circuit on the reset pin for startup is very old school and does not apply to AVR chips unless your Vcc is extraordinarily slow in rising. The lack of need for an external RC startup is especially true if the internal Brown Out Detector is used, since it does not care how long it takes to reach operational Vcc levels and only cares about the actual Vcc level (BOD is a much better solution than an external RC circuit). In the old days before the AVRs, the reset pin RC circuit was necessary because lots of the available chips were not designed to deal with any rising Vcc delay and lacked any automatic Vpot internal power on reset.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Interesting Mike B! I'll wait for others to respond, but I hope you are right! It will make my life easier . . .

In other news, I've been testing my pcb some more. I'm doing it without the pull-up resistor, using the exact same code and setup as before. But I'm unable to reproduce those resets I had earlier. The voltage on the reset pin is 4.7V, and when I touch it, it goes down to about 4.5V - shows it is weak against simple noise! But no reset . . . Connecting my multimeter between reset and ground DOES trigger a reset . . .

I'm in the process of installing a pcb with the 300k resistor now . . . I guess I'll have to use it for quite awhile to be 'sure' the problem is actually gone or not . . .

How do YOU make a robot?
http://www.societyofrobots.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
AVR042 wrote:
... The recommended pull-up resistor is 4.7kOhm or larger when using STK500 for programming. For debugWIRE to function properly, the pull-up must not be smaller than 10kOhm.
A strong as possible external pull-up appears to be the primary defense against external reset pin noise induced resets.

That is not really what is being said here. What is being said is that reset pullup resistors smaller than 4.7k (or 10k) may interfere with programmer (or debugwire) function.

A resistor in this range is less effective than a capacitor against noise which in order to couple to the reset net in the first place, would tend to have a high frequency component. X=1/(2*Pi*F*C) so it would seem a capacitor might be the best protection, debugwire aside.

Tom Pappano
Tulsa, Oklahoma

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

tpappano wrote:
A resistor in this range is less effective than a capacitor against noise which in order to couple to the reset net in the first place, would tend to have a high frequency component. X=1/(2*Pi*F*C) so it would seem a capacitor might be the best protection, debugwire aside.

Tom,

"You can lead a horse to water, but you can't make it drink !"

Carl W. Livingston, KC5OTL
microcarl@roadrunner.com

"There are only two ways to sleep well at night... be ignorant or be prepared."

The original Dragon Slayer !

Long live the AVR!!!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

tpappano wrote:
That is not really what is being said here.

I agree the main point in that paragraph was about programming/debug compatibility. However, external noise is sensitive to the overall impedance of the pick up path. There is no comparison between a 4.7k pull-up and 30 to 60k pull-up impedance wise. With or without an external capacitor it takes a much higher intensity noise source to get past Vrst (reset pin threshold voltage) of a significantly lower impedance pull-up circuit. The capacitor dumps noise to ground while the external pull-up makes it harder to induce reset pin noise. The 10k DebugWire is not ideal, but it is the best possible.

I based my "primary" evaluation on the general case where DebugWire makes the capacitor impossible. If the pull-up alone is not sufficient, then making a PC board configuration that also allows DebugWire use in a noisy environment would not be possible. Not ever being told or having found DebugWire use to be impossible in a noisy environment (or circuit boards with the 10k pull-up), I presume the pull-up alone is sufficient even in the DebugWire configuration. Besides, "primary" does not mean only or exclusive. It does not discount the capacitor part of the solution. Maybe I should have said it is the "general" solution rather than saying "primary". Anyway, this is what I was thinking of at the time.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

societyofrobots wrote:
Connecting my multimeter between reset and ground DOES trigger a reset . . .
I'm in the process of installing a pcb with the 300k resistor now . . .
The multimeter might have enough of a capacitive load to cause the reset (only my speculation????). Try touching the end of the unplugged meter lead and applying the other end to the reset pin (discharge any static first). If this triggers a reset you are in that spooky marginal range where small changes make big differences. Also keep in mind that the reset pin has no anti-static protection diode, so one of your processors might have already been zapped (depending on any lack of additional external protection for the reset pin). Testing with only one single example might give the wrong result in some cases.

If the 300k resistor is your external pull-up value, it does not seem nearly low enough to me. The permanently connected internal reset pin pull-up is already at least 60k. I would think 10k is the minimum desired external resistor value. This resistor only draws any significant amount of current during an active external reset. Going higher than 10k only seems reasonable if you have long low power external reset hold times or have a really, really low instantaneous power consumption limit. Data sheet figures 32-46 and 32-47 have more reset power info.

From "Figure 32-30 Reset Input Threshold Voltage vs. Vcc (Vil, IO Pin Read as “0“)" it looks like the Reset pin is about the same as an input pin threshold wise.

The "Figure 32-48 Minimum Reset Pulse Width vs. Vcc" graph makes the data sheet listed Trst of 2.5 nanoseconds look like a typo. The graph looks more like a slightly more reasonable 300 nanosecond Trst minimum.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Mike B wrote:
If the 300k resistor is your external pull-up value, it does not seem nearly low enough to me.

The permanently connected internal reset pin pull-up is already at least 60k.


The data-sheet says that the internal RESET pull-up resistor is between 40K Ohms and 60K Ohms.

So by the OP using a 300K Ohm external pull-up resistor that will effectively be in parallel with the internal 40K Ohm pull-up resistor:

         40K * 300K 
Rreset = ---------- = 35.25K Ohms. 
         40K + 300K

Which is 3-1/2 times larger then Atmel's maximum recommended 10K Ohms for the external RESET pull-up resistor

And using a 300K Ohm external pull-up resistor that will effectively be in parallel with the internal 60K Ohm pull-up resistor:

         60K * 300K 
Rreset = ---------- = 50.00K Ohms. 
         60K + 300K

Which is 5 times larger then Atmel's recommended maximum of 10K Ohms for the external RESET pull-up resistor, making the unconfirmed/unsubstantiated noise problems even more pronounced.

So, as I said in an earlier post, using an external 300K Ohm pull-up resistor on the RESET input really doesn't provide any substantial benefit, or meaningful solution to the OP's perceived RESET problems.

A capacitor of some reasonable value would provide far greater benefit toward keeping noise out of the RESET input then would a 300K Ohm external pull-up resistor connected to the RESET input.

Carl W. Livingston, KC5OTL
microcarl@roadrunner.com

"There are only two ways to sleep well at night... be ignorant or be prepared."

The original Dragon Slayer !

Long live the AVR!!!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

societyofrobots wrote:
I forgot to put a pull-up resistor on my ATmega2560 ...
Carl, I am using the ATmega640/1280/1281/2560/2561 data sheet version 2549L–AVR–08/07.

According to this Rrst Reset Pull-up Resistor is 30 kΩ minimum to 60 kΩ maximum. Where did you see 40 kΩ?

Actually, figures 32.19, 32.20 and 32.21 that all deal with "reset pull-up resistor current vs. reset pin voltage", are a good visual characterization of the reset pin internal pull-up.

30k in parallel with 300k = 27.27k
60k in parallel with 300k = 50k
30k in parallel with 10k = 7.5k
60k in parallel with 10k = 8.57k

Did you take into account that ATMEL's recommended 10k value already includes being in parallel with the internal reset pin pull-up resistor? This effectively makes the combined pull-up range 7.5k to 8.57k. A 300k external resistor is actually more like 3.6 to 5.8 times above the recommended external 10k value external resistor.

microcarl wrote:
...making the unconfirmed/unsubstantiated noise problems even more pronounced.
I do not see how even a high value 300k ohm external pull-up will make the problems more pronounced. It might not help much, but make things worse?

Of course an external resistor or capacitor is only a recommendation for use when needed. I also though 300k was too high to be effective, which on the one hand is why I asked about it. On the other hand I'm not the one with intimate details of the design requirements/compromises. In any case I'm very sure societyofrobots is aware of all this. In the final analysis, implementing any solutions was never up to us.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

microcarl wrote:
On Page 370, Table 31.1, at the bottom of the page, it states... The internal RESET Pull-Up resistor is specified to be between 30K Ohms and 60K Ohms.

Well, I got it right in my first posting over in page 1. The first use, I quoted directly from the data-sheet, there after, I went by memory and CRS disease plagued my old brain cells, I guess.

But even still, the equivalent pull-up resistances is:

         30K * 300K 
Rreset = ---------- = 27.27K Ohms. 
         30K + 300K

nearly 3 times 10K Ohm.

But I stand by the statement that a capacitor will be much more effective then a 300K Ohm resistor

Carl W. Livingston, KC5OTL
microcarl@roadrunner.com

"There are only two ways to sleep well at night... be ignorant or be prepared."

The original Dragon Slayer !

Long live the AVR!!!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
But I stand by the statement that a capacitor will be much more effective then a 300K Ohm resistor

For example, with a 0.1uf cap, reactance is 62.8 ohms at 1 Mhz, 602.8 ohms at 100 Khz, etc. I would think that if one is shipping product, and one does not want to be worrying about bogus resets, one would use the capacitor as a minimum, and any resistor an optional add-on.

A typical "noise situation" for me is one of my "open" style controllers nestled next to a pair of 480 volt VFDs driving 25hp motors. These VFDs (similar to a class D amplifier) constantly drive the motor leads with over 1000v P-P of 10 Khz pwm carrier, whether the motor is turning or not. There is about 20 feet of transmitting "antenna" from the drives to the motors to permeate everything with this hideous *common mode* cacophony. I use a .1 only, and noise on the pin is a non-issue.

Another point worth making regarding a capacitor. With a cap on the reset line (or any other for that matter) you have set up a capacitive voltage divider between the signal line and any nearby noise carrying wire. As the frequency of the noise changes, the level coupled to the signal line stays the same. Without the shunt cap to ground, the level of conducted noise increases with frequency because the reactance of the coupling cap (the air gap) decreases.

Tom Pappano
Tulsa, Oklahoma

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I'm curious if the OP has set his BOD fuse and to what level if he has.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
I put the reset pin always direct on VCC, if not used as IO.
I faced newer problems with it.

I do too, but I still get a reset when I light a fire with a piezo igniter within 2 feet of the circuit. (atmega32 smoke detector) I have not investigated a solution, yet, but the behavior indicates to me that the noise enters on VCC, and additional filtering on my 5v supply may be needed. Seems resets can come from anywhere in extreme cases. --Karl