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

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

Michele.
Ti allego 2 bootloader per il 1284 derivati dall'Optiboot 4.5 di maniacbug.
Uno è compilato per avere un timeout di 2s, l'altro è compilato per avere in più anche la velocità ridotta a 57600.
Provali entrambi: per il primo basta sostituirlo a quello che già hai, mentre per il secondo devi anche modificare la relativa voce nel file boards.txt, per capire se il tuo è un problema di tempi e/o di velocità.

ok, gli allegati? :grin: (ti rispondo con calma, la tua esposizione merita molta attenzione ed attenta valutazione)

Uh.. .credevo di averli allegati. Eccoli.

optiboot_1284p.2secondi.zip (798 Bytes)

optiboot_1284p.2secondi57600bps.zip (798 Bytes)

sbaglio o abbiamo un Latitante :D?

Mi pare :wink:

Ti aggiorno su un paio di cose:

  1. il bootloader Atmegaboot che ti ho passato ha un bug. Nell'intento di implementare un timeout basato sul watchdog come l'Optiboot, mi sono dimenticato del reset del medesimo se parte la programmazione :sweat_smile: :sweat_smile:
    In allegato trovi la versione corretta. Essa resta in ascolto per 2 secondi (il bootloader originale attende 6/7 secondi) prima di avviare lo sketch se nulla arriva dalla seriale.
  2. devo correggere le prime analisi che avevo fatto su questo bootloader. Esso, senza R sulla linea che va al pin RX0, non funziona. Se lo sketch da programmare è breve (tipo un paio di KB), non ci sono problemi. Ma se si spedisce uno sketch che sia grande (bastano anche 15/16 KB) allora ad un certo punto la programmazione si ferma con un errore di verifica. Inserendo la R, invece, la programmazione termina senza problemi.

Ah, parlando sul forum internazionale, hanno precisato una cosa a cui io lì per lì non avevo dato peso. La R da sola in realtà non è... da sola. Crea comunque un filtro RC con l'impedenza interna del GPIO.
Inoltre qui:

Trovi delle analisi fatte all'oscilloscopio di cosa arriva sul pin RX0 con varie combinazioni di C, R e loro assenza.

ATmegaBOOT_1284P.hex (5.03 KB)

Ma se devo comunque mettere la R in serie perché mi fai provare questo bl? cosa dovrebbe avere di migliorato rispetto a quello che sto usando già?
Leggendo il link di Nick Gammon (il tipo che stiamo seguendo anche per il GLCD) ho visto che lui usa 2 C da 18pF invece dei 22pF, magari l'influenza sulla frequenza dell'oscillatore potrebbe in qualche modo.... lui non usa nulla e dice che programma :sweat_smile:

Giusto per curiosità, per capire quale sia più affidabile. Io mi rendo conto che fra l'Optiboot 4.5 e l'ultimo che ti ho passato, è questo quello che a me funziona meglio.

ok, però io finora ho testato solo il blink, quindi devo ripetere i test con sketch più grandi :sweat_smile:
Allora, attualmente io ho la cartella originale di maniacbug di giugno 2012, l'unica che mi abbia dato effetti positivi, mentre l'ultima versione a me non ha mai funzionato.
Domanda stupida, giusto per capire di che stiamo parlando: questi due che mi stai facendo testare (c'è anche l'altro a 57600) da dove derivano?