I recently purchased a number of ATmega328 chips loaded with the Optiboot (Arduino Uno) for some projects I am working on, but I have noticed something strange with them. I already have plenty of Arduino boards in my collection, but this time I wanted to make a very barebone Arduino-based project with a small component count.
Think something like Arduino Sleep Watchdog Battery.
With all the chips I also ordered ZTT 16 MHz resonators.
But if I power the ATmega328 and connect an LED to D13, the ATmega328 will power up and flash the LED, but at an ever increasing rate, and then it stops flashing after about three seconds.
Thinking that it might have been my wiring, I tried using the ATmega328 chips in my other Arduino boards and noticed that same thing. Thinking that it might just be a a bad chip, I have tested three chips in different boards, all with the same issue. Just in case I had a bad component blowing the chips, none of the ATmega328 chips have touched a component that another faulty chip has.
If I try to upload a sketch I receive a "not in sync" error, and it fails to upload.
All chips look to have come from SparkFun/LBE. One of the chip suppliers told me that there is a bad batch from SparkFun, but I can not find anything to back that up.
Thinking that the bootloader might be corrupted I set up another Arduino as an ISP programmer, but it kept giving me errors and returning the chip signature as an ATmega168 (peeling back the label I have confirmed the chip really is a ATmega328P-PU), but as this was my first attempt at using an ISP programmer I put this issue down to user error (me) and ordered a ready-made ISP programmer (yet to receive).
How can I fix this problem?