Debug per Arduino

Ma sapete per me avere la certezza che un pin è collegato qui o li richiede lo schema elettrico. Io faccio delle supposizioni logiche basate sulla mia conoscenza. Mi sono chiesto come funziona AVRISP mkii e mi sono risposto così: Dunque se lo dovessi fare io userei due micro. Uno è quello collegato al connettore ISP tranne che per il pin VCC, perchè il VCC va ad un ingresso analogico del primo micro. Il primo micro riceve la tensione proveniente dalla target board ed accende l'alimentatore a commutazione (SMPS) che lavora in feedback analogico, questo serve a regolare la tensione di uscita dell'alimentatore SPMS che alimenta il secondo chip con una tensione compatibile con la quale è alimentata la target board. Mi rimane solo da risolvere il problema di interfacciamento tra i due micro in quanto potrebbero lavorare a tensione differente. Il primo micro deve per forza essere alimentato da usb altrimenti non verrebbe riconosciuto dal sistema operativo.

Anche per questo chiedo conferma ad Astro, magari lui si è fatto una idea simile alla mia e con i micro e sistemi di sviluppo ha una esperienza più lunga di quella mia.

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.

Ok, hai mai fatto debug con AVRISP mkii? Io voglio provare a fare qualcosa in linux. Quello che non capisco è che il protocollo lato usb del avrisp mkii è documentato, ma in questa non ho trovato indicazioni per entrare in modo debug ma solo in modo programmazione. Posso capire (sforzandomi) la necessità di chiudere il protocollo OneWire lato ISP, ma non la capisco perchè questa segretezza lato usb. Ho anche visionato il codice di avrdude più volte fino ad averne una certa familiarità, ma per il debug non ho trovato nulla.

Ciao.

MauroTec: Ok, hai mai fatto debug con AVRISP mkii?

L'AVRISP MKII è un programmatore, non è un debugger.

Alcuni consigli per l’uso di AVR Dragon.
E’ praticamente necessario saldare delle strip di contatti nelle forature dei connettori ISP, JTAG, HV_PROG, VCC ed EXPAND Header. Diversamente diventa impossibile collegare i segnali alla board in fase di debug (vedi immagine).
E’ utile saldare uno zoccolo ZIF che può ospitare processori DIP da 8 a 40 pin. Attraverso l’EXPAND Header (che fa capo allo zoccolo) si può collegare l’alimentazione ai pin corretti e/o i segnali dell’ l’HV_PROG Header per la programmazione High Voltage.
Il piedino 2 di ISP o il piedino 4 di JTAG deve essere connesso all’alimentazione della board in esame poichè AVR Dragon adegua i livelli logici al valore di alimentazione utilizzato (da 1,8 a 5,5 V)
Per il debug di codice prodotto dalla IDE di Arduino è necessario utilizzare AVR Studio 4. La versione 5 non importa i file .elf generati dal compiler.
Nota Dolente. :frowning: Non è possibile effettuare il debug su Arduino per via del condensatore posto sul reset che inibisce l’uso di DebugWire. O si elimina il condensatore, e si perde l’auto reset per la programmazione, o si taglia la pista che collega i due pad di UBOOT (vedi schema elettrico e layout di Arduino Uno) e si salda un jumper che consente di connettere/sconnettere il condensatore a seconda dell’uso. Io non l’ho ancora fatto perchè sono restio a ‘sacagnare’ una board funzionante, quindi mi limito all’uso di board personali.
In futuro, tempo permettendo (sempre troppo poco), posterò una recensione sull’uso di AVR Dragon con AVR Studio 4.

Ciao
QP

Ciao, il limite di Arduino è assolutamente relativo, basta avere una breadboard o meglio ancora una millefori predisposta all'uso ed il deug si fa lì. Nella foto non si vede che fine fa il filo rosso, il secondo grigio sembra finire sul + della breadboard, il rosso forse è prolungato da quello viola/bordeaux e va sul - della breadboard? Inoltre perché hai collegato il pin 21 al +? Normalmente non si usa nella programmazione ISP. Il problema delle strip non mi si pone, le metto e basta. Riguardo lo ZIF posso quindi mettere un 20+20 perché i pin fanno tutti capo all'expand, cioè intendi dire che i fori che ospitano loo zoccolo non finiscono da nessuna parte? Non ho sottomano la scheda, ora, ma mi pareva di aver visto delle piste. Comunque se è come dici, ogni volta che voglio fare la programmazione HV devo collegare i relativi segnali e alimentazioni semplicemente creando i ponti tra i due header? come se fosse una breadboard? Man mano che mi cimenterò con loo strumento scriverò tutte le esperienze fatte ma il mio obiettivo finale è il debug del firmware sul micro, riguardo a questa sola tematica non avresti da fornirmi materiale o maggiorni informazioni, quando dici "in futuro" non posso certo immaginare che parli di giorni, mentre io dovrei iniziare a darmi da fare subito. Grazie per quanto farai e a buon rendere :)

menniti: Ciao, il limite di Arduino è assolutamente relativo, basta avere una breadboard o meglio ancora una millefori predisposta all'uso ed il deug si fa lì. Nella foto non si vede che fine fa il filo rosso, il secondo grigio sembra finire sul + della breadboard, il rosso forse è prolungato da quello viola/bordeaux e va sul - della breadboard?

Il filo rosso connesso poi al filo blu va al reset del chip. In definitiva sono i normali collegamenti ISP che devono essere effettuati per programmare il fuse DWEN in fase di debug, anche se DebugWire si accontente del reset e massa.

menniti: Inoltre perché hai collegato il pin 21 al +? Normalmente non si usa nella programmazione ISP.

Il 21 è AREF. Non è necessario che sia collegato

menniti: Riguardo lo ZIF posso quindi mettere un 20+20 perché i pin fanno tutti capo all'expand, cioè intendi dire che i fori che ospitano loo zoccolo non finiscono da nessuna parte? Non ho sottomano la scheda, ora, ma mi pareva di aver visto delle piste.

I fori dello zoccoli finiscono proprio sull'expander. In questo modo puoi portare l'alimentazione ai vari micro (anche i tiny) ed eseguire le connessioni per la programmazione HV. Volendo puoi portare su una breadborad gli altri segnali, ma probabilmente è inutile. L'alloggio ZIF è utile se devi riprogrammare soprattutto i FUSE in HV.

menniti: Comunque se è come dici, ogni volta che voglio fare la programmazione HV devo collegare i relativi segnali e alimentazioni semplicemente creando i ponti tra i due header? come se fosse una breadboard?

Esatto!

menniti: Man mano che mi cimenterò con loo strumento scriverò tutte le esperienze fatte ma il mio obiettivo finale è il debug del firmware sul micro, riguardo a questa sola tematica non avresti da fornirmi materiale o maggiorni informazioni, quando dici "in futuro" non posso certo immaginare che parli di giorni, mentre io dovrei iniziare a darmi da fare subito.

Spero di trovare tempo questo fine settimana. Comunque l'help di AVR Studio, sotto la voce AVR Dragon User Guide, è esauriente ed in particolare la sezione Device Connection Sheet. Per il 328p fai riferimento al Devicesheet: SCKT3200D2.

Ciao QP

PS:Nella sezione Debugging - Connecting to target through the debugWIRE Interface ci sono le indicazioni per eseguire il debug con AVR Studio. In definitiva ho usato solo il materiale dell'help. Un sunto lo trovi qui http://support.atmel.no/knowledgebase/avrstudiohelp/mergedProjects/AVRDragon/AVRDragon_connecting_to_target_through_the_debugwire_interface.htm. Qui c'è un piccolo video dimostrativo http://youtu.be/UMH28N3l38c o qui http://youtu.be/4kHiD9IcUsU.

PERFETTISSIMO!!! grazie, ho difficoltà con l'inglese purtroppo, ma me la caverò, come sempre; certo se tu riuscissi a preparare qualcosa in Italiano te ne sarei immensamete grato. La programmazione HV è materia a me estremamente nota ormai; da un paio di mesi sto lavorando ad un progetto stand-alone che mi permette già di programmare i fuse di ben 7 famiglie atmel, avrò un centinaio di fili su breadboard e finché non realizzo il PCB ho il terrore a smantellarlo, non lo farei mai più questo lavoraccio, cose da squilibrati!!! Avere il Dragon funzionante è un elemento aggiuntivo, penso che realizzerò dei flat specifici per ogni famiglia, con tanto di connettorini, un bel pò di tempo all'inizio ma poi sarà una fesseria fare il collegamento per ogni chip. Grazie del supporto e soprattutto della pazienza che stai avendo già da ora XD

Come promesso ecco un breve tutorial sull’ uso di AVR Dragon con AVR Studio 4. Ho preferito farlo oggi perchè domani preferisco andare in baita in montagna e, dopo una cena preparata sulla stufa a legna ed annaffiata con birra di mia produzione, mi faccio una dormita fenomenale :sleeping: lontano da computer, reti e microprocessori. E per parafrasare Obama: YES WEEK-END. :sweat_smile:

Ciao
QP

Tutorial AVR Dragon.zip (932 KB)

QuercusPetraea: Come promesso ecco un breve tutorial sull' uso di AVR Dragon con AVR Studio 4. Ho preferito farlo oggi perchè domani preferisco andare in baita in montagna e, dopo una cena preparata sulla stufa a legna ed annaffiata con birra di mia produzione, mi faccio una dormita fenomenale :sleeping: lontano da computer, reti e microprocessori. E per parafrasare Obama: YES WEEK-END. :sweat_smile:

Ciao QP

Giovanni, non ho parole, hai fatto un lavoro spettacolare, proprio ciò che mi serviva: iniziare con una Guida passo-passo. Non so come ringraziarti, certamente a buon rendere (nella vita non si sa mai ;)), per il momento mille benedizioni per il tempo che mi hai fatto risparmiare e YES, GOOD WEEK-END! GRAZIE!!!!XD