Arduino's/AVRs and ESD-rich environments...

Nicko, Mon Jun 28 2010, 03:04PM

[grumble]

Just a quick point - there are various threads complaining about problems using uPs for TC control, specifically AVRs and/or Arduinos (which are just ATmegas with a bootloader).

Firstly, people should read Atmel app note AVR040, specifically section 4.9 with special note of 4.9.2. Almost every AVR-related design I've seen misses this simple point - there is NO ESD protection to speak of on the RESET pin (for a reason), thus most AVR-based designs, including the reference Arduinos, are vulnerable to ESD...

So, a 10K resistor and a small signal diode (1N4148 etc) to VCC, and a 4n7 cap to ground, and you may find your AVR-based system being a bit less likely to go AWOL.

I only mention this because even though I'm a hardened "from the ground up" type designer, I've decided to give using an Arduino Duemilanove a try for a project, and I don't like some of what they've done (both hardware & software) - I'm really fighting hard against my instincts, which are to re-write most of the PDEs I use (to what I consider) to be deliverable-quality code and to re-do the PCBs to be more ESD resistant. The Arduinos don't even filter AVCC properly - for the sake of a few cents they could have got reasonable accuracy from their ADCs - all it needs is a small RF choke and another 100n cap. Also, most PDEs are just dreadful hacks (IMHO).

[/grumble]

Having said that, they are very cheap, and I couldn't even have just the PCB made for the cost of a fully populated Duemilanove from HK, so I just piggy-back the mods onto the main board...

Ho, hum...

Cheers
Re: Arduino's/AVRs and ESD-rich environments...
Killa-X, Mon Jun 28 2010, 04:52PM

Well, Thanks for the information / tips! I didn't know the reset pins had no protection against ESD...I've read the datasheet forward and backwards, page by page for my chip and haven't caught that information. I've been macing a digital interrupter for my tesla coil, so it helps me to know this information because its going to be near the coil. The reason I went with an AVR (ATMEGA32P) is because it's LCD based with duty cycle and frequency control so I can have very specific outputs...That and so I can make different modes that you couldn't do with 555s.

Again, thanks for the tip!
Re: Arduino's/AVRs and ESD-rich environments...
Nicko, Mon Jun 28 2010, 08:24PM

Killa-X wrote ...

Well, Thanks for the information / tips! I didn't know the reset pins had no protection against ESD...I've read the datasheet forward and backwards, page by page for my chip and haven't caught that information...
...because its not there, its in AVR040 & AVR042, and is far from clear.

AVR042 section 3 also suggests the use of a zener to clamp /RESET wrt GND, but there are caveats and you should read about them carefully...

Cheers
Re: Arduino's/AVRs and ESD-rich environments...
Paul Benham, Tue Feb 21 2012, 06:21PM

Thanks for the tip Nick. I'll modify mine.

Cheers,

Paul.
Re: Arduino's/AVRs and ESD-rich environments...
Steve Conner, Tue Feb 21 2012, 06:51PM

Destruction by ESD is the best thing that can happen to an Arduino! wink

It wouldn't surprise me if the MCLR pin on PICs had a similar problem. It needs to go up to 12V to program the onboard flash, so there probably isn't an ESD protection diode to the positive rail.
Re: Arduino's/AVRs and ESD-rich environments...
hboy007, Tue Feb 21 2012, 07:25PM

Thanks for the valuable piece of information, Nicko. I haven't used AVRs in critical environments yet but now I'm warned. I like to use 10k pullups to Vcc so the only vulnerable connection to the outside world would be the ISP header which is unconnected under normal operating conditions.... the harder it sucks when you zap an SMD AVR during maintenance.
Re: Arduino's/AVRs and ESD-rich environments...
Nicko, Tue Feb 21 2012, 08:48PM

Nearly 2 y/o thread re-awakes!

Steve wrote ...
Destruction by ESD is the best thing that can happen to an Arduino! wink
Indeed! Spawn of the Devil!!!

Interesting point about PICs maybe having the same issue - pretty much any uP that has a high(er)-voltage programming mode is likely to be affected.

Cheers
Re: Arduino's/AVRs and ESD-rich environments...
Steve Conner, Tue Feb 21 2012, 09:02PM

I have one data point to share. Years ago I was working on a PIC based interrupter. I tested it as a bare board with no extra shielding. In spite of the pullup resistor, MCLR picked up enough noise to reset the processor midway through every burst. I shipped them with a jumper on the programming header, bolting MCLR to 5V.

Solid-state coils are great for learning about EMC! wink Edit: and for destroying unwanted Arduinos.
Re: Arduino's/AVRs and ESD-rich environments...
Carbon_Rod, Wed Feb 22 2012, 03:32AM

Unfortunately most Flash devices will have at least one external pin that if brought above vcc will kill the memory. The errata usually will include a warning to avoid using these pins as an i/o, but people tend to assume its safe because its there.

Personally, I would try to re-flash the chip using a programmer to see if this was the reason, and toss the chip as it may be faulty. Note there is a shield adapter for Arduinos to flash the Arduino bootloader onto another chip.

Cheers,