Go Down

Topic: Tutorial per Burn Bootloader con qualsiasi Arduino - NUOVA Versione 2.0 (Read 2680 times) previous topic - next topic

GianfrancoPa

Gianfranco

Michele Menniti

Ma mi spiegate una cosa: caricare il burn bootloader o un qualsiasi sketch danno all'Arduino sempre il "ruolo" di ISP Programmer?
Ho letto il topic americano (@GianfrancoPa: thank's for quote!  ;)) e mi pareva d'aver capito che il tizio newbie avesse problemi a caricare il burn bootloader; ora se ha ringraziato felicemente Leo72, significa che ha fatto questa operazione con il suo suggerimento, mi pareva d'aver capito che Leo72 parlasse di caricare gli sketch, non il bootloader; in quest'ultimo caso, e SOLO in quest'ultimo caso, la tecnica che stiamo usando non è più semplice di quella di Leo72?
I chiarimenti mi necessitano perché con l'inglese vado "a senso", purtroppo  :* e perché, volendo implementare nella mia guida anche questa funzione (ho alcune altre idee da testare, dopo aver letto alcuni post inglesi) non voglio scrivere fregnacce (non è romanesco?)
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

GianfrancoPa

Si, sono due cose differenti. Il problema che hai trattato fino ad oggi serve per scrivere il bootloader su un ATmega. Il bootloader consente di poter caricare lo skecth direttamente sull'atmega senza dover passare utilizzare altro hw. Il guadagno di questa funzionalità comporta la perdita di 0.5Kb (dimensione del bootloader).

Se invece si vuol risparmiare tale spazio bisogna scrivere lo sketch direttamente sull'ATmega bypassando quindi l'opzione offerta dal bootloader. Ovviamente su un ATmega328 l'esigenza e' minima in quanto si hanno 32Kb di memoria, ma su alcuni ATmega lo spazio a disposizione è minore e quel mezzo KB può essere importante!!

Per poter scrivere su un ATmega senza passare dal bootloader, ci vuole un programmatore ISP che faccia da tramite poichè si perdono i benefici del bootloader. In fondo e' la stessa ragione per cui non è possibile scrivere il bootloader su un ATmega vergine direttamente, senza ricorrere ad un programmatore ISP.

E' una opportunità in più, poi le esigenze di ognuno renderanno più conveniente l'uso del primo o del secondo metodo!
Gianfranco

Michele Menniti

Chiarissimo, grazie, l'ideale ora sarebbe riuscire a fare un metodo unico, semplice, per entrambe le operazioni. Vediamo  :smiley-eek:
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

leo72

Siccome il mio metodo usa l'Atmega dell'Arduino come un programmatore ISP dato che carico su di esso proprio tale sketch, io credo che la strada percorribile sia quella. Provate a impostare tutto con il mio metodo e poi a scegliere Tools/Bord bootloader/w/ Arduino as ISP e vedere cosa succede. Io al momento non posso provarlo.

Michele Menniti

Bene! finalmente ho potuto fare un po' di prove e posso dare le prime indicazioni, poi naturalmente implementerò tutto nel tutorial che, a questo punto cambierà il nome, visto ch ora parliamo anche di sketch e non solo di bootloader!
Quindi faccio solo una breve anticipazione:
Partendo da Arduino (UNO o 2009) si può caricare uno sketch su un chip montato in stand alone (p.es. una breadboard o una pcb creata appositamente, i metodi possibili sono 2:
1) quello del tutorial ufficiale, finalmente sono riuscito a farlo funzionare, ho scoperto l'errore del tutorial che mi ha fatto perdere un paio di nottate ( ]:)). Questo metodo ha però l'handicap di richiedere la rimozione del chip da Arduino e questa cosa alla lunga crea problemi, come ho imparato a mie spese, facendo partire per errore un C smd, montato sulla piastra, come un missile di Cape Canaveral  :smiley-eek:
2) L'altro metodo, mi inchino alla grande intuizione di leo72  :), consiste nell'utilizzare il suo suggerimento di modifica del file board.txt, nelle varie prove ho apportato una piccola semplificazione della procedura, che la rende abbastanza più comoda nelle manovre XD. Il grande vantaggio di questo metodo consiste appunto nel fatto di evitare di toccare il chip di Arduino.
Ora devo fare le prove tra due Arduino, con entrambi i metodi, le solite foto particolareggiate, e poi pubblico l'aggiornamento.
Naturalmente non mancherò di inserire i dovuti ringraziamenti (visto che ha rifiutato i 1000 euro via fax...) a leo72, aspetto solo che mi dica se preferisce l'avatar (una volta si chiamava alias) o il suo nome e cognome, che conosco.... ;)
A presto amici!
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

GianfrancoPa

Sono felicissimo di questi passi in avanti!! Il tuo lavoro poi merita una traduzione in inglese!!!

Riguardo questo punto:


1) quello del tutorial ufficiale, finalmente sono riuscito a farlo funzionare, ho scoperto l'errore del tutorial che mi ha fatto perdere un paio di nottate ( ]:)). Questo metodo ha però l'handicap di richiedere la rimozione del chip da Arduino e questa cosa alla lunga crea problemi, come ho imparato a mie spese, facendo partire per errore un C smd, montato sulla piastra, come un missile di Cape Canaveral  :smiley-eek:


Uhm, in pratica dici che riesci a scrivere gli sketch su un ATmega (privo di bootloader) su breadboard usando un Arduino Uno (o 2009) dal quale rimuovi l'ATmega??
Gianfranco

leo72


2) L'altro metodo, mi inchino alla grande intuizione di leo72

ah ah ah ah  XD XD

Quote

leo72, aspetto solo che mi dica se preferisce l'avatar (una volta si chiamava alias) o il suo nome e cognome, che conosco.... ;)


Beh, non ci vuole molto per trovarlo. Basta vedere la mia scheda  ;)
Cmq puoi fare come ti pare, cita pure il nome, non mi vergogno mica  :D

Michele Menniti


Sono felicissimo di questi passi in avanti!! Il tuo lavoro poi merita una traduzione in inglese!!!

Grazie, ma a quella pensi tu, io conosco: okay, hello, hi, black & white (anche se è da qualche anno che non è cosa  :*), money (ma solo per sentito dire =(); quando sarà tutto finito ti mando il testo, alla restituzione rimpagino tutto, sarebbe davvero fantastico.

Quote

Riguardo questo punto:

1) quello del tutorial ufficiale, finalmente sono riuscito a farlo funzionare, ho scoperto l'errore del tutorial che mi ha fatto perdere un paio di nottate ( ]:)). Questo metodo ha però l'handicap di richiedere la rimozione del chip da Arduino e questa cosa alla lunga crea problemi, come ho imparato a mie spese, facendo partire per errore un C smd, montato sulla piastra, come un missile di Cape Canaveral  :smiley-eek:

Uhm, in pratica dici che riesci a scrivere gli sketch su un ATmega (privo di bootloader) su breadboard usando un Arduino Uno (o 2009) dal quale rimuovi l'ATmega??

No, io ho provato su chip con bootloader, ma secondo il ragionamento di leo72 si dovrebbe poter fare. Domattina sono libero ( XD XD XD), mi chiudo nel mio angolo, continuo a fare le foto e le prove, ho un chip vergine e faccio la prova. Prima delle 13 ti posto l'esito, promesso!
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

leo72

GLi Attiny li programmo con lo stesso metodo, e quelli che ho comprato non hanno il bootloader. Quindi se vale per loro dovrebbe valere anche per gli Atmega.

Michele Menniti



2) L'altro metodo, mi inchino alla grande intuizione di leo72

ah ah ah ah  XD XD

Quote

leo72, aspetto solo che mi dica se preferisce l'avatar (una volta si chiamava alias) o il suo nome e cognome, che conosco.... ;)


Beh, non ci vuole molto per trovarlo. Basta vedere la mia scheda  ;)
Cmq puoi fare come ti pare, cita pure il nome, non mi vergogno mica  :D


è per darti il giusto merito, tanto lavoriamo (si fa per dire, io mi diverto da matti, per "colpa" di Banzi perderò il lavoro, me ne f...., mi metto a vendere ATmega ai semafori $) $) :D) per la comunità, naturalmente inserirò anche il nome di GianfrancoPa per la release inglese (e se invece non la fa?  =( =()
Comunque complimenti davvero, oggi mi sono messo davanti la mia board millefori stand alone arduino-compatibile, con innestata su la scheda generatrice di bit in sequenza (realizzata grazie a astrobeed); prima, per cambiare sequenza  :smiley-roll-sweat: :smiley-roll-sweat: :smiley-roll-sweat:, oggi un click di mouse. Me la guardavo con la stessa espressione estasiata di  Schwarzenegger nel film "I due gemelli" (con Danny De Vito), dopo la "prima" notte.... :P
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

GianfrancoPa

Per la traduzione ci posso provare, ovviamente sarebbe piena di errori, per cui andrebbe letta e corretta... Intanto finisci, poi vediamo come fare!!
Gianfranco

Michele Menniti

OK, tra poco vado a fare le prove... Curiosità: ma se io carico solo lo sketch senza bootloader in un chip mi funziona lo stesso in stand alone? Come fa a partire il programma poi? E se non parte com'è che gestisci questi chip?
A più tardi
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

GianfrancoPa

il bootloader serve solo per caricare lo sketch senza un programmatore isp, ma per programmare il bootloader serve un programmatore isp o, ad esempio, un arduino che ne emula il funzionamento. Una volta che lo sketch è stato "bruciato" sull'Atmega questo viene eseguito indipendentemente dalla presenza, o meno, del bootloader
Gianfranco

Michele Menniti

Quote
Uhm, in pratica dici che riesci a scrivere gli sketch su un ATmega (privo di bootloader) su breadboard usando un Arduino Uno (o 2009) dal quale rimuovi l'ATmega??

NO, ho fatto le prove, ecco i primi risultati:
1 - la tecnica "seriale" (collegamento tx/rx/reset e Arduino senza chip) funziona solo se sulla bread c'è un chip con bootloader.
2 - la tecnica "ISP" (collegamento col "nostro" cavetto ISP tra 2 Arduino o tra Arduino e bread, con entrambi i chip a bordo) e le istruzioni di leo invece funziona! In questo momento (grazie alla tua dritta XD) la mia pcb stand alone ha a bordo un chip col solo sketch per pilotare una scheda su millefori che mi genera sequenze di bit, e lavora che è una meraviglia. Mo', se riesco a far ripartire sta mallitta fotocamera continuo a preparare il tutorial (ripeto, sto facendo ua piccola semplificazione ma devo essere sicuro dei risultati), intanto faccio le altre prove.
Promessa mantenuta.  $) $) $)
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Go Up