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?

  • 1
    \$\begingroup\$ There's always the (remote) possibility your chip's a counterfeit. There are companies out there which will take one chip and change the markings to that of another. Did you get a Certificate of Compliance from your distributor? \$\endgroup\$ Nov 15 '13 at 4:01
  • \$\begingroup\$ Since you bought these for the Arduino, you probably got cheap counterfeits. The Arduino use the 328P versions, and sellers target that. \$\endgroup\$
    – Passerby
    Nov 15 '13 at 4:46
  • \$\begingroup\$ @MikeDeSimone Sorry, never heard of such certificates. I guess we hobbysts are not very concerned about counterfeits, as long as the MCUs work. But that may indeed be a possibility. \$\endgroup\$
    – Ricardo
    Nov 15 '13 at 12:52
  • \$\begingroup\$ Yeah, they're a relatively new thing. Government contracting demands them a lot, because the government is often building things for a decade or more and wants to use the same exact design as long as possible (it's expensive to redesign with different components), making them a big target for fraud, so there's a lot of traceability demanded. Anyway, Digi-Key usually sends these out routinely these days (last page attached to the packing list, usually). \$\endgroup\$ Nov 15 '13 at 13:27
  • \$\begingroup\$ @Passerby do you have any actual evidence of quasi-functional "countereit" ATmegas? So far, the famous case was of entirely different chips falsely labeled, and completely non-functional in an ATmega application, not something that would be functional enough to yield a device signature to ISP operations. That's not to say that no one could ever create such a thing, but it's a bit farfetched to claim that as the explanation unless you can point to actual verified examples. As the chip was labeled as the less popular non-picopower version, your targeting argument seems off also. \$\endgroup\$ Jun 29 '17 at 4:01
  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.

  • \$\begingroup\$ Probably more likely that the Arduino's configuration is wrong and it has the wrong signature for that chip. \$\endgroup\$
    – lyndon
    Nov 15 '13 at 1:23
  • \$\begingroup\$ @lyndon: The signatures check out with the datasheet. \$\endgroup\$ Nov 15 '13 at 1:49
  • \$\begingroup\$ @lyndon I have my Arduino IDE configured to program both '328 and 328P and have burned bootloaders in a fair amount of both types. Every time I have to choose the matching configuration to burn each type of chip, except for that one particular chip that is mislabelled or mis-signatured. For that one, I need to choose the opposite config to burn the bootloader. \$\endgroup\$
    – Ricardo
    Nov 15 '13 at 12:58

ATmega328 and ATmega328P come with different device signatures.

If your programmer can override the signature then it can program the chip and fix the wrong signature.

I don't think it is mislabeled because both chips have the same amount of memory and almost the same structure. It can be programmed with another signature.

  • \$\begingroup\$ +1 Sorry for the downvote, but I've just reverted it. I just didn't know it was possible to reprogram an ATmega's signature. How can I do it? \$\endgroup\$
    – Ricardo
    Feb 15 '14 at 0:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.