ATMEGA328P default fuses

Hello,

I tried to read the fuses of a out of the box atmega328p using usbasp clone programmer. This is what I get:

boil@boil-Lenovo-B590:~$ avrdude -c usbasp -p m328p

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e950f

avrdude: safemode: Fuses OK (H:07, E:D9, L:62)

avrdude done. Thank you.

So high fuse is set to 07 which means that reset disable fuse is programmed and I should not have been able to read the fuses in the first place. The default value of high fuse should be D9 and only the low fuse seems to be set to the default value (0x62).

What do you think is wrong here ?

mega328p from Atmel or one that previously had a bootloader installed?

I just had a look at the datasheet. It really looks like avrdude has got the E and H bytes mixed up. If you swap these around then everything is correct and the chip is as it comes from the factory (as you identified).

The numbers don’t make any sense the other way around so if its a new chip put a bug report into avrdude so someone can check the code.