<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Bootloader Archives - Esperimenti con logiche programmabili</title>
	<atom:link href="https://logicaprogrammabile.it/tag/bootloader/feed/" rel="self" type="application/rss+xml" />
	<link>https://logicaprogrammabile.it/tag/bootloader/</link>
	<description>Tutorial in italiano per imparare a programmare usando Arduino, Raspberry PI, Netduino</description>
	<lastBuildDate>Sun, 15 Jan 2017 17:12:59 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.2</generator>

<image>
	<url>https://logicaprogrammabile.it/wp-content/uploads/2017/11/cropped-logicaprogrammabile-logo-02-32x32.png</url>
	<title>Bootloader Archives - Esperimenti con logiche programmabili</title>
	<link>https://logicaprogrammabile.it/tag/bootloader/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Programmare un ATtiny85 utilizzando Arduino UNO</title>
		<link>https://logicaprogrammabile.it/programmare-attiny85-attiny45/</link>
					<comments>https://logicaprogrammabile.it/programmare-attiny85-attiny45/#respond</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Wed, 07 Mar 2012 14:09:07 +0000</pubDate>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Tutorial Arduino]]></category>
		<category><![CDATA[Arduino ISP]]></category>
		<category><![CDATA[ATtiny85]]></category>
		<category><![CDATA[Bootloader]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=2583</guid>

					<description><![CDATA[<p>Come utilizzare Arduino ISP per caricare un firmware su un ATtiny85 La piattaforma Arduino, come sappiamo, offre molte possibilità, una tra tante è la programmazione dei piccoli microcontrollori ATtiny85, utilizzando un set di istruzioni ridotto, ma compatibile con quelle per programmare la Arduino UNO. La...</p>
<p>The post <a href="https://logicaprogrammabile.it/programmare-attiny85-attiny45/">Programmare un ATtiny85 utilizzando Arduino UNO</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h3>Come utilizzare Arduino ISP per caricare un firmware su un ATtiny85</h3>
<p>La piattaforma <strong>Arduino</strong>, come sappiamo, offre molte possibilità, una tra tante è la programmazione dei piccoli microcontrollori <strong>ATtiny85,</strong> utilizzando un set di istruzioni ridotto, ma compatibile con quelle per programmare la Arduino UNO. La <a title="Caricare gli sketch su ATMEGA328 stand-alone" href="https://logicaprogrammabile.it/caricare-sketch-atmega328-stand-alone/">procedura per caricare uno sketch</a> su questi dispositivi è quella usate per l&#8217;<strong>ATMEGA328</strong> stand alone.</p>
<p><img fetchpriority="high" decoding="async" class="aligncenter size-full wp-image-2588" title="Pin Out attiny85" src="https://logicaprogrammabile.it/wp-content/uploads/2012/03/PinOutattiny85.gif" alt="Pin function Attiny85" width="642" height="201" srcset="https://logicaprogrammabile.it/wp-content/uploads/2012/03/PinOutattiny85.gif 642w, https://logicaprogrammabile.it/wp-content/uploads/2012/03/PinOutattiny85-300x93.gif 300w" sizes="(max-width: 642px) 100vw, 642px" /></p>
<p><span id="more-2583"></span>Questa procedura è utile perché l&#8217;ATtiny85, essendo molto piccolo, trova impiego nei progetti dove le dimensioni sono un requisito fondamentale. Naturalmente essendo piccoletto, le sue caratteristiche hardware sono limitate, ma pur sempre interessanti. Ecco riassunte le specifiche principali:</p>
<table border="0" align="center">
<tbody>
<tr>
<td><strong>Program Memory</strong></td>
<td>8 Kbyte</td>
</tr>
<tr>
<td><strong>EEPROM</strong></td>
<td>512 Byte</td>
</tr>
<tr>
<td><strong>SRAM</strong></td>
<td>512 Byte</td>
</tr>
<tr>
<td><strong>Frequenza di lavoro</strong></td>
<td>1MHz &#8211; 8MHz &#8211; 16MHz</td>
</tr>
<tr>
<td><strong>ADC</strong></td>
<td>4 Canali</td>
</tr>
<tr>
<td><strong>Protocollo Seriale</strong></td>
<td>SPI</td>
</tr>
</tbody>
</table>
<p>una peculiarità di questi microcontrollori è che per funzionare non necessitano del classico circuito risuonatore (quarzo + condensatori) ma possono utilizzare un generatore di clock interno.</p>
<p>Le istruzioni compatibili con l&#8217;Attiny sono le seguenti:</p>
<ul>
<li><a href="http://arduino.cc/en/Reference/PinMode" target="_blank">pinMode()</a></li>
<li><a href="http://arduino.cc/en/Reference/DigitalWrite" target="_blank">digitalWrite()</a></li>
<li><a href="http://arduino.cc/en/Reference/DigitalRead" target="_blank">digitalRead()</a></li>
<li><a href="http://arduino.cc/en/Reference/AnalogRead" target="_blank">analogRead()</a></li>
<li><a href="http://arduino.cc/en/Reference/AnalogWrite" target="_blank">analogWrite() &#8211; PWM</a></li>
<li><a href="http://arduino.cc/en/Reference/ShiftOut" target="_blank">shiftOut() &#8211; Software SPI</a></li>
<li><a href="http://arduino.cc/en/Reference/PulseIn" target="_blank">pulseIn()</a></li>
<li><a href="http://arduino.cc/en/Reference/Millis" target="_blank">millis()</a></li>
<li><a href="http://arduino.cc/en/Reference/Micros" target="_blank">micros()</a></li>
<li><a href="http://arduino.cc/en/Reference/Delay" target="_blank">delay()</a></li>
<li><a href="http://arduino.cc/en/Reference/DelayMicroseconds" target="_blank">delayMicroseconds()</a></li>
</ul>
<p>Il primo passo riguarda la configurazione dell&#8217;ambiente di sviluppo poiché non è possibile programmare nativamente questi chip. <a href="http://code.google.com/p/arduino-tiny/downloads/list" target="_blank">Seguiamo questo indirizzo</a> per scaricare i relativi file di configurazione . Attualmente il pacchetto più recente è l&#8217;<a href="http://code.google.com/p/arduino-tiny/downloads/detail?name=arduino-tiny-0100-0012.zip&amp;can=2&amp;q=">arduino-tiny-0100-0012.zip </a>rilasciato il 27 Febbraio 2012.<br />
Nella cartella degli <strong>sketchbook </strong> (File -&gt;  Preferences -&gt; Sketchbook location) creo una directory di nome Hardware e dopo il download scompatto il file zip e copio le cartelle <strong>tiny</strong> e <strong>tools</strong> all&#8217;interno di questa cartella</p>
<p><img decoding="async" class="aligncenter size-medium wp-image-2597" title="Sketchbook" src="https://logicaprogrammabile.it/wp-content/uploads/2012/03/Sketchbook-300x224.jpg" alt="Arduino sketchbook location" width="300" height="224" srcset="https://logicaprogrammabile.it/wp-content/uploads/2012/03/Sketchbook-300x224.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2012/03/Sketchbook.jpg 451w" sizes="(max-width: 300px) 100vw, 300px" /></p>
<p><img decoding="async" class="aligncenter size-medium wp-image-2602" title="Sketchbook2" src="https://logicaprogrammabile.it/wp-content/uploads/2012/03/Sketchbook2-300x183.jpg" alt="" width="300" height="183" srcset="https://logicaprogrammabile.it/wp-content/uploads/2012/03/Sketchbook2-300x183.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2012/03/Sketchbook2.jpg 411w" sizes="(max-width: 300px) 100vw, 300px" /></p>
<p>Avviamo l&#8217;IDE e controlliamo nella lista delle Board la presenza dei chip ATtiny</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-2603" title="BoardListATtiny" src="https://logicaprogrammabile.it/wp-content/uploads/2012/03/BoardListATtiny-300x195.jpg" alt="Lista processori attiny" width="300" height="195" srcset="https://logicaprogrammabile.it/wp-content/uploads/2012/03/BoardListATtiny-300x195.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2012/03/BoardListATtiny.jpg 682w" sizes="auto, (max-width: 300px) 100vw, 300px" /></p>
<p>Per quanto riguarda l&#8217;IDE non è possibile, attualmente, utilizzare Arduino 1.0 poiché lo sketch <strong>Arduino ISP</strong> non è compatibile con questa versione dell&#8217;ambiente di sviluppo. Nel mio caso ho usato la precedente versione, la <a href="http://arduino.googlecode.com/files/arduino-0023.zip" target="_blank">0023</a>, che non mi ha mai dato problemi neanche per <a title="Arduino UNO bootloader su un nuovo chip ATMEGA328" href="https://logicaprogrammabile.it/arduino-uno-bootloader-chip-atmega328/">caricare il bootloader sugli ATmega328</a>.</p>
<p>I collegamenti da effettuare per programmare il piccolo chip sono rappresentati in figura:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-2593" title="ATtiny85_programmer_bb" src="https://logicaprogrammabile.it/wp-content/uploads/2012/03/ATtiny85_programmer_bb-236x300.jpg" alt="Programmatore ATtiny85 Attiny45" width="236" height="300" srcset="https://logicaprogrammabile.it/wp-content/uploads/2012/03/ATtiny85_programmer_bb-236x300.jpg 236w, https://logicaprogrammabile.it/wp-content/uploads/2012/03/ATtiny85_programmer_bb.jpg 351w" sizes="auto, (max-width: 236px) 100vw, 236px" /></p>
<p>La tabella di connessione è la seguente</p>
<table border="0" align="center">
<tbody>
<tr>
<td colspan="2"><strong>PIN11  di Arduino UNO  collegato al PIN5 dell&#8217;ATtiny85 (MOSI)</strong></td>
</tr>
<tr>
<td colspan="2"><strong>PIN12 di Arduino UNO  collegato al PIN6 dell&#8217;ATtiny85 (MISO)</strong></td>
</tr>
<tr>
<td colspan="2"><strong>PIN13 di Arduino UNO  collegato al PIN7 dell&#8217;ATtiny85 (SCK)</strong></td>
</tr>
<tr>
<td colspan="2"><strong>PIN10 di Arduino UNO collegato al PIN1 dell&#8217;ATtiny85 (RESET)</strong></td>
</tr>
<tr>
<td colspan="2"><strong>+5Vdc di Arduino UNO collegato al PIN8 dell&#8217;ATtiny85 (VCC)</strong></td>
</tr>
<tr>
<td colspan="2"><strong>GNG di Arduino UNO collegato al PIN4 dell&#8217;ATtiny85 (GND)</strong></td>
</tr>
</tbody>
</table>
<p>Avviamo l&#8217;IDE 0023 e carichiamo lo sketch Arduino ISP. Selezioniamo la board Arduino UNO, la relativa porta seriale e carichiamo il programma sulla board.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-2604" title="Arduino ISP" src="https://logicaprogrammabile.it/wp-content/uploads/2012/03/Arduino-ISP-262x300.jpg" alt="" width="262" height="300" srcset="https://logicaprogrammabile.it/wp-content/uploads/2012/03/Arduino-ISP-262x300.jpg 262w, https://logicaprogrammabile.it/wp-content/uploads/2012/03/Arduino-ISP.jpg 473w" sizes="auto, (max-width: 262px) 100vw, 262px" /></p>
<p><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-2605" title="Arduino ISP_02" src="https://logicaprogrammabile.it/wp-content/uploads/2012/03/Arduino-ISP_02-300x214.jpg" alt="" width="300" height="214" srcset="https://logicaprogrammabile.it/wp-content/uploads/2012/03/Arduino-ISP_02-300x214.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2012/03/Arduino-ISP_02.jpg 615w" sizes="auto, (max-width: 300px) 100vw, 300px" /></p>
<p><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-2606" title="Arduino ISP_03" src="https://logicaprogrammabile.it/wp-content/uploads/2012/03/Arduino-ISP_03-300x240.jpg" alt="" width="300" height="240" srcset="https://logicaprogrammabile.it/wp-content/uploads/2012/03/Arduino-ISP_03-300x240.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2012/03/Arduino-ISP_03.jpg 456w" sizes="auto, (max-width: 300px) 100vw, 300px" /></p>
<p>Ora eseguiamo i collegamenti per programmare il chip ATtiny85, come visto precedentemente.</p>
<p>Scriviamo il classico sketch che permette di far lampeggiare un led</p>
<p>[c]<br />
void setup()<br />
{<br />
  //PIN0 in output<br />
  //il PIN0 corrisponde al PIN5 dell&#8217;ATtiny85<br />
  //vedi lo schema<br />
  pinMode(0, OUTPUT);<br />
}</p>
<p>void loop()<br />
{<br />
  //led on-off ogni mezzo secondo<br />
  delay(500);<br />
  digitalWrite(0, HIGH);<br />
  delay(500);<br />
  digitalWrite(0, LOW);<br />
}<br />
[/c]</p>
<p>Clicchiamo sul pulsante upload per caricare lo sketch sull&#8217;ATtiny85. I led <strong>TX</strong> e <strong>RX</strong> della board Arduino UNO inizieranno a lampeggiare indicando il trasferimento del firmware sull&#8217;ATtiny85. Dopo qualche istante, se non si verificano problemi tipici di autoreset (superabili utilizzando il classico condensatore da porre tra il <strong>GND</strong> e il pin <strong>/Reset</strong>) sulla finestra dell&#8217;IDE dovrebbe apparire la conferma di <strong>Done uploading</strong>, con i seguenti <strong>warning</strong>:</p>
<p style="text-align: center;"><span style="color: #993300;">avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny85</span><br />
<span style="color: #993300;"> avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny85</span></p>
<p>che possiamo tralasciare, perchè non compromettono la procedura.</p>
<p>Colleghiamo il led con una resistenza per verificare che tutto sia stato eseguito correttamente</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-2615" title="ATinyTest_bb" src="https://logicaprogrammabile.it/wp-content/uploads/2012/03/ATinyTest_bb.png" alt="ATtiny85" width="224" height="207" /></p>
<p>La programmazione di questi chip è tutto sommato semplice e veloce, spero che col tempo il team di Arduino inserisca nativamente il supporto a questi dispositivi e che aggiungano ulteriori funzioni.</p>
<p>The post <a href="https://logicaprogrammabile.it/programmare-attiny85-attiny45/">Programmare un ATtiny85 utilizzando Arduino UNO</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/programmare-attiny85-attiny45/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Arduino UNO bootloader su un nuovo chip ATMEGA328</title>
		<link>https://logicaprogrammabile.it/arduino-bootloader-atmega328/</link>
					<comments>https://logicaprogrammabile.it/arduino-bootloader-atmega328/#comments</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Fri, 29 Jul 2011 09:50:52 +0000</pubDate>
				<category><![CDATA[Tutorial Arduino]]></category>
		<category><![CDATA[ArduinoISP]]></category>
		<category><![CDATA[ATMEGA328]]></category>
		<category><![CDATA[Bootloader]]></category>
		<category><![CDATA[Programmatore AVR]]></category>
		<category><![CDATA[SPI]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=1767</guid>

					<description><![CDATA[<p>Procedura per caricare il bootloader su un chip vergine. La cosa che apprezzo maggiormente di Arduino è la possibilità di realizzare una propria compatible-board. Questo permette di creare soluzioni integrate che si adattano meglio alle proprie esigenze di sviluppo e di implementazione. Una volta realizzato...</p>
<p>The post <a href="https://logicaprogrammabile.it/arduino-bootloader-atmega328/">Arduino UNO bootloader su un nuovo chip ATMEGA328</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>Procedura per caricare il bootloader su un chip vergine.</h1>
<p>La cosa che apprezzo maggiormente di <strong>Arduino</strong> è la possibilità di realizzare una propria compatible-board. Questo permette di creare soluzioni integrate che si adattano meglio alle proprie esigenze di sviluppo e di implementazione.<br />
Una volta realizzato un prototipo funzionante con la board ufficiale possiamo rimuovere il chip Atmel per adattarlo su una nostra scheda.</p>
<p>Per realizzare questo lavoro è sufficiente acquistare degli <strong>Atmega328P-PU</strong> vergini, caricare il <strong>bootloader</strong>, lo sketch e montare tutto sulla scheda dedicata.</p>
<p>Per poter programmare i nuovi chip con gli sketch è necessario prima di tutto caricare il bootloader al loro interno, questa procedura solitamente viene eseguita tramite un programmatore dedicato che costa qualche decina di euro.</p>
<p>Fortunatamente esiste una tecnica che permette di utilizzare la nostra board Arduino UNO per programmare il nuovo chip. Sul web sono presenti molti esempi che illustrano i collegamenti e spiegano come caricare il bootloader, quasi tutti in lingua inglese; ho deciso, quindi, di scrivere questo articolo per dare la possibilità, soprattutto per i neofiti, di imparare questa utile tecnica.</p>
<p><span id="more-1767"></span>Prima di iniziare dobbiamo realizzare il circuito seguente:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-2600" title="Uno_BootLoad1" src="https://logicaprogrammabile.it/wp-content/uploads/2011/07/Uno_BootLoad1.gif" alt="" width="414" height="296" srcset="https://logicaprogrammabile.it/wp-content/uploads/2011/07/Uno_BootLoad1.gif 414w, https://logicaprogrammabile.it/wp-content/uploads/2011/07/Uno_BootLoad1-300x214.gif 300w" sizes="auto, (max-width: 414px) 100vw, 414px" /></p>
<p>La tabella seguente riassume i collegamenti tra l&#8217;Arduino UNO e il chip ATMEGA328</p>
<table>
<tbody>
<tr>
<td>Arduino UNO</td>
<td>Chip vergine ATMEGA328</td>
</tr>
<tr>
<td>Pin 5V</td>
<td>da collegare ai pin 7 e pin 20</td>
</tr>
<tr>
<td>Pin GND</td>
<td>da collegare ai pin 8 e pin 22</td>
</tr>
<tr>
<td>Pin 10</td>
<td>da collegare al pin 1</td>
</tr>
<tr>
<td>Pin 11</td>
<td>da collegare al pin 17</td>
</tr>
<tr>
<td>Pin 12</td>
<td>da collegare al pin 18</td>
</tr>
<tr>
<td>Pin 13</td>
<td>da collegare al pin 19</td>
</tr>
</tbody>
</table>
<p>Inoltre il pin1 del nuovo chip deve essere collegato alla +5Vdc tramite una resistenza da 10Kohm. I pin 9 e 10 devono essere collegati al quarzo da 16Mhz e ai due condensatori ceramici.</p>
<p>Lo schema proposto utilizza il canale SPI per caricare il bootloader nel chip vergine. Via software è necessario predisporre l&#8217;Arduino UNO in modo che funga da programmatore.<br />
Non dobbiamo inventare niente, è sufficiente caricare lo sketch <strong>ArduinoISP</strong> presente nel menu <span style="text-decoration: underline;">File-&gt;Examples</span> dell&#8217;ambiente di sviluppo.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-1783 size-full" title="Sketch Arduino ISP" src="https://logicaprogrammabile.it/wp-content/uploads/2011/07/ArduinoISP.jpg" alt="Caricare programma Arduino ISP" width="499" height="598" srcset="https://logicaprogrammabile.it/wp-content/uploads/2011/07/ArduinoISP.jpg 499w, https://logicaprogrammabile.it/wp-content/uploads/2011/07/ArduinoISP-250x300.jpg 250w" sizes="auto, (max-width: 499px) 100vw, 499px" /></p>
<p>Ora carichiamo lo sketch sul nostro Arduino UNO utilizzando il pulsante upload e attendiamo il messaggio di conferma</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-1785 size-full" title="Upload ArduinoISP" src="https://logicaprogrammabile.it/wp-content/uploads/2011/07/Upload.jpg" alt="Procedura per caricare il bootloader Arduino" width="499" height="252" srcset="https://logicaprogrammabile.it/wp-content/uploads/2011/07/Upload.jpg 499w, https://logicaprogrammabile.it/wp-content/uploads/2011/07/Upload-300x151.jpg 300w" sizes="auto, (max-width: 499px) 100vw, 499px" /></p>
<p><a href="https://logicaprogrammabile.it/wp-content/uploads/2011/07/Uploading1.jpg"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1788" title="Uploading bootloader" src="https://logicaprogrammabile.it/wp-content/uploads/2011/07/Uploading1.jpg" alt="Fase di caricamento dello sketch" width="498" height="75" srcset="https://logicaprogrammabile.it/wp-content/uploads/2011/07/Uploading1.jpg 498w, https://logicaprogrammabile.it/wp-content/uploads/2011/07/Uploading1-300x45.jpg 300w" sizes="auto, (max-width: 498px) 100vw, 498px" /></a></p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-1789 size-full" title="Caricamento sketch ultimato" src="https://logicaprogrammabile.it/wp-content/uploads/2011/07/UploadDone1.jpg" alt="caricamento ArduinoISP ultimato" width="498" height="156" srcset="https://logicaprogrammabile.it/wp-content/uploads/2011/07/UploadDone1.jpg 498w, https://logicaprogrammabile.it/wp-content/uploads/2011/07/UploadDone1-300x93.jpg 300w" sizes="auto, (max-width: 498px) 100vw, 498px" /></p>
<p>A questo punto si potrebbero caricare sul nuovo chip diversi bootloader, a seconda del tipo di board che intendiamo realizzare (l&#8217;unica raccomandazione è comunque utilizzare una board compatibile col chip ATMEGA328).<br />
A noi, per ora, ci interessa caricare il bootloader dell&#8217;Arduino UNO, quindi dal menu <span style="text-decoration: underline;">Tools-&gt;Board</span> selezioniamo <strong>Arduino UNO</strong></p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-1792 size-full" title="Seleziona tipo scheda" src="https://logicaprogrammabile.it/wp-content/uploads/2011/07/SelectBoard.jpg" alt="Seleziona la scheda Arduino UNO" width="618" height="482" srcset="https://logicaprogrammabile.it/wp-content/uploads/2011/07/SelectBoard.jpg 618w, https://logicaprogrammabile.it/wp-content/uploads/2011/07/SelectBoard-300x233.jpg 300w" sizes="auto, (max-width: 618px) 100vw, 618px" /></p>
<p>Non ci resta che avviare l&#8217;operazione tramite il menu <span style="text-decoration: underline;">Tools-&gt;Burn Bootloader-&gt; w/ Arduino as ISP</span></p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-1794 size-full" title="Burn Bootloader" src="https://logicaprogrammabile.it/wp-content/uploads/2011/07/BurnBootloader.jpg" alt="Caricamento bootloader tramite ISP" width="500" height="371" srcset="https://logicaprogrammabile.it/wp-content/uploads/2011/07/BurnBootloader.jpg 500w, https://logicaprogrammabile.it/wp-content/uploads/2011/07/BurnBootloader-300x222.jpg 300w" sizes="auto, (max-width: 500px) 100vw, 500px" /></p>
<p>La scrittura del bootloader richiede qualche minuto. Durante l&#8217;operazione i led <strong>L</strong>, <strong>TX</strong> e <strong>RX</strong> sulla board <strong>Arduino Uno</strong> lampeggiano costantemente e si spengono solo quando la scrittura è completata.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-1795 size-full" title="Burning Bootloader" src="https://logicaprogrammabile.it/wp-content/uploads/2011/07/BurningBootloader.jpg" alt="Fase di scrittura del bootloader" width="499" height="119" srcset="https://logicaprogrammabile.it/wp-content/uploads/2011/07/BurningBootloader.jpg 499w, https://logicaprogrammabile.it/wp-content/uploads/2011/07/BurningBootloader-300x71.jpg 300w" sizes="auto, (max-width: 499px) 100vw, 499px" /></p>
<p>dopo qualche minuto l&#8217;editor mostrerà un messaggio dell&#8217;avvenuta scrittura del bootloader</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-1797 size-full" title="Burn Bootloader Done" src="https://logicaprogrammabile.it/wp-content/uploads/2011/07/BurnBootloaderDone.jpg" alt="scritura bootloader eseguita con successo" width="502" height="88" srcset="https://logicaprogrammabile.it/wp-content/uploads/2011/07/BurnBootloaderDone.jpg 502w, https://logicaprogrammabile.it/wp-content/uploads/2011/07/BurnBootloaderDone-300x52.jpg 300w" sizes="auto, (max-width: 502px) 100vw, 502px" /></p>
<p>Su diversi blog ho letto che questa operazione potrebbe concludersi con l&#8217;errore <strong>avrdude: stk500_getsync(): not in sync: resp=0x00 avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51.<br />
</strong>Ciò può dipendere da errori di connessione risolvibili controllando la corretta porta dove è collegato l&#8217;Arduino (Tools-&gt;Serial Port) o scollegando e ricollegando il cavo usb.</p>
<p>Se il problema persiste questo può allora dipendere all&#8217;autoreset dell&#8217;Arduino UNO. Per risolverlo è sufficiente modificare lo schema elettrico aggiungendo una resistenza da 120 Ohm e un condensatore da 10microF che hanno il compito di disabilitare l&#8217;autoreset. Ecco lo schema:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-1801 size-full" title="Disable Autoreset Arduino Uno" src="https://logicaprogrammabile.it/wp-content/uploads/2011/07/Uno_BootLoadMOD.gif" alt="Disabilitare autoreset Arduino UNO" width="414" height="296" srcset="https://logicaprogrammabile.it/wp-content/uploads/2011/07/Uno_BootLoadMOD.gif 414w, https://logicaprogrammabile.it/wp-content/uploads/2011/07/Uno_BootLoadMOD-300x214.gif 300w" sizes="auto, (max-width: 414px) 100vw, 414px" /></p>
<p>Ultimati i collegamenti eseguiamo nuovamente la procedura per il caricamento del bootloader.</p>
<p>Ora che il nuovo chip è dotato di bootloader possiamo montarlo sulla board Arduino Uno per programmarlo con gli sketch di esempio e verificare che tutto funziona regolarmente.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-1809 size-full" title="Esperimento Arduino ISP" src="https://logicaprogrammabile.it/wp-content/uploads/2011/07/Scheda.jpg" alt="Arduino ISP" width="450" height="337" srcset="https://logicaprogrammabile.it/wp-content/uploads/2011/07/Scheda.jpg 450w, https://logicaprogrammabile.it/wp-content/uploads/2011/07/Scheda-300x224.jpg 300w" sizes="auto, (max-width: 450px) 100vw, 450px" /></p>
<p>&nbsp;</p>
<p>The post <a href="https://logicaprogrammabile.it/arduino-bootloader-atmega328/">Arduino UNO bootloader su un nuovo chip ATMEGA328</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/arduino-bootloader-atmega328/feed/</wfw:commentRss>
			<slash:comments>26</slash:comments>
		
		
			</item>
	</channel>
</rss>
