Buonasera e tutti,
Seguendo il tutorial del Prof. Menniti sono riuscito a programmare un atmega1284P con l'IDE di Arduino.
Tutto funziona perfettamente ma ho un dubbio su una cosa......se durante l'esecuzione di un programma premo il bottone di reset, il micro si resetta ma il programma riparte dopo qualche secondo, cosa che non avveniva con l'atmega328P.
La mia domanda è....questo tempo di reset è normale????
Se si da cosa dipende questa differenza con atmega328P?????
Stai usando un bootloader oppure no?
Se non c'è bootloader, la partenza del programma è istantanea, mentre se c'è un bootloader parte prima il bootloader e poi in caso non ci sia in arrivo uno sketch sulla seriale, si avvia il programma.
Se usi l'Optiboot modificato per il 1284, l'avvio è comunque breve, nell'ordine del mezzo secondo, come avviene con il bootloader dell'Arduino (il tempo di fare i 3 flash sul led esterno).
Grazie per la risposta...
Nel micro è caricato il bootleader optiboot....ho caricato i file presi dal sito Arduino on ATmega1284P | maniacbug come indicato nel tutorial di Menniti.
Il reset dura circa 3 secondi....nulla che non comporti un non funzionamento del micro...la mia era solo una curiosità. Se poi c'è un motivo a tale ritardo provo a risolvere.
Prova con l'Optiboot 5.0b che supporta anche i 1284. Rispetto al bootloader STK500v2 che dovrebbe essere quello usato da Maniacbug ha un tempo di avvio molto corto. http://arduino.cc/forum/index.php/topic,64105.0.html
Grazie ancora per i suggerimenti...provo subito...Ho controllato e il tempo di reset è di circa 10 secondi al momento...
Non mi sembra normale....provo e faccio sapere
Ciao Davide, al di là del problema che lamenti, hai effettiva necessità di avere il bootloader sul micro? Come ti accennava anche Leo, se programmi via ISP direttamente lo sketch, puoi usare una board virtuale che ti metta a disposizione l'intera flash (anche se ne hai già tantissima), inoltre la partenza dopo il reset sarebbe istantanea.
Però un dubbio mi sorge, visto il mare di problemi che ho avuto io stesso con la programmazione seriale, mi confermi di aver seguito questa procedura?
1 - Caricamento del bootloader usando Arduino come Programmatore ISP
2 - Successivo caricamento dello schetch mediante il collegamento seriale (cioè tx/rx/reset) con Arduino senza micro a bordo o con un qualsiasi convertitore USB-Seriale.
Mi sorge un dubbio. Sei sicuro che il micro non lavori ad una frequenza diversa da quella per cui compili?
Cioè, non è che magari hai il bootloader a 16 Mhz caricato su un chip ad 1 MHz? Di fabbrica escono a questa velocità... Si spiegherebbe il boot lentissimo.
Mettendo un classico blink, il lampeggio è di 1 secondo?
davidino:
Il bootloader che hai linkato è per l'atmega328. Comunque l'ho provato e non va.
Il bootloader che ho linkato è per tutti i chip supportati, vedi note interne: Atmega32, Atmega328, Atmega2560, Atmega1284.
Se non è presente l'hex già pronto, non devi far altro che compilartelo.
Se vuoi, sul mio sito a questa pagina avevo messo un core di supporto ai 644/1284 completi di bootloader già compilati. Il core è per l'Arduino 1.0.1/1.0.2/1.0.3 ma a te interessa il bootloader precompilato. Scaricati il package per la 1.0.2 e 1.0.3, e prelevalo da lì dentro.
PS:
dimenticavo che è basato sull'Optiboot 4.5, non sul 5.0 che all'epoca non c'era ancora.
Salve a tutti...dopo qualche giorno ho rimesso mano al progetto.
Ho notato usando la comunicazione seriale che anche questa inizia a funzionare dopo 10 secondi (lo stesso tempo del reset) e ho letto del bug del micro.
Nel link che mi hai inviato leggo che serve un condensatore da 100 nF mentre nello schema ne è indicato uno 100pF. Quale è quello giusto?
davidino:
Salve a tutti...dopo qualche giorno ho rimesso mano al progetto.
Ho notato usando la comunicazione seriale che anche questa inizia a funzionare dopo 10 secondi (lo stesso tempo del reset) e ho letto del bug del micro.
Hai cambiato bootloader o continui ad usare quello del core che hai linkato?
Nel link che mi hai inviato leggo che serve un condensatore da 100 nF mentre nello schema ne è indicato uno 100pF. Quale è quello giusto?
Grazie mille...
Davide
100n
Comunque questo filtro RC non serve a tutti, alcuni hanno programmato il chip senza. Altri no. Altri neanche col filtro RC.
Sto utilizzando quello del core che ho linkato....in questo modo riesco a programmare il micro (ho solo il problema del tempo di reset...circa 10 secondi...uguale a quello di avvio della seriale...ma poi tutto funziona) mentre con quello che mi hai indicato no.
Pensavo che il mancato funzionamento con il bootloader che mi hai linkato fosse dovuto al bug del micro per cui volevo montare il filtro RC e riprovare. Ora mi procuro un condensatore da 100nF e faccio una prova....
Per il momento grazie delle risposte e dell'aiuto