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

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?

Dalla cartella di maniacbug, bootloaders, cartella atmega.
Lì dentro c'è il sorgente di un bootloader elaborato dal codice dell'stk500v2, che è il bootloader originale da cui sono nati quello per la 2009 e la Mega.
Io l'ho preso, ci ho aggiunto il timeout basato sul watchdog, e l'ho ricompilato. stop.
Quindi come bootloader è in pratica più simile a quello della MEGA2560 come diceva Astro, e non ha nulla a che spartire con l'Optiboot.

ok :slight_smile:

Risultati delle prove odierne, ASPETTANDO ASTROBEED :smiley:

1 - i due bootloader di prova non vanno
2 - rimesso il precedente optiboot "originale" tutto ok
3 - il bootloader nuovo (quello che state usando voi) a me funziona solo sul 644P
4 - entrambi i bootloader (opti e standard) della precedente versione mi programmano il 1284P ma non il 644P perché non c'è un bootloader specifico e nemmeno la board (ovviamente evito di mettere mano per non aumentare la confusione).

Pomeriggio mi sono rientrati i due MCP2200, confermo le maggiori difficoltà di questo chip rispetto all'FT232RL, laddove l'FT non sbaglia un colpo, i due MCP ne sbagliano parecchi, arriverei a dire che non vanno... Sui due MCP2200 potrei ancora fare delle prove, p.es. eliminando del due R da 1k in serie a tx e rx e la r da 22k di pull-up sull'rx, ma mi piacerebbe avere il parere di Astro, e molto più mi piacerebbe avere il suo Bootloader per 644/1284. Il ritardo è molto strano, considerando che è uno che le promesse le mantiene sempre; forse ha replicato le nostre prove ed ha incontrato qualche difficoltà anche lui :sweat_smile:
domenica pomeriggio sono di nuovo qui, intanto oggi mi è arrivata la lampada di Aladino, spettacolare!, non vedo l'ora di provarla seriamente saldando il PCB che mi è appena arrivato, ma mi pare che sia davvero eccezionale. XD XD

A voi la parola....

  1. i bootloader che ti ho spedito io vanno solo su 1284, non l'ho compilato per 644. Ma l'intenzione era appunto quella di iniziare ad utilizzare il chip più "grosso"
  2. se ti serve un bootloader per il 644, nel mio package ce n'era uno basato sull'Optiboot 4.5. Bastava flasharlo direttamente dall'IDE
  3. non posso fare confronti fra MCP2200 e FT232
  4. che cos'è la lampada di Aladino??? è tipo la sfera di cristallo di Uwe? :stuck_out_tongue_closed_eyes:

leo72:

  1. i bootloader che ti ho spedito io vanno solo su 1284, non l'ho compilato per 644. Ma l'intenzione era appunto quella di iniziare ad utilizzare il chip più "grosso"

No, alla fine decido di aspettare una risposta definitiva di Astro, se lui decide di fornirmi un bootloader funzionante come si deve risolvo tutti i problemi, in caso contrario, ma "tanto per", ho il bl nuovo del 644 che mi funziona con la R, ed il bl vecchio del 1284 che mi funziona sempre con la R, anche se non ho fatto prove approfondite con sketch lunghi, ma detto questo all'occorrenza vado di ISP, ormai i piani sono cambiati....

  1. se ti serve un bootloader per il 644, nel mio package ce n'era uno basato sull'Optiboot 4.5. Bastava flasharlo direttamente dall'IDE

no, come spiegato sopra, sono a posto, anche se preferirei una versione funzionante al 100%

  1. non posso fare confronti fra MCP2200 e FT232

non ha importanza, con il 328 l'MCP2200 va una meraviglia, è giusto una mia curiosità, ma possso agire solo su tre R implicate nel collegamento, mi piacerebbe anche qui il parere di Astro il quale però, e giustamente direi, nel momento in cui addebita tutto al bootloader non vedrà alcun problema reale, e quindi non lo vedo nemmeno io :wink:

  1. che cos'è la lampada di Aladino??? è tipo la sfera di cristallo di Uwe? :stuck_out_tongue_closed_eyes:

sì, tipo, la sfera di Uwe gli fa vedere le cose invisibili, la mia lampada di Aladino mi fa vedere finalmente i componenti smd ed i relativi PCB, senza dover fare contorsioni con e senza occhiali. E' una belva con 64 LED messi attorno ad una lente che ingrandisce in modo eccellente e mi permette di lavorare con precisione su questi componenti che per la mia vista sono davvero piccoli. IN più ho preso una pedana a rotelle che, assieme ai bracci snodabili della lente mi permette di non avere intralci sul tavolo XD