<?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>ATMEGA328 Archives - Esperimenti con logiche programmabili</title>
	<atom:link href="https://logicaprogrammabile.it/tag/atmega328/feed/" rel="self" type="application/rss+xml" />
	<link>https://logicaprogrammabile.it/tag/atmega328/</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>ATMEGA328 Archives - Esperimenti con logiche programmabili</title>
	<link>https://logicaprogrammabile.it/tag/atmega328/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Caricare gli sketch su Arduino standalone (ATMEGA328 )</title>
		<link>https://logicaprogrammabile.it/arduino-standalone-caricare-sketch-atmega328/</link>
					<comments>https://logicaprogrammabile.it/arduino-standalone-caricare-sketch-atmega328/#comments</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Mon, 02 Jul 2012 12:22:38 +0000</pubDate>
				<category><![CDATA[Tutorial Arduino]]></category>
		<category><![CDATA[Arduino UNO Stand alone]]></category>
		<category><![CDATA[ATMEGA328]]></category>
		<category><![CDATA[Atmega328 Stand alone]]></category>
		<category><![CDATA[Sketch]]></category>
		<category><![CDATA[standalone]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=1814</guid>

					<description><![CDATA[<p>Come programmare un chip ATmega328 con i vostri sketch Quando abbiamo a disposizione un  chip Atmega328 dotato di bootloader Arduino Uno (Arduino Standalone) possiamo caricare gli sketch utilizzando un semplice schema. Esistono varie soluzioni, tra cui, quella di utilizzare la board Arduino UNO. Nel precedente...</p>
<p>The post <a href="https://logicaprogrammabile.it/arduino-standalone-caricare-sketch-atmega328/">Caricare gli sketch su Arduino standalone (ATMEGA328 )</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h3>Come programmare un chip ATmega328 con i vostri sketch</h3>
<p>Quando abbiamo a disposizione un  chip <strong>Atmega328</strong> dotato di bootloader Arduino Uno (Arduino Standalone) possiamo <strong>caricare</strong> gli <strong>sketch</strong> utilizzando un semplice schema. Esistono varie soluzioni, tra cui, quella di utilizzare la board <strong>Arduino UNO</strong>. Nel <a title="Arduino UNO bootloader su un nuovo chip ATMEGA328" href="https://logicaprogrammabile.it/arduino-uno-bootloader-chip-atmega328/">precedente articolo</a> è stata utilizzata per caricare il <a href="https://it.wikipedia.org/wiki/Boot_loader" target="_blank">bootloader </a>su un chip vergine; in questo caso la utilizzeremo per poter caricare gli sketch sul chip esterno.</p>
<p>Lo schema elettrico è il seguente:</p>
<figure id="attachment_1825" aria-describedby="caption-attachment-1825" style="width: 377px" class="wp-caption aligncenter"><a href="https://logicaprogrammabile.it/wp-content/uploads/2011/08/Uno_LoadSketch.gif"><img fetchpriority="high" decoding="async" class="wp-image-1825 size-full" title="caricare sketch su chip atmega328. Arduino stand alone" src="https://logicaprogrammabile.it/wp-content/uploads/2011/08/Uno_LoadSketch.gif" alt="Arduino standalone caricare sketch su chip atmega328 vergine" width="377" height="296" srcset="https://logicaprogrammabile.it/wp-content/uploads/2011/08/Uno_LoadSketch.gif 377w, https://logicaprogrammabile.it/wp-content/uploads/2011/08/Uno_LoadSketch-300x235.gif 300w" sizes="(max-width: 377px) 100vw, 377px" /></a><figcaption id="caption-attachment-1825" class="wp-caption-text">ATMEGA328 Arduino Stand alone Caricare sketch e bootloader</figcaption></figure>
<p><span style="text-decoration: underline;">Prima di eseguire qualsiasi operazione dovete rimuovere il chip ATMEGA328 dalla board Arduino UNO, questo perché la scheda viene utilizzata come semplice convertitore USB-Seriale.</span></p>
<p><span id="more-1814"></span></p>
<p>La procedura per caricare il codice è identica a quella per la programmazione della board Arduino UNO.<br />
Per completezza la riepilogo di seguito:</p>
<p>Carichiamo il classico sketch di esempio per far blinkare il led onboard:</p>
<p><a href="https://logicaprogrammabile.it/wp-content/uploads/2011/08/EsempioBlink.jpg"><img decoding="async" class="aligncenter size-full wp-image-1821" title="Arduino Blink Led" src="https://logicaprogrammabile.it/wp-content/uploads/2011/08/EsempioBlink.jpg" alt="Semplice esempio per far lampeggiare un led con Arduino UNO" width="500" height="597" srcset="https://logicaprogrammabile.it/wp-content/uploads/2011/08/EsempioBlink.jpg 500w, https://logicaprogrammabile.it/wp-content/uploads/2011/08/EsempioBlink-251x300.jpg 251w" sizes="(max-width: 500px) 100vw, 500px" /></a></p>
<p>Selezioniamo il tipo di board da programmare (dipendente dal tipo di bootloader caricato sul chip, solitamente quello per Arduino UNO)</p>
<p><a href="https://logicaprogrammabile.it/wp-content/uploads/2011/08/SelectBoard1.jpg"><img decoding="async" class="aligncenter size-full wp-image-1822" title="Seleziona il tipo di scheda" src="https://logicaprogrammabile.it/wp-content/uploads/2011/08/SelectBoard1.jpg" alt="Seleziona la board arduino uno" width="631" height="599" srcset="https://logicaprogrammabile.it/wp-content/uploads/2011/08/SelectBoard1.jpg 631w, https://logicaprogrammabile.it/wp-content/uploads/2011/08/SelectBoard1-300x284.jpg 300w" sizes="(max-width: 631px) 100vw, 631px" /></a></p>
<p>Ora selezioniamo la porta seriale dove è collegata la scheda</p>
<p><a href="https://logicaprogrammabile.it/wp-content/uploads/2011/08/SelectSerialPort.jpg"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1820" title="Seleziona Porta Seriale dove è collegato Arduino Uno" src="https://logicaprogrammabile.it/wp-content/uploads/2011/08/SelectSerialPort.jpg" alt="Porta Seriale Arduino UNO" width="499" height="600" srcset="https://logicaprogrammabile.it/wp-content/uploads/2011/08/SelectSerialPort.jpg 499w, https://logicaprogrammabile.it/wp-content/uploads/2011/08/SelectSerialPort-249x300.jpg 249w" sizes="auto, (max-width: 499px) 100vw, 499px" /></a></p>
<p>Non ci rimane che caricare lo sketch con il pulsante upload</p>
<p><a href="https://logicaprogrammabile.it/wp-content/uploads/2011/08/Uploading1.jpg"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1828" title="Caricare codice sull Atmega328" src="https://logicaprogrammabile.it/wp-content/uploads/2011/08/Uploading1.jpg" alt="Caricare skect su chip esterno" width="441" height="538" srcset="https://logicaprogrammabile.it/wp-content/uploads/2011/08/Uploading1.jpg 441w, https://logicaprogrammabile.it/wp-content/uploads/2011/08/Uploading1-245x300.jpg 245w" sizes="auto, (max-width: 441px) 100vw, 441px" /></a></p>
<p>attendiamo il trasferimento del codice sul nuovo chip</p>
<p><a href="https://logicaprogrammabile.it/wp-content/uploads/2011/08/UploadDone1.jpg"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1829" title="Fine upload sketch" src="https://logicaprogrammabile.it/wp-content/uploads/2011/08/UploadDone1.jpg" alt="conferma avvenuto caricamento sketch sulla board atmega328" width="435" height="572" srcset="https://logicaprogrammabile.it/wp-content/uploads/2011/08/UploadDone1.jpg 435w, https://logicaprogrammabile.it/wp-content/uploads/2011/08/UploadDone1-228x300.jpg 228w" sizes="auto, (max-width: 435px) 100vw, 435px" /></a></p>
<p>Questa procedura è utile per sfruttare la scheda Arduino UNO come programmatore piuttosto che acquistarne una, almeno per saltuarie operazioni di programmazione. Certamente consiglio di dotarsi un convertitore usb seriale esterno se intendiamo realizzare diverse board Arduino standalone.</p>
<p>La possibilità di avere un chip ATMEGA328 compatibile Arduino permette di realizzare numerosi progetti personalizzati, costruire la propria board risparmiando spazio, dato che è sufficiente usare solamente l&#8217;ATMEGA. Un aspetto vincente che fa di questo microcontrollore un evergreen!</p>
<p>The post <a href="https://logicaprogrammabile.it/arduino-standalone-caricare-sketch-atmega328/">Caricare gli sketch su Arduino standalone (ATMEGA328 )</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/arduino-standalone-caricare-sketch-atmega328/feed/</wfw:commentRss>
			<slash:comments>8</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>
