I'm new here, great to see a place where's lots of support for AVR freaks. Excuse me for jumping right in on a topic that must bore people here :oops:
I am working on a project building a custom board built around an atmega 328P. The boards are programmed via AVR/Arduino ISP connected to a custom rig equipped with pogo pins. Programming is done by pressing the boards upside down against the pins, with pin holes spaced evenly around the board. It works fine, but the last couple of days we've lost 4 of our 10 prototypes, with the dreaded DeviceId = 0x000000 as the result. We think there's a few possible causes:
- fuses got messed up somehow during programming
- ESD frying the atmega's.
Our boards use the SMD version of the 328P, so it's kind of difficult to replace them. I've been trying to re-establish communication with the chip by soldering a wire to XTAL1 and feeding that with a clock signal coming from another (PDIP) 328P, but that also doesn't work. (I'm pretty sure the setup is ok, because I can clock another PDIP 328P using the "CKOUT-enabled"-328P)
Does it make a difference if the custom board still has the crystal connected, or should I detach it when feeding it an external clock?
Another thing I'm wondering if it is actually possible to get locked out of the chip because of a bad connection during programming, when the programming command doesn't even touch the fuses?
Thank for any suggestions for A) identifying the cause, and B) resurrecting the dead boards :)