Ciao a tutti,
ho cercato in lungo e largo sui forum e ho trovato molte info ma mai una definitiva, o almeno non l'ho capita io!
Il problema è che non riesco a far funzionare il WatchDog sull'arduino mega... lo uso tranquillamente sull'Uno ma sul mega non funziona!
Ho provato anche a fare uno sketch semplicissimo di test e sull'Uno va e sul Mega non succede nulla, lo ignora proprio.
Giocando con la durata del delay nel loop posso far itnervenire il WD o meno... in pratica se il delay è superiore a 4000 l'Arduino mi si resetta. L'Uno si il Mega no!!! =(
Perchè?
Premetto che non ho un Arduino mega, domanda stupida: hai scelto la scheda corretta dal menù board? Dovresti controllare nel datasheet se ci sono delle differenze con l'atmega328p
Se non selezioni la board giusta non riesci a completare neanche la compilazione dello sketch!
Riguardo alle specifiche del WDT ho dato un'occhiata ai datasheet delle due CPU e a me sembra proprio identico!
Ho letto molti post in cui si parlava di un bug nel bootloader ma erano tutti di parecchio tempo fa... vorrei sapere ora, a Giugno 2012, come siamo messi...
Il bug di cui parli non dovrebbe riguardarti.
Se non ho capito male leggendo quelle segnalazioni, il watchdog partiva ma, a causa del fatto che nel codice del bootloader non veniva resettato il flag del reset con watchdog, il bootloader resettava poi la scheda all'infinito. Ma tu invece lamenti il problema che la tua scheda non si resetta neanche una volta, giusto?
In realtà non è che non fa nulla, lo sketch si pianta quando faccio il reset... mi ero sconfusionato! XD
Poi provo a fare reset con il pulsante e niente... il Serial Monitor rimane bianco. A questo punto credo che il Mega si resetti in continuo...
Che ne dite?
Ho provato anche con l'ultimissimo IDE 1.0.1 e fa uguale...
OK ma come faccio l'upload del bootloader?
Ho a disposizione vari "arduini" Uno da usare per programmare il Mega... ma non so come....
Ho cercato e googlato ma non ho trovano nulla di esauriente.
Qualche link?
Cerca la guida di Michele Menniti per la programmazione ISP. Carichi lo sketch ArduinoISP sull'UNO, poi colleghi la MEGA e fai la programmazione tramite IDE.
Trovata la guida, collegato il mio Uno al mio Mega, caricato lo sketch ArduinoISP sull'uno, impostato l'IDE su Mega, scelto dal menù Tools "Arduino as ISP" e poi cliccato dallo stesso sulla voce "Burn bootloader".
Lampeggiano per un paio di secondi e poi l'IDE mi restituisce il seguente errore:
avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.
Ma possibile che alla release 3 di Mega ancora ci sia sto problema?? E' uno scandalo!!!!
Ma che IDE usi?
Se hai la 1.0, lo sketch ArduinoISP di quella versione non funziona, devi usare lo sketch ArduinoISP2 che ho modificato io (lo trovi sul forum o sul mio sito, link in calce).
OK ora l'upload dello sketch va a buon fine... ma ricevo un errore quando provo a inviare il bootloader.
Ho un gran dubbio sui collegamenti, quindi ricapitolo un momento la mia situazione così magari chi ha un minuto di tempo può spiegarmi qualcosa in più:
Board programmatore: Arduino Uno R3
Board da programmare: Arduino Mega R3
IDE 1.0 (ho anche le altre versioni, consigliatemi voi...)
Ora ho visto che in testa allo sketch di Leo72 c'è una mappa dei pin diversa per Mega ma da quanto capisco dalla disposizione dei pin è se il Mega fa da programmatore. Il reset slave va sulla board di destinazione. Giusto?
L'errore che ricevo dopo qualche secondo che ho lanciato il "Burn Bootloader" è:
avrdude: stk500_getsync(): not in sync: resp=0x00