Debug per Arduino

astrobeed: A quanto pare c'è qualcuno che si è divertito a fare reverse engineering su debugwire con discreto successo.

Cioè è riuscito a dirare fuori il linguaggio macchina del firmware o cosa?

Qui c'è gia una dimostrazione di utilizzo di AVR Studio 4 per il debug di codice prodotto con l'IDE di Arduino http://arduino.cc/forum/index.php/topic,65968.msg483458.html#msg483458. Se serve, uso AVR Dragon per effettuare il debug e devo dire che mi ha aiutato a risolvere vari problemi con codice non funzionante.

@MauroTec:

Nota dal datasheet: Se si abilita il fuse DWEN per abilitare il debug sul pin reset, il micro consumerà di più rispetto al DWEN diabilitato, quindi terminato il debug conviene impostare il fuse DWEN ad 1.

Il fuse DWEN [u]DEVE[/u] essere disabilitato (cosa che si può fare con AVR Studio) al termine del debug, altrimenti il microproc. non esegue più nulla anche dopo un reset.

QuercusPetraea: Qui c'è gia una dimostrazione di utilizzo di AVR Studio 4 per il debug di codice prodotto con l'IDE di Arduino http://arduino.cc/forum/index.php/topic,65968.msg483458.html#msg483458. Se serve, uso AVR Dragon per effettuare il debug e devo dire che mi ha aiutato a risolvere vari problemi con codice non funzionante.

Sì che serve XD XD XD! In che modo puoi aiutarmi? Il Dragon mi arriva settimana prossima e vorrei subito cimentarmi con questa cosa, hai materiale da fornirmi su cui studiare o, meglio (io sono molto più hw che sw :blush:) un esempio su cui lavorare per comprendere i principi? Insomma una volta che imparo a stare in piedi di sicuro poi inizierò a muovere i primi passi da solo :sweat_smile:. Te ne sarei davvero molto grato XD

Allora, mi hanno appena consegnato l'AVR Dragon, ho scaricato questi file: AVRStudio5-part-pack-AVR_XMEGA_AU-5.0.240.exe as5installer-5.0.1163-full.exe bsdl.zip megaAVR_BSDL.zip as5installer-5.0.1160-release_note.pdf releasenote-AVR_XMEGA_AU-5.0.240.htm ma non so se e a cosa mi servono, mai maneggiato un aggeggio del genere, ho bisogno di molte dritte, meglio ancora di una guida passo-passo (meglio ancora se in italiano, altrimenti comunque mi arrangio, meglio che niente!!!).

Ho scaricato anche il pdf e l'articolo linkati da QuercusPetraea, ma mi mancano le basi essenziali, cioè cosa installare, come collegare il Dragon all'Arduino (questo mi pare sia spiegato nel link in inglese), come fare le prime prove magari in locale, in quelle foto vedo uno zoccolo ZIF saldato direttamente sul Dragon, insomma HELP :astonished:

Credo che saldino lo zoccolo ZIF DIP40 per evitare di rovinare i classici zoccolini.
Tipo qui:
http://harleyhacking.blogspot.com/2009/11/avr-dragon-tamed.html

Sì certo, volevo capire se mettendo questo zoccolo sulla board posso lavorare direttamente sul micro, penso proprio di sì, ma non posso partire così, prima di rassegnarmi a cavarmela da solo (molti mesi di studio) spero di avere suggerite le prime basi di partenza.

menniti: Allora, mi hanno appena consegnato l'AVR Dragon, ho scaricato questi file: AVRStudio5-part-pack-AVR_XMEGA_AU-5.0.240.exe as5installer-5.0.1163-full.exe bsdl.zip megaAVR_BSDL.zip as5installer-5.0.1160-release_note.pdf releasenote-AVR_XMEGA_AU-5.0.240.htm ma non so se e a cosa mi servono, mai maneggiato un aggeggio del genere, ho bisogno di molte dritte, meglio ancora di una guida passo-passo (meglio ancora se in italiano, altrimenti comunque mi arrangio, meglio che niente!!!).

Ho scaricato anche il pdf e l'articolo linkati da QuercusPetraea, ma mi mancano le basi essenziali, cioè cosa installare, come collegare il Dragon all'Arduino (questo mi pare sia spiegato nel link in inglese), come fare le prime prove magari in locale, in quelle foto vedo uno zoccolo ZIF saldato direttamente sul Dragon, insomma HELP :astonished:

Beh? Mi avete abbandonato e poi volete i premi da Massimo Banzi? :disappointed_relieved: Ho scaricato AVR Studio 4 perché se non erro Astrobeed mi diceva di stare alla larga dalla 5, ma anche lui ora latita =( Ho cercato in rete, alla fine ho capito che il manuale del Dragon dovrebbe trovarsi all'interno dell'help di AVR Studio, ma nessuno riesce a trovare qualcosa da cui partire proprio al minimo?

Ho cercato in rete, alla fine ho capito che il manuale del Dragon dovrebbe trovarsi all'interno dell'help di AVR Studio, ma nessuno riesce a trovare qualcosa da cui partire proprio al minimo?

Si confermo nella versione 4.xx che ho io c'è il manuale dell'AvrDragon in formato chm, solo che io posso leggere il manuale ma non posso usare avr studio perchè su linux. Eppoi qua l'esperto è Astrobeed.

Ciao.

MauroTec:

Ho cercato in rete, alla fine ho capito che il manuale del Dragon dovrebbe trovarsi all'interno dell'help di AVR Studio, ma nessuno riesce a trovare qualcosa da cui partire proprio al minimo?

Si confermo nella versione 4.xx che ho io c'è il manuale dell'AvrDragon in formato chm, solo che io posso leggere il manuale ma non posso usare avr studio perchè su linux. Eppoi qua l'esperto è Astrobeed.

Ciao.

OK, grazie della conferma, solo non capisco, AVR Studio è solo per Windows? Non capisco nemmeno quell'"Eppoi...", forse interpreto male, ma se volessi aiuto solo da Lui, che comunque spero mi dia, gli scriverei in privato. Tu hai smanettato con un programmatore, giusto? le manovre, anche se gli apparecchi sono diversi, dovrebbero esser uguali, non hai scritto qualcosa che mi possa tornare utile? Grazie.

Si scusa “e poi” mi è venuto scritto male, lui ha scritto tempo fa di avere l’STK600, un sistema di sviluppo molto simile all’avrdragon.
Lui ha windows e probabilmente anche il dragon, e ha già fatto debug di quel tipo, insomma chi meglio di lui può dire come iniziare.

Che pirla ero convinto che si dovessero collegare tutti i pin del micro all’avrdragon, invece basta il connettore ICSPI quello a sei poli, ma nella doc lo mostra benissimo. Quello che ho scritto io è in merito al AVRISP mkii ed è http://it.emcelettronica.com/MaurilioPizzurro, ma dubito ti serva a qualcosa.

Scusa hai installato AVR Studio, apri la doc del dragon e comincia a leggere, quello che non capisci lo posti che vediamo che dice.

Ciao.

Non mi riferivo alla forma (eppoi è di uso corrente, non è un errore :)) ma sembrava quasi che volessi dire "inutile prlare tanto c'è....", comunque argomento chiuso. Non ho ancora installato AVR4, lo farò appena possibile, tra domani e venerdì, poi chiederò aiuto. Avevo già visto il tuo link, lo avei postato nel tuo primo intervento, in effetti non ho trovato ciò che cercavo altrimenti ti avrei chiesto esplicitamente. Questa cosa dell'ISP è chiara, è una delle poche certezze che ho, avendo ormai usato quel connettore centinaia di volte, è tutto il resto che non so :grin: Grazie. XD

Dal manuale di avrdragon:
AVR Dragon is powered by the USB cable, and can also source an external target with up to 300mA (from the VCC connector, 5V) when programming or debugging. For more information on technical details, please read the AVR Dragon Requirements section. If the target is already powered by an external power source, the AVR Dragon will adapt and level convert all signals between the target and the AVR Dragon.

Note: If the target board is powered by external power source, no connection should be made between the VCC connector and the external board.

Avrdragon è alimentato dalla usb, e può alimentare una scheda esterna (target board) fino a 300mA (dal connettore VCC 5V) quando programmi o fai debug. Se la target board è già alimentata Avr dragon si adatterà alla tensione della target board. Nota che se la target board è già alimentata non si deve connettere l’alimentazione fornita da avr dragon sul connettore VCC.

Si quelle indicazioni nel link ti possono tornare utile, sembra quasi che avr dragon abbia internamente un circuito simile ad AVRISP mkii. Questo lo deduco dalla descrizione, non ho il circuito.

Ciao.

Questa cosa l'avevo letta già da qualche parte, ho trovato degli articoli introduttivi utili; infatti ho già sperimentato che il pin predisposto per i 5V sul connettore ISP, in realtà non è collegato, quindi puoi collegare (p.es.) Arduino all'USB e lavoreranno ognuno con propria alimentazione, oppure prendi il VCC del Dragon e lo mandi sul 5V di Arduino e alimenti anch'esso tramite Dragon. Speravo in una bella guida come la mia :grin:, sono rassegnato al fatto che non esista, farò le prime prove collegando con l'ISP un chip in stand-alone e vediamo che ne esce, inizio a tentare di caricare il bootloader e uno sketch, poi mi cimento col debug. :cold_sweat:

menniti: Speravo in una bella guida come la mia :grin:, sono rassegnato al fatto che non esista,

La guida c'è, la trovi nel sistema di Help di AvrStudio, pensa che ci sono pure le immagini :grin:

astrobeed:

menniti: Speravo in una bella guida come la mia :grin:, sono rassegnato al fatto che non esista,

La guida c'è, la trovi nel sistema di Help di AvrStudio, pensa che ci sono pure le immagini :grin:

:blush: domani installo, estrapolo, stampo, "leggo" ma, soprattutto, guardo le figure :grin:

domani installo, estrapolo, stampo, "leggo" ma, soprattutto, guardo le figure

mmm... ma questo perchè te lo ha detto Astro? Astro come fai, hai un potere di convincimento che io non avrò mai.

Questa cosa l'avevo letta già da qualche parte, ho trovato degli articoli introduttivi utili; infatti ho già sperimentato che il pin predisposto per i 5V sul connettore ISP, in realtà non è collegato, quindi puoi collegare (p.es.) Arduino all'USB e lavoreranno ognuno con propria alimentazione, oppure prendi il VCC del Dragon e lo mandi sul 5V di Arduino e alimenti anch'esso tramite Dragon.

Non hai letto l'articolo del link, perchè se lo avessi letto avresti dedotto che il pin VCC è connesso, non fornisce alimentazione di potenza ma è connesso altrimenti l'AVRISP non si accorgerebbe di essere o meno connesso alla target board, e quando se ne accorge il led tricolore da verde diventa rosso.

Chiedo conferma ad Astro anche io su questa deduzione di modo che confermandola te ne possa convincere. Chissa se è connesso anche nel avr dragon?

La guida c'è, la trovi nel sistema di Help di AvrStudio, pensa che ci sono pure le immagini

Si ma c'è di bisogno di una in italiano se avessi un dragon anche io la farei (forse).

Ciao.

PS: mannagia non so scrivere con le faccine mi richiede troppo tempo per sceglierle e mi dimentico cosa volevo scrivere.

Se è per questo mi avevi convinto anche tu, non ti pare? ;) Quando ho parlato di "sperimentare" il Vcc in realtà mi riferivo solo al fatto che ho appurato che il pin ISP NON è collegato direttamente al VCC (banale misura col tester, il Dragon non l'ho nemmeno accceso finora); comunque a prove fatte ne saprò certamente di più, misura qui, misura lì, alla fine qualcosa esce :grin: Non so perché hai tutta questa necessità del conforto di Astrobeed, come se io non volessi credere a nulla di ciò che dici; ho semplicemente riferito di aver fatto una prova, nella lettura di ciò che ho letto evidentemente mi è sfuggito qualcosa, sai bene che con l'inglese faccio a cazzotti (e perdo regolarmente :blush:), ho misurato col tester ciò che credevo di aver capito, e siccome non c'era continuità tra i due pin, ho pensato di aver ragione, tutto qui. A me lo dici che avrei bisogno di una guida in Italiano??? ECCOME, DICO IO, infatti già pregusto di leggere quella ufficiale tipo giornaletto hard, guardano solo le figure :blush: Mauro, ogni info che mi dai te la benedico, giuro, così chiudiamo questa cosa; devo portare a termine questa operazione, Astrobeed con me è stato sempre prodigo di informazioni ed io approfitto :grin:, ma non credo di aver mai avuto la puzza sotto il naso, peraltro non posso permettermelo, ok? XD

Premesso che non ho l'AVR Dragon, il mio parco tool per AVR è composto da un AVRISP MKII, un IJTAGICE MKII e un STK600, dal manuale risulta che può alimentare il circuito target fino ad un massimo di 300 mA prelevando la tensione dall'apposito connettore.

menniti: in realtà mi riferivo solo al fatto che ho appurato che il pin ISP NON è collegato direttamente al VCC (banale misura col tester,

Non è collegato direttamente perché da quel pin come prima cosa misura l'eventuale tensione presente sulla scheda collegata, nel pannello di controllo del Dragon hai un tab che ti fa vedere la tensione eventualmente presente.

astrobeed: Premesso che non ho l'AVR Dragon, il mio parco tool per AVR è composto da un AVRISP MKII, un IJTAGICE MKII e un STK600, dal manuale risulta che può alimentare il circuito target fino ad un massimo di 300 mA prelevando la tensione dall'apposito connettore.

Era quello che avevo capito io, cioè il pin che sull'ISP di Arduino è collegato a +5V, lato Dragon NON lo è, io pensavo che fosse proprio non connesso, da quanto dice Mauro invece sembrerebbe fornire comunque una tensione; io penso che sia come dice lui ma solo nel senso che quel pin sarà usato come "sensore" per verificare che il target sia alimentato di suo.

sto pubblicando in sovrapposizione, quindi prima analizza e poi eventualmente commuta?