programmare il 644 ... ma come????

Ti contraddico ;), non è basato sull'optiboot ma sul vecchio bootloader 2009.
C'è espressamente scritto nel sorgente:

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 :wink:

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

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.

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.

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

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. :slight_smile:

@ 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.

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.

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?

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.

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.

Yes.

astrobeed:

[quote author=Michele Menniti link=topic=136740.msg1091351#msg1091351 date=1359309296]
devo svuotare la sola bootloaders per metterci i file che fornirai tu, giusto?

Yes.
[/quote]
optiboot, anzi Optimum!! :grin:

@ Leo: a me scappa da ridere a questo punto :smiley: 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 :sweat_smile:

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.......

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. :slight_smile:

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

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 :wink:

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. :slight_smile:

@ 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...... :*

Oggi pomeriggio dovrei riuscire a trovare il tempo per compilarvi la versione 644.

Ah, scusa. E' che ieri era una giornata in cui c'ero ma non troppo....
A memoria, di diverso nella 4.5 c'è solo la sistemazione del supporto al bootloader locato nella parte alta della memoria, generalmente non accessibile dal vecchio optiboot 4.4 che prevedeva la gestione di soli 64 kB di memoria, e la gestione del flag RAMPZ, che in pratica serve come 3° byte per comporre gli indirizzi oltre i 64 kB di Flash. Ma alla fine sono poche righe di codice sparse in qualche define. Altre diff macroscopiche non ne vedo.

Stamani ho fatto una serie intensiva di test. Lo scopo ultimo era quello di usare qualcosa che permettesse di usare il chip in standalone con un bootloader che per funzionare non richiedesse componenti elettronici extra sul pin RX.

Optiboot 4.5
Ho provato a compilare l'Optiboot 4.5 per lavorare a 57600 (con voce in boards.txt modificata) e non ha funzionato. avrdude si incocciava.
Ho provato anche a modificare il bootloader inserendo l'attivazione della pull-up interna su RX0 che vedo viene attivata dal bootloader standard, ma anche così nulla.
Risultato: con l'Optiboot 4.5 non sono riuscito in nessun caso a usarlo senza R/C/RC.

Bootloader "standard" Mighty (basato sul bootloader Atmega usato sulla 2009)
Il bootloader funziona a 57600. Se lo compilo a 115200 (modificando boards.txt) avrdude mi dice che c'è un errore di sincronismo.
Risultato: il bootloader standard funziona senza R/C/RC a patto di usare solo la velocità a 57600.

Prima di metter mano al bootloader della MEGA (bootloader stk500v2), attendo il lavoro di astro.
A dire il vero, già ci ho provato... Con la versione contenuta nell'IDE ho avuto problemi di incartamento del bootloader per via del watchdog (lampeggio perpetuo del led). La versione che si trova su Github che invece non soffre di questo problema non mi si compila (è vecchia di 1 anno). Entrambi soffrono di vetustà del codice, sorgenti cioè che con la nuova toolchain Atmel non riesco a compilare correttamente perché il codice è vecchio e non è aggioranto da un sacco di tempo (il bootloader distribuito con l'IDE sono 2 anni che non viene modificato).

Il bootloader standard a me funziona con la R da 120k, il bootloader "optiboot" (da ciò che mi pare di capire è comunque basato sulla 4.5) invece richiede una 220k; questi i risultati dei miei test su quanto ho scaricato ieri (mighty agg. giugno 2012)

Ma te quindi hai usato i bootloader intonsi, così com'erano, senza modifiche, giusto?
Quindi non hai fatto test per provare a velocità inferiori.

PS:
l'Optiboot di maniacbug è la versione 4.5.

Sì, ho scaricato quelle cartelle e le ho distribuite nella mia personale, ho usato il suo file boards.txt con opti a 115200 e standard a 57600