<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://www.microrusty.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Discussion_ATmega328P_Fuse_settings</id>
	<title>Discussion ATmega328P Fuse settings - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://www.microrusty.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Discussion_ATmega328P_Fuse_settings"/>
	<link rel="alternate" type="text/html" href="http://www.microrusty.com/mediawiki/index.php?title=Discussion_ATmega328P_Fuse_settings&amp;action=history"/>
	<updated>2026-04-23T16:50:56Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.31.1</generator>
	<entry>
		<id>http://www.microrusty.com/mediawiki/index.php?title=Discussion_ATmega328P_Fuse_settings&amp;diff=22&amp;oldid=prev</id>
		<title>U731219879 rc: Created page with &quot;&#039;&#039;&#039;Warning:&#039;&#039;&#039; Programming incorrect fuse bits may lead to permanent damage of your micro-controller chip.&lt;br&gt; Before changing the fuses - Check Twice flash once!  &#039;&#039;&#039;Fuses.&#039;&#039;...&quot;</title>
		<link rel="alternate" type="text/html" href="http://www.microrusty.com/mediawiki/index.php?title=Discussion_ATmega328P_Fuse_settings&amp;diff=22&amp;oldid=prev"/>
		<updated>2019-03-23T03:30:30Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;#039;&amp;#039;&amp;#039;Warning:&amp;#039;&amp;#039;&amp;#039; Programming incorrect fuse bits may lead to permanent damage of your micro-controller chip.&amp;lt;br&amp;gt; Before changing the fuses - Check Twice flash once!  &amp;#039;&amp;#039;&amp;#039;Fuses.&amp;#039;&amp;#039;...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Warning:&amp;#039;&amp;#039;&amp;#039; Programming incorrect fuse bits may lead to permanent damage of your micro-controller chip.&amp;lt;br&amp;gt;&lt;br /&gt;
Before changing the fuses - Check Twice flash once!&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;Fuses.&amp;#039;&amp;#039;&amp;#039; Few rules for starters:&lt;br /&gt;
 Never change DWEN, SPIEN and RSTDSBL fuses. In fact they cannot be written when you are in ISP programming mode;&lt;br /&gt;
 Double check CKSEL fuses twice before writing. These cause most problems when wrong clock source is selected.&lt;br /&gt;
 Don’t touch lock bits. Unless you are producing commercial products and want to protect your software.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;If unsure – read datasheet or ask questions.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;1 MHz&amp;#039;&amp;#039;&amp;#039; ATmega328P Default Fuse Settings &lt;br /&gt;
 avrdude -p m328p -c usbtiny -v -U lfuse:w:0x62:m -U hfuse:w:0xD9:m -U efuse:w:0xFF:m&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;Low fuse&amp;#039;&amp;#039;&amp;#039; = 0x62 (B01100010) &amp;#039;&amp;#039;&amp;#039;High fuse&amp;#039;&amp;#039;&amp;#039; = 0xD9 (B11011001) &amp;#039;&amp;#039;&amp;#039;Extended fuse&amp;#039;&amp;#039;&amp;#039; = 0xFF (B11111111)&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;8 MHz Internal clock &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 avrdude -p m328p -c usbtiny -v -U lfuse:w:0xE2:m -U hfuse:w:0xD6:m -U efuse:w:0xFF:m &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;8 MHz crystal oscillator medium rising power with EEPROM preserve:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 avrdude -p m328p -c usbtiny -v -U lfuse:w:0xFE:m -U hfuse:w:0xD1:m -U efuse:w:0xFF:m &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;8 MHz Internal RC oscillator with prescaller off.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 avrdude -p m328p -c usbtiny -v -U lfuse:w:0xE2:m -U hfuse:w:0xD9:m -U efuse:w:0x07:m&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;16 MHz Default&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 avrdude -p m328p -c usbtiny -v -U lfuse:w:0xFF:m -U hfuse:w:0xDE:m -U efuse:w:0xFF:m &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;16 MHz ceramic resonator fast start:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 avrdude -p m328p -c usbtiny -v -U lfuse:w:0xCE:m -U hfuse:w:0xD9:m -U efuse:w:0xFF:m&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;16 MHz crystal, slow start + CLKO clock:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 avrdude -p m328p -c usbtiny -v -U lfuse:w:0xF7:m -U hfuse:w:0xD9:m -U efuse:w:0xFF:m&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;Arduino Uno: 16 MHz&amp;#039;&amp;#039;&amp;#039; Standard Arduino Uno settings. &lt;br /&gt;
 avrdude -p m328p -c usbtiny -v -U lfuse:w:0xFF:m -U hfuse:w:0xDE:m -U efuse:w:0x05:m  = Arduino Uno&lt;br /&gt;
 Slow power starting, Bootloader enabled with boot size 128 words (optiboot). &lt;br /&gt;
 Typical brown out voltage selected at 2.7V.&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;Low fuse&amp;#039;&amp;#039;&amp;#039; = 0xFF (B11111111) &amp;#039;&amp;#039;&amp;#039;High fuse&amp;#039;&amp;#039;&amp;#039; = 0xDE (B11011110) &amp;#039;&amp;#039;&amp;#039;Extended fuse&amp;#039;&amp;#039;&amp;#039; = 0x05 (B00000101)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Fuse Calculators:&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.engbedded.com/fusecalc/ &amp;#039;&amp;#039;Engbedded Atmel AVR® Fuse Calculator&amp;#039;&amp;#039;]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://eleccelerator.com/fusecalc/ &amp;#039;&amp;#039;Eleccelerator.com/fusecalc/&amp;#039;&amp;#039; ]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Low Byte Fuse&amp;lt;br&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 [[File:LowFuseSetting.PNG ]] &lt;br /&gt;
 Example set to 8 MHZ &amp;#039;&amp;#039;&amp;#039;E2&amp;#039;&amp;#039;&amp;#039; 1110|0010&lt;br /&gt;
&lt;br /&gt;
 These 8 bits are explained here: &amp;#039;&amp;#039;&amp;#039;Set = 0&amp;#039;&amp;#039;&amp;#039; | &amp;#039;&amp;#039;&amp;#039;Not Set = 1&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
 Bit-7 : CKDIV8 : When set divides the clock speed by 8   1  (Not Set)&lt;br /&gt;
 Bit-6 : CKOUT : When set clock pulses on PB0 (Pin 14)    1  (Not Set)&lt;br /&gt;
 Bit-5 : SUT1 : Startup time delay                        1  (Slow rising power option see data sheet section 9.6 table 9-12)&lt;br /&gt;
 Bit-4 : SUT0 : Startup time delay                        0  (Slow rising power option see data sheet section 9.6 table 9-12)&lt;br /&gt;
 Bit-3 : CKSEL3 : Set the clock source                    0  (4bits to set Internal Clock see data sheet Section 9.2 Table 9.1)&lt;br /&gt;
 Bit-2 : CKSEL2 : Set the clock source                    0  (4bits to set Internal Clock see data sheet Section 9.2 Table 9.1) &lt;br /&gt;
 Bit-1 : CKSEL1 : Set the clock source                    1  (4bits to set Internal Clock see data sheet Section 9.2 Table 9.1)&lt;br /&gt;
 Bit-0 : CKSEL0 : Set the clock source                    0  (4bits to set Internal Clock see data sheet Section 9.2 Table 9.1)&lt;br /&gt;
  &lt;br /&gt;
 Bits 7 6 5 4 | 3 2 1 0&lt;br /&gt;
 BCD  8 4 2 1 | 8 4 2 1&lt;br /&gt;
      -----------------&lt;br /&gt;
      0 1 0 0 | 0 0 1 0 = 62   1MHz&lt;br /&gt;
      &amp;#039;&amp;#039;&amp;#039;1 1 1 0 | 0 0 1 0 = E2   8MHz&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
      1 1 1 0 | 0 0 0 0 = E0   16Mhz&lt;br /&gt;
 &lt;br /&gt;
[[File:FuseClockOp.PNG]]&lt;br /&gt;
&lt;br /&gt;
 Now combine all 3 fuse setting:&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;Low Byte Fuses&amp;#039;&amp;#039;&amp;#039; 0xE2 &lt;br /&gt;
 CKDIV8 = 1&lt;br /&gt;
 CKOUT =  1&lt;br /&gt;
 SUT1 =   1&lt;br /&gt;
 SUT0 =   0&lt;br /&gt;
 CLSEL3 = 0&lt;br /&gt;
 CKSEL2 = 0&lt;br /&gt;
 CKSEL1 = 1&lt;br /&gt;
 CKSEL0 = 0&lt;br /&gt;
 Combining all the 8 bits, our required low fuse byte is &amp;#039;&amp;#039;&amp;#039;11100010 = 0xE2&amp;#039;&amp;#039;&amp;#039;. &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;High Byte Fuses&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 Don&amp;#039;t need to change the high fuse bits in order to change the clock source and operating frequency.&lt;br /&gt;
 So here is the default hex value: &amp;#039;&amp;#039;&amp;#039;0xD9	&amp;#039;&amp;#039;&amp;#039;			  &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;Extended Byte Fuse&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 By default all the bits are set as 1 (Not Set unprogrammed). &amp;#039;&amp;#039;&amp;#039;0xFF&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;lfuse=0xE2&amp;#039;&amp;#039;&amp;#039; : &amp;#039;&amp;#039;&amp;#039;hfuse=0xD9&amp;#039;&amp;#039;&amp;#039; : &amp;#039;&amp;#039;&amp;#039;efuse:0xFF&amp;#039;&amp;#039;&amp;#039;  Now lets flash this to the ATmega328p&lt;br /&gt;
 avrdude -p m328p -c usbtiny -v -U lfuse:w:0xE2:m -U hfuse:w:0xD9:m -U efuse:w:0xFF:m &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;Memory Lock Bits&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
 avrdude -c usbasp -P usb -p m328p -U lock:w:0x00:m -v&lt;br /&gt;
&lt;br /&gt;
Lock bits (LB1 and LB2) when low should prevent hackers from stealing your firmware. It is still possible for hackers to reverse engineer your code.&lt;br /&gt;
To clear the Lock bits, a complete Chip Erase is required, which erase the Flash memory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:LockFuse.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==[[ AVRDUDE Class ]]==&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>U731219879 rc</name></author>
		
	</entry>
</feed>