Electronic – arduino – Mislabelled ATmega328-PU

arduinoatmega

Today I was burning bootloaders on a fresh batch of four ATmega328-PU (the slightly cheaper non-picopower version, not to be confused with the ATmega328P-PU), and was surprised with the following message from avrdude:

avrdude: Device signature = 0x1e950F 
avrdude: Expected signature for ATMEGA328 is 1E 95 14 
Double check chip, or use -F to override this check. 

Then I changed the chip type on my Arduino IDE to ATmega328P-PU and avrdude burned the bootloader without complaints.

So, my question is threefold:

1) Is this MCU just a mislabelled ATmega328P-PU?

2) How rare this event is (i.e., getting a mislabelled MCU from the factory)?

3) How can I be sure the chip is really an ATmega328P-PU?

Best Answer

  1. Maybe. It might possibly be a mis-signatured '328 instead. Without testing it's impossible to say.

  2. I don't know. I would imagine that it's rare, but I have no personal experience with this.

  3. One thing to try is to do something only the '328P can, i.e. disable the built-in brown-out detection. Try to toggle bits 5 (BODS) and 6 (BODSE) of MCUCR and see if the changes stick.
    Another thing you can do is to try to duplicate the power usage curves given in the datasheet for the ATmega328P.
    If you find that either or both of these fail, your device is a mis-signatured '328 rather than a mislabeled '328P. In either case you can safely use the device as a normal '328 as long as you compensate for the signature difference and don't need the exact power usage characteristic of the '328.