Atmega168 efuse not changing

im trying to change fuses but efuse wont change, for low and high it worked but it fails at efuse and says that it was set to 1 and asks if i wanna change it back y/n, if i choose y command promt just kinda freezes and efuse stays as 1. if i just click enter without typing y or n it wont freeze but last byte remains as 1...

i use arduino every as isp programmer and have 8mhz crystal with 20pf caps,

also im not sure that is 20mhz too much for the 168 or not, (im planning to use that for final circuit)

here is output

C:\Users\nokia>avrdude -P com4 -b 19200 -c arduino -p m168 -U lfuse:w:0xf7:m -U hfuse:w:0xcc:m -U efuse:w:0xf9:m

avrdude: AVR device initialized and ready to accept instructions

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

avrdude: Device signature = 0x1e9406
avrdude: reading input file "0xf7"
avrdude: writing lfuse (1 bytes):

Writing | ################################################## | 100% 0.01s

avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xf7:
avrdude: load data lfuse data from input file 0xf7:
avrdude: input file 0xf7 contains 1 bytes
avrdude: reading on-chip lfuse data:

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

avrdude: verifying ...
avrdude: 1 bytes of lfuse verified
avrdude: reading input file "0xcc"
avrdude: writing hfuse (1 bytes):

Writing | ################################################## | 100% 0.01s

avrdude: 1 bytes of hfuse written
avrdude: verifying hfuse memory against 0xcc:
avrdude: load data hfuse data from input file 0xcc:
avrdude: input file 0xcc contains 1 bytes
avrdude: reading on-chip hfuse data:

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

avrdude: verifying ...
avrdude: 1 bytes of hfuse verified
avrdude: reading input file "0xf9"
avrdude: writing efuse (1 bytes):

Writing | | 0% 0.00s ***failed;
Writing | ################################################## | 100% 0.05s

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.01s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
0xf9 != 0x01
avrdude: verification error; content mismatch

avrdude: safemode: efuse changed! Was f9, and is now 1
Would you like this fuse to be changed back? [y/n]

I think it is just setting bit 1 and 2 of the Efuse

When I look at the difference between 0x01 and 0xf9 in this calculator it is that only the non functional bits 3 to 7 are set or cleared.

So functionally 0x01 and 0xf9 should be the same.

oh lol, thanks for anwser :slight_smile:

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.