AVR fuse bits settings
Posted by Omkar on April 3, 2010
Setting AVR fuse bits correctly is most important and equally confusing part for many beginners. In this post I have presented some of the ready to use fuse bit settings and corresponding batch files, which can be used with AVRdude.
Link for downloading avrdude batch files (to be used with USBasp) is given at the end of this post.
|
Microcontroller |
H |
L |
Description |
| ATmega16/32 | 0×99 | 0xE1 | Factory Default Settings for ATmega16/32.
H fuse: L fuse: |
| ATmega16/32 | 0xD9 | 0xFF | External Crystal upto 16MHz, JTAG disabled. Rest of the options : Default. |
| ATmega16/32 | 0xD9 | 0xE4 | Internal 8MHz oscillator, JTAG disabled. Rest of the options : Default. |
| ATmega8 | 0xD9 | 0xE1 | Factory Default Settings for ATmega8.
H fuse: L fuse: |
| ATmega8 | 0xD9 | 0xEF | External Crystal upto 16MHz. Rest of the options : Default. |
| ATtiny13 | 0xFF | 0x6A | Factory Default Settings for ATtiny13.
H fuse: L fuse: |
| ATtiny13 | 0xFF | 0×69 | Internal 4.8MHz oscillator, Divide clock by 8. Rest of the options : Default |
| ATtiny13 | 0xFF | 0×79 | Internal 9.6MHz oscillator, clock is not divided by 8. Rest of the options : Default. |
Fuse programming is most crucial and any mistake might lead to non-functioning AVR controller. I have also made DOS batch files, which can be used to apply above mentioned settings with AVRdude and USBasp. You can download these files from :
AVR Dude – DOS batch files for fuse bit settings using USBasp. Archive password : mega16
http://www.megaupload.com/?d=S9BCR2RJ
Fuse bits for AVR | AVR for Noobs said
[...] you’ve messed up your fuses. Right? Thanks to this page http://elecrom.wordpress.com/2010/04/03/avr-fuse-bits-settings/ I got a decent resource to share with you people. It was frustrating to find out that I always need [...]
vicky raj said
to connect an external crystal oscillator of 16 Mhz to atmega 16 ,the only thing which i require to adjust is fusebit settings in the extreme burner software while programming atmega 16 or something more…….?
Omkar said
Nothing else is required. But make sure that, you do the fuse-bit settings correctly. You have to do that first and then burn the code.
Pranav Sharma said
Thanks a lot man
This is just what I was looking for….. 

I noticed my usbasp just wouldnt read the atmega16 clocked by the internal 1MHz clock… Setting the isp clock delay to 3 solved the problem
avrdude -c usbasp -p m16 -i 3
Thanks
Manu said
ur notes regarding Fuse settings is really helpful..thanky you so much..also can u tell me how to recover chips that gone wrong due to wrong fuse bit settings.
Nirmal said
Hi,
All of a sudden,I cannot program my AtMEGA32.avrdude:stk500_getsync():not in syn:resp=0×00
avrdude:stk500_disable():protocol error,expect=0×14,resp=0×51
Could you please help me what’s gone wrong.