Hi @all,
i'm using following command to program an Atmega88A (avrdude version
5.11svn):
avrdude -pm88 -cjtag2isp -Pusb -u -B10 -Uflash:w:firmware.hex:a
-Ulfuse:w:0xdd:m -Uhfuse:w:0xdc:m -Uefuse:w:0xf9:m
This works great except for a write/verification failure on the efuse
byte (the efuse byte itself has the correct value of 0xF9 when read with
AVRStudio 5.1):
avrdude: reading input file "0xf9"
avrdude: writing efuse (1 bytes):
Writing | ***failed;
################################################## | 100% 0.41s
avrdude: 1 bytes of efuse written
avrdude: verifying efuse memory against 0xf9:
avrdude: load data efuse data from input file 0xf9:
avrdude: input file 0xf9 contains 1 bytes
avrdude: reading on-chip efuse data:
Reading | ################################################## | 100% 0.05s
avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
0x01 != 0xf9
avrdude: verification error; content mismatch
This goes away when (in avdude.conf) the original efuse read command:
memory "efuse"
size = 1;
min_write_delay = 4500;
max_write_delay = 4500;
read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
"x x x x x x x x *x x x x x o o o*";
write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
"x x x x x x x x x x x x x i i i";
;
is replaced by:
memory "efuse"
size = 1;
min_write_delay = 4500;
max_write_delay = 4500;
read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
"x x x x x x x x *o o o o o o o o*";
write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
"x x x x x x x x x x x x x i i i";
;
With that 0xF9 is read instead of (0xF9 & 0x07) = 0x01
I think there are a couple of other devices with the same problem.
Best regards,
Ralf
_______________________________________________
avrdude-dev mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/avrdude-dev