Go Down

Topic: programmare il 644 ... ma come???? (Read 27775 times) previous topic - next topic

Michele Menniti

Bene, con il vecchio bootloader di mighty sono riuscito finalmente a blinkare :D il 1284P, ma confermo la necessità del C da 100nF in serie al DTR dell'FT232RL ed inoltre ho dovuto comunque mettere una R da 220kohm in serie al tx del Convertitore, quindi sull'rx del micro. Con 120kohm dava segni di vita ma comunque dava un errore, sono saltato direttamente a 220kohm, tanto il valore esatto non ha molta importanza. E' importante che la tecnica funzioni, e questa manovra è la conferma che è come dice Astro, c'è un problema di bootloader; ora appena lui riuscirà a mantenere l'impegno e fornircene uno (o quantomeno le spiegazioni per modificare quello attuale) si dovrebbe riuscire tutti a programmare senza alcuna R o C, insomma con i pin tx/rx liberi, tutt'al più le classiche R da 1k in serie ai due segnali.
Anche questo BL è basato sull'optiboot, nella cartella ci sono anche le board Mighty, che però sono basate sul vecchio bootloader, si evince facilmente dai percorsi e dalla memoria riservata (2k); c'è anche la bobuino ma questa è basata sull'optiboot, infatti la memoria riservata, così come per la versione usata da me, è di 1k.
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

Ti contraddico  ;), non è basato sull'optiboot ma sul vecchio bootloader 2009.
C'è espressamente scritto nel sorgente:
Code: [Select]
based on stk500boot.c

Se guardi il sorgente del bootloader contenuto nella cartella /bootloader/atmega vedrai infatti che è sostanzialmente lo stesso con l'aggiunta del supporto per il 1284  ;)

leo72

L'ho voluto provare anch'io. Risultato: negativo.

Non riesco a caricare nessuno sketch, nonostante il bootloader risponda correttamente al reset (vedo il lampeggio del led).
Ho provato con:
1) C da 100 nF in serie sulla linea di reset (proveniente dal pin RST dell'Arduino)
2) senza detto C
3) con R da 175K in serie sul pin RX0 del micro
4) senza detta R
5) facendo diverse combinazioni fra C ed R


leo72

Errata corrige!
Avevo fatto una ca**ata io.
Mi ero dimenticato di mettere la velocità a 57600 nella nuova voce del file boards.txt.

Confermo quindi che con il bootloader standard riesco a programmare il chip. Aggiungo anche che riesco a farlo SENZA nessun componente aggiuntivo sulla linea che dal pin RX dell'Arduino va al pin RX0 del 1284P.
Quindi in sostanza usando solo la R da 1K che c'è in serie sulla scheda. Ottimo, ottimo.

astrobeed

Sono sempre molto di fretta, vi spiego brevemente dove sta il problema, i bootloader che state utilizzando sono pensati per il 328 e similari, il 644/1284 richiede delle tempistiche diverse, va usato il bootloader della Mega2560 (decisamente migliore del optiboot e si può trasferire a 240 kbps, in complenso occupa più spazio nella flash) con alcune piccole modifiche.
Spero domani di avere più tempo per entrare nei dettagli, io ho il bootloader sicuramente funzionante per il 1284, devo inserire anche il 644 e ricompilarlo per questo micro così ve lo passo già pronto all'uso, ovviamente anche il relativo sorgente.

leo72

Astro, grazie dell'intervento.
Il bootloader "mighy" è basato sul bootloader standard stk500 usato per le vecchie 10000/2009/Mega.
Con questo funziona correttamente senza ammennicoli sulle linee di trasmissione (almeno per me) però, come dici tu, la velocità è limitata a 57600.

Proverò a spippolare con il bootloader della mega (skt500v2)  XD

Michele Menniti

Grande Astro, così ci leviamo di torno tutte ste cartelle che non ne posso più, anche se credo che comunque il core dobbiamo mantenerlo no? così come il pins_Arduino.h, almeno io che ho la 1.0.1 no?
Va bene, al dunque mi darete le relative istruzioni in modo che si possa sintetizzare al minimo ogni aggiunta all'IDE. :)

@ Leo: il mio ragionamento si basava sul nome "optiboot_atmega1284p.hex" e sull'occupazione di memoria (1k), visto che certamente quello della 2009 se ne prende 1,5K e quindi 2k, però mi fido di ciò che dici, ci mancherebbe; ciò che dice Astro conferma i miei dubbi di sempre, sulle temporizzazioni del "dialogo" e ulteriore conferma è che comunque in ogni situazione il tuo 1284 si comporta meglio dei miei :~ Invece non capisco questa cosa della velocità, da sempre io non ho mai fatto caso a questo parametro, più che convinto che venisse bellamente ignorato ed anche in questo frangente ho usato la board di mighty con bootloader 16MHz e ora vedo che il parametro è 115200; poi tu stai parlando di "bootloader standard", ma ti stai riferendo alla versione presente nella cartella "standard"? perché io invece sto usando quello della cartella optiboot, così come previsto dalla board.
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

astrobeed


Grande Astro, così ci leviamo di torno tutte ste cartelle che non ne posso più, anche se credo che comunque il core dobbiamo mantenerlo no? così come il pins_Arduino.h, almeno io che ho la 1.0.1 no?
Va bene, al dunque mi darete le relative istruzioni in modo che si possa sintetizzare al minimo ogni aggiunta all'IDE. :)


Il core non ha nulla a che vedere con il Bootloader, sono due cose distinte, il primo entra in funzione subito dopo il reset e usa i parametri impostati al suo interno e non quelli scritti nel file boards.txt, non appena il bootloader termina il suo lavoro entra in gioco il discorso core che riguarda solo la compilazione dello sketch.

Michele Menniti

ok, quindi io ho le tre cartelle attuali: cores, variants e bootloaders, devo svuotare la sola bootloaders per metterci i file che fornirai tu, giusto?
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


@ Leo: il mio ragionamento si basava sul nome "optiboot_atmega1284p.hex" e sull'occupazione di memoria (1k), visto che certamente quello della 2009 se ne prende 1,5K e quindi 2k, però mi fido di ciò che dici, ci mancherebbe;

Beh, devi anche pensare che sull'Atmega1284 i tagli di memoria riservabili per il bootloader sono 1024/2048/4096/8192 (parlo di byte, non di word) mentre sull'Atmega328 sono 512/1024/2048/4096. Quindi anche con l'Optiboot sui 1284 meno di 1K non si può proteggere.

Quote

ciò che dice Astro conferma i miei dubbi di sempre, sulle temporizzazioni del "dialogo" e ulteriore conferma è che comunque in ogni situazione il tuo 1284 si comporta meglio dei miei :~ Invece non capisco questa cosa della velocità, da sempre io non ho mai fatto caso a questo parametro, più che convinto che venisse bellamente ignorato ed anche in questo frangente ho usato la board di mighty con bootloader 16MHz e ora vedo che il parametro è 115200; poi tu stai parlando di "bootloader standard", ma ti stai riferendo alla versione presente nella cartella "standard"? perché io invece sto usando quello della cartella optiboot, così come previsto dalla board.

Se apri il pacchetto mightyhome trovi dentro alla cartella /bootloaders 2 ulteriori cartelle: optiboot e standard.
In optiboot c'è il bootloader Optiboot 4.5 modificato da maniacbug, mentre in standard c'è il bootloader derivato da quello della vecchia 2009.
Se vedi bene nel file boards.txt contenuto nel pacchetto mightyhome, la scheda "Original Mighty" usa il bootloader "standard" mentre  sia la Mighty 1284 che la Bobduino usando il bootloader "optiboot".
Attento quindi a quello che hai usato.

astrobeed


devo svuotare la sola bootloaders per metterci i file che fornirai tu, giusto?


Yes.


Michele Menniti

#311
Jan 27, 2013, 07:35 pm Last Edit: Jan 27, 2013, 07:46 pm by Michele Menniti Reason: 1


devo svuotare la sola bootloaders per metterci i file che fornirai tu, giusto?

Yes.

optiboot, anzi Optimum!! :smiley-mr-green:

@ Leo: a me scappa da ridere a questo punto :D io ho usato la prima board del file "Mighty 1284p 16MHz using Optiboot" che lavora a 115200 e usa "optiboot_atmega1284p.hex" che si trova in "optiboot", quindi è confermato che ho fatto la prova con il bootloader derivato dall'optiboot, come pensavo, infatti la memoria impostata è 130048, quindi riserva 1k, i conti tornano se non per il fatto che in questo caso a me il 1284P funziona con la R da 220K. Allora prima di andarmene faccio al volo una prova con la "Original Mighty 1284p 16MHz", cambio il bl e vediamo che succede :smiley-sweat:

EDIT: prova fatta, ora posso usare la R da 120k, ergo lascerei il bl derivato dall'optiboot, visto che una R vale l'altra, mentre l'optiboot mi fa risparmiare 1k di flash.

Leo se proprio vuoi spippolare guardati la differenza tra questo optiboot e quello che stai usando tu, magari scovi il motivo per il quale a voi funziona ed a me no e magari risolvi pure. Aspettando Astro.......
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

tonid

Bene.....ho seguito questi ultimi post e pare proprio di essere arrivati,grazie alla collaborazione di astro,alla risoluzione dei problemi.
Purtroppo non posso essere di alcun aiuto in quanto questo genere di cose sono ancora un po troppo complicate per me,quindi attendo e seguo silenzioso.  :)

leo72


@ Leo: a me scappa da ridere a questo punto :D io ho usato la prima board del file "Mighty 1284p 16MHz using Optiboot" che lavora a 115200 e usa "optiboot_atmega1284p.hex" che si trova in "optiboot", quindi è confermato che ho fatto la prova con il bootloader derivato dall'optiboot, come pensavo, infatti la memoria impostata è 130048, quindi riserva 1k, i conti tornano se non per il fatto che in questo caso a me il 1284P funziona con la R da 220K. Allora prima di andarmene faccio al volo una prova con la "Original Mighty 1284p 16MHz", cambio il bl e vediamo che succede :smiley-sweat:

EDIT: prova fatta, ora posso usare la R da 120k, ergo lascerei il bl derivato dall'optiboot, visto che una R vale l'altra, mentre l'optiboot mi fa risparmiare 1k di flash.

Senz'altro il passaggio all'uso dell'Optiboot è stato giustificato dal fatto di dimezzare il consumo di Flash rispetto al bootloader standard.


Quote

Leo se proprio vuoi spippolare guardati la differenza tra questo optiboot e quello che stai usando tu, magari scovi il motivo per il quale a voi funziona ed a me no e magari risolvi pure. Aspettando Astro.......

Sono 2 bootloader completamente differenti. Anche il bootloader della Mega è diverso (anche se simile a quello "original mighty"), però questo occupa 4 kB di Flash... Boh... aspetto cos'ha elaborato astro e poi vediamo come si casca  ;)

Michele Menniti

Leo, ma io sto parlando delle differenze tra i due optiboot1284 di mighty: quello che stai usando tu attualmente e quello che mi hai linkato e che ho scaricato per le mie prove; in pratica il tuo optiboot dovrebbe essere la versione aggiornata del mio attuale, ecco perché ti consigliavo di guardare le differenze.
Non ti avrei chiesto un lavoro di confronto con quello della MEGA visto che Astro ha detto che lo fornirà lui funzionante sia per 644 che per 1284.  :)

@ tonid: al momento ciò che siamo arrivati a fare non è niente di più dell'altro giorno, visto che io ieri, su suggerimento di Leo, ho testato due versioni precedenti di bootloader per 1284: una basata sempre sull'optiboot e l'altra basata sul vecchio bl della 2009. Astro ci ha spiegato che le problematiche derivano da tempistiche differenti tra il 328 ed i 644/1284 e di conseguenza serve un bl derivante da quello della MEGA2560 e non da quello della UNO. Ci ha promesso che ne avrebbe ricompilato una sua versione sie per 644 che per 1284 e ciò risolverà tutti i nostri problemi e ci permetterà di lavorare senza R, C e quant'altro.

Siamo in dolce e trepida attesa...... :*
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