Anyone ever *burned out* an ATmega chip?

So I was building a home-etched S3V3 board, and I had a few traces bridged (and others broken) when I went to power up the board for a test. Figured the most likely pins to be bridged would be I/O pins so those aren't too important. Well, at first it didn't work. Then I unbridged some traces that looked like it was straight from the +5v reg to a ground. Then the Power LED came on, I was happy. Except my sketch wasn't running (to control a multiplexed 2-digit 9-pin 7-segment display). Instead, the chip got nice and warm. I immediately unplugged it.

Back in my Duemilanove where it came from, no response to serial, no LED blink on reset, no response to parallel programming. Also gets lukewarm after a few minutes, barely noticeable but warmer than room temperature.

Is it bricked? :-/

Is it bricked?

I would say so, yes.

Fair 'nuf! Already have a replacement watched on eBay, just wanted the final word. Kinda sad, really. I was hoping I'd wear out the flash on the chip before I killed it. But with all the debugging on MPGuino mods I did with it, I imagine it wasn't far off anyway ;)

I did a lot of searching and couldn't find any references to anyone ever having burned out their chip before (I can hardly believe that! The primary Arduino design must be pretty dang bulletproof), so I figured someone could use a topic like this, at least for search result's sake!

Then I unbridged some traces that looked like it was straight from the +5v reg to a ground.

That in itself would not be an issue.

However there are two ground and two Vcc pins. If you get one of the grounds shorted to the Vcc and the other not, then that could blow things. Also if you fry pins 0 or 1 then it won't download with the boot loader. The easiest way to fry a pin is to connect it to +5V, set it to an output and then write a zero to it.

Hmm, looks at pinout

Yeah, with all the 5v being routed all over this board like ground, I can see how that could get confusing! I thought all the edges of the board were ground, but after I followed the traces around the board, seems not so much! Admittedly, it is a huge undertaking to route all those pins on a home-etchable single layer board... I guess some corners need to be cut. Would also be a lot nicer if I had a better understanding of toner transfer as well... such as that if it doesn't transfer properly, DO IT AGAIN until it does transfer right... even if that means killing a thousand labels, it's cheaper than the hassle of working with a poorly etched PCB... seriously, I've had to "bridge" 4 connections on the board so far where the copper left a gap that solder wouldn't bridge... who knows how many gaps I've already bridged with solder - hence the silvery mess I'm left with now, lol.

It'll be quite impressive if I can get it working, and so far with some new testing, I'm relatively confident the replacement chip won't blow out... I hope... :(

Maybe I'll test it by just applying power for a split second and watching for the LED to light up. Just a split second wouldn't... ehh... hmm. Come to think of it, it probably would go just the same. sigh

Man, this has definitely been an expensive learning experience. :-/

I hope you had used an IC socket, 'cause that would make things a bit easier.

In my past experience, the ATMega328 chips are quite forgivable to abuses. I once connected the power with the wrong polarity and thought I had killed the chip for sure, but it survived that. Just the other day, I had a solder bridge between a digital pin and ground and the chip was getting warm when the power is on and it was not until when I tried to read from the grounded pin and I couldn't get any readings did I realize I had grounded the pin. But after corrected the situation, the chip sprang back to life.

So, unless you had tried to place the chip back to a known working Arduino to test out. I'd say don't just give up hope yet :)

Absolutely, I had planned on a socket from the start - gotta be crazy to solder directly to the chip! Surprised that's not in the official plans/parts list.

After volt-metering the whole thing while powered on and only finding +5v on VCC and AVCC, and checking and re-checking the traces, I figured it was worth a go. With a deep breath I plugged the ATmega328 from my MPGuino into it (flashed with the Arduino bootloader and reuploaded with the MPGuino software), and plugged it in for a brief moment. No LEDs so I yanked the power again. Still worked after that in the real Arduino, though. I have a good feeling my crystal & capacitors are to blame - didn't have any 22pf capacitors so I have 471 & 100 pF caps in their places on a "doubt this will work" whim. Also a 14.3MHz crystal yanked off an old ATI video card, with 5x 16MHz crystals on the way from eBay. Electronics store only had up to 10MHz :(

At least it stopped blowing out chips ;)

(edit: also, yeah, I did most of my "is it really dead?!" testing in my real Arduino Duemilanove... and I sadly laid the chip to rest in my trash bin earlier this evening... sadface)

Get a few of these: http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=MF-R010-ND

Put one of them along your +5V power so you won't burn anything else in the future. I've got into trouble with too much current before. The resettable fuse on my arduino always saves my day. If you build one from scratch, you need a resettable fuse.

BTW, for a while I fed my ADC with negative voltages. I was lucky it didn't break.

I have a good feeling my crystal & capacitors are to blame - didn’t have any 22pf capacitors so I have 471 & 100 pF caps in their places on a “doubt this will work” whim. Also a 14.3MHz crystal yanked off an old ATI video card, with 5x 16MHz crystals on the way from eBay. Electronics store only had up to 10MHz

Most certainly. If you are using the default bootloader hex file, it is designed for using a 16MHz crystal only (some versions are designed for 8MHz). So you can’t just pick a random crystal and expect it to work.

You do have some freedom in choosing the load capacitors though. Usually, you can get away with using one ranging from a few pF to a 100pF. But the crystal will only operate within spec when you use the correct capacitors.

Aye, I know serial timing is based on a 16MHz clock, so I wasn't expecting to be able to load programs onto it with the 14MHz crystal (hence the "doubt this will work" whim). But it should at least run the program, right? My MPGuino runs on a 20MHz clock which is where I got the idea - if I plug it into the Arduino board with the 16MHz clock, its modified serial timings are all screwed up, but the bootloader works. If I leave it in the MPGuino board and attach Tx/Rx/Gnd to the Arduino board (without a chip), I get serial data from the program, but can't flash the chip through the bootloader. Fun fun with timing ;)

As to a fuse, I definitely think that should be added to the PCB design somehow... someone could just bridge it with a jumper if they don't have one to install. Not much way to add a fuse after the fact though... but it might've prevented this nasty sort of blowout :/ (of course it also would've left me wondering "what's wrong huh? poke poke")

Well'p, found the problem! Turns out the capacitance ratings of the crystal capacitors (22pf) is VERY particular, even after using matching 100pf capacitors it still wasn't working - didn't even get a signal from my digital oscilloscope's frequency counter function (ground to one pin, ground to the other, or one to the other). But EVERYTHING was properly routed... no broken traces that I could detect, no bridged traces... no misplaced components... still didn't boot up.

Finally gave in and went to get two proper 22pf capacitors (a whopping $1 total). After I soldered them in, I took a deep breath and plugged in one of my brand new ATmega328 chips - programmed with the 0021 bootloader, nothing more. Blink! Blink! Blink! And so on as I type.

So, capacitors. Important. ;D

I suppose it depends on the crystals you use as well... glad it worked out :)