Atmega a prezzo stracciato

Ciao a tutti,
volevo sapere se qualcuno era riuscito a caricare il bootloader per l'UNO con un 2009 usato come ISP... Questa domanda per la seguente frase nella pagina http://arduino.cc/en/Tutorial/ArduinoISP :

"NOTE: Currently, you cannot use an Arduino Uno as an ISP programmer because the optiboot bootloader does not support this sketch. A revision for this is in progress." :frowning:

Se qualcuno è riuscito a caricare il bootloader dell'UNO su un Atmega328 vergine, con o senza programmatore esterno, sarebbe fantastico sapere come (magari con qualche dettaglio/consiglio)... scusate l'inesperienza in materia ma stavo valutando se acquistare o meno degli Atmega vergini da usare con un Arduino Uno e, prima di fare un acquisto inutile, preferivo chiedere a chi è più esperto di me (e credo che almeno il 99,9% degli utenti di questo forum lo sia...) :slight_smile:

Volevo usarli per caricare uno sketch diverso su ciascun Atmega e poi intercambiarli sull'Uno invece di riprogrammare sempre lo stesso!

Un salutone e un grazie anticipato!

Se hai un vecchio pc con una porta parallela valuta questo

Erilu:
volevo sapere se qualcuno era riuscito a caricare il bootloader per l'UNO con un 2009 usato come ISP... Questa domanda per la seguente frase nella pagina http://arduino.cc/en/Tutorial/ArduinoISP :

"NOTE: Currently, you cannot use an Arduino Uno as an ISP programmer because the optiboot bootloader does not support this sketch. A revision for this is in progress." :frowning:

La frase dice "correntemente non è possibile usare un Arduino UNO come programmatore ISP perché il bootloader optiboot non supporta il relativo sketch. Una revisione per questa problema è allo studio."

Quindi mi pare ovvio che se usi un Arduino 2009 puoi caricare il bootloader della UNO su un ATmega 328p vergine o preprogrammato che sia.
Se vuoi una ulteriore conferma te la do io perché ho provato personalmente ad usare lo sketch ISP programmer su Arduino 2009 per caricare il bootloader, sia 2009 che UNO, sui dei 328p, però attenzione che è indispensabile bloccare l'autoreset della 2009, va tagliata una pista, affinché lo sketch possa funzionare, in alternativa usare una Luigino 328 con lo SmartReset attivo.

xelendilx:
Se hai un vecchio pc con una porta parallela valuta questo

http://www.arduino.cc/en/Hacking/ParallelProgrammer

Grazie xelendilx,
purtroppo ho a disposizione un PC "nuovo" (tra virgolette), nel senso che è vecchio ma non ha una porta parallela... ne ho uno in cantina ma è spento da anni!!! :frowning:
Inoltre non mi è molto chiaro come procedere dal punto di vista software!!! (ovvero se basta l'IDE di Arduino o se è necessario dotarsi di qualche programmino ad hoc!)

astrobeed:
La frase dice "correntemente non è possibile usare un Arduino UNO come programmatore ISP perché il bootloader optiboot non supporta il relativo sketch. Una revisione per questa problema è allo studio."

Quindi mi pare ovvio che se usi un Arduino 2009 puoi caricare il bootloader della UNO su un ATmega 328p vergine o preprogrammato che sia.
Se vuoi una ulteriore conferma te lo do io perché ho provato personalmente ad usare lo sketch ISP programmer su Arduino 2009 per caricare il bootloader, sia 2009 che UNO, sui dei 328p, però attenzione che è indispensabile bloccare l'autoreset della 2009, va tagliata una pista, affinché lo sketch possa funzionare, in alternativa usare una Luigino 328 con lo SmartReset attivo.

Grazie astrobeed,
aaarrrgh! :slight_smile: Tagliare una pista sull'unico e amato Arduino 2009, parte della mia misera ma adorata collezione di pezzi e componenti di elettronica!!! :frowning:
Non esisterebbe, a parte usare una Luigino 328 (che purtroppo non possiedo), un metodo meno brutale??? :~
Ogni altra opzione è ben accetta per evitare di sezionare il mio povero 2009 che, dopo questo post, lampeggia con tutti i suoi led, implorandomi di risparmiarlo dalla tortura. :slight_smile: :slight_smile: :slight_smile:
Grazie comunque per le info preziose a riguardo!
Se qualcuno ha altri suggerimenti io sono qui per assimilarli... :slight_smile:

Ciao a tutti

Se hai la 2009 puoi provare ad usare l'FTDI in bitbang mode, però non l'ho mai provato e non posso confermarti se funziona sul serio e/o gli eventuali problemi.

Questa è una curiosità che può tornare utile, chi ha un programmatore Microchip Pickit2 può usarlo come programmatore AVR, funziona perfettamente sia con AVR studio che con AVRdude, provato personalmente con i 168 e i 328.

http://pickit2.isgreat.org

La 2009 funziona come programmatore ISP senza tagliare nulla come descritto qui http://arduino.cc/en/Tutorial/ArduinoISP

m

xelendilx:
Se hai un vecchio pc con una porta parallela valuta questo

http://www.arduino.cc/en/Hacking/ParallelProgrammer

Un adattatore usb-->parallelo puo' funzionare?

Grazie Massimo,
allora confermi che è possibile usare la 2009 per programmare un Atmega328 con il bootloader dell'UNO???
(naturalmente, come già hai detto, senza tagliare nulla... io voglio un sacco di bene bene al mio Duemilanove!!!) :slight_smile:

Ciao

Mi dispiace contraddirti, ma non è così, sto facendo riferimento allo sketch ArduinoISP.pde allegato all'IDE.
E' necessario disabilitare l'autoreset perchè nel momento in cui si da il via alla programmazione dall'IDE di Arduino l'apertura della Vcom comporta il reset dell'ATmega con la conseguente perdita di comunicazione, il risultato è il fallimento dell'operazione.
Per risolvere ci sono due modi, il primo è tagliare la pista dell'autoreset, al suo posto si usa il jumper reset EN (è di lato al connettore USB) previsto dal progetto di Arduino 2009, il secondo modo che ho trovato consigliato sul forum internazionale è collegare una resistenza da 120 ohm tra il reset e il +5V in modo da invalidare l'impulso che arriva tramite DTR e il condensatore da 100 nf.
Cosa citata anche nel playground e che ho avuto modo di verificare in pratica.

A me funziona senza fare nessuna modifica, carico lo sketch e metto il bootloader

@astrobeed: ho il pickit2 ma l'ho usato solo una volta e per giunta senza successo, sicuramente è stato per mia incapacità ma se dici che funziona riproverò.

Altra curiosità: se tramite il pickit2 è possibile scrivere sul microcontrollore, a questo punto si potrebbe omettere anche il bootloader caricando direttamente il file .hex del nostro sketch risparmiando un pò di memoria, ho detto una fesseria?

@Pelletta:
il bootloader è una "comodità" che serve proprio per poter caricare uno sketch nell'Atmega usando Arduino semplicemente collegato al PC. Se si dispone di un programmatore esterno e si usa l'Atmega in un proprio progetto, l'uso del bootloader si può anche evitare. Si risparmia qualche byte di memoria: con il boot dell'Uno sono solo 512 ma con quello del 2009 arrivano già a 1,5 kB, e se uno ha l'Atmega168 (cioè con 16 kB di Flash totali) comincia già ad essere una differenza che si fa sentire :wink:

Pelletta:
A me funziona senza fare nessuna modifica, carico lo sketch e metto il bootloader

Idem anche per me.
Operazione ripetuta con successo su 4 ATmega328P, utilizzando un semplice Arduino 2009 :slight_smile:

Non sto a discutere sul fatto che magari a qualcuno funziona pure senza disabilitare l'autoreset, però vi riporto quanto scritto sul playground relativamente a questo scketch.


Arduinos with auto reset capabilities(i.e. Diecimila, Duemilanove) will likely need to have the auto-reset functionality disabled.


Per ulteriore chiarezzo lo traduco.


Su Arduino dotati dell'autoreset, p.e. Diecimila o 2009, potrebbe essere necessario disabilitare l'autoreset.


Ovviamente la frase indica una possibilità e non una certezza, questo vuol dire che in effetti può anche funzionare senza disabilitare l'autoreset, ma può anche non funzionare.
Io ho provato con una 2009 e fino a che non ho disabilitato l'autoreset non ha funzionato, ho provato con 5 diverse Luigino 328 senza riuscirci fino a che non ho abilitato lo SmartReset, è la funzione che blocca il reset del micro quando si apre la Vcom sul pc.
Non ho il tempo per mettermi a guardare cosa combina esattamente l'IDE quando si invoca la programmazione tramite Arduino, ma ho il sospetto che non ci sia un sufficiente delay dopo l'apertura della Vcom prima di iniziare a dialogare con l'STK500 emulato.

GianfrancoPa:

xelendilx:
Se hai un vecchio pc con una porta parallela valuta questo

http://www.arduino.cc/en/Hacking/ParallelProgrammer

Un adattatore usb-->parallelo puo' funzionare?

Non saprei sinceramente... Teoricamente si..

si, deve essere usb-> tll, e portare tutti i segnali che servono nella guida (alcuni portano solo tx/rx e/o non tutti pin)

Mi sto chiedendo se conviene comprare l'adattatore parallelo/usb (che può sempre servire per altro, non si sa mai) dal costo di circa 15/20 euro, oppure autocostruirsi una schedina apposita. Ovviamente dispongo di sole porte usb, per cui per eventuali programmatori rs232 dovrei sempre utilizzare un adattatore usb/rs232.

Che ne pensate?

GianfrancoPa:
Mi sto chiedendo se conviene comprare l'adattatore parallelo/usb (che può sempre servire per altro, non si sa mai) dal costo di circa 15/20 euro, oppure autocostruirsi una schedina apposita. Ovviamente dispongo di sole porte usb, per cui per eventuali programmatori rs232 dovrei sempre utilizzare un adattatore usb/rs232.

Che ne pensate?

Secondo me con la metà di quei soldi prendi un programmatore tipo usbasp o usbtinyisp su ebay!

scusate, ma qui spiega come caricare il bootloader con arduino, senza specificare 2009 o altro.

E' corretto?

Cito da quella pagina, punto 3:

Select "Arduino Duemilanove or Nano w/ ATmega328" from the Tools > Board menu.

E poi:

you remove the microcontroller from the Arduino board so the FTDI chip can talk to the microcontroller on the breadboard

L'Uno non ha il chip FTDI.