1284p piantato?

Buona sera a tutti.

Ho una board con su un atmega1284p , 16mhz clock programmabile solo via icsp.
Dopo un paio di giorni di programmazioni corrette, da stasera l'avrdude mi risponde questo simpaticissimo e criptico messaggio

C:\avrdude -c usbasp -p atmega1284p -P usb -e -F

avrdude: error: programm enable: target doesn't answer. 1
avrdude: initialization failed, rc=-1
avrdude: AVR device initialized and ready to accept instructions
avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
avrdude: Expected signature for ATMEGA1284P is 1E 97 05

avrdude done.  Thank you.

Premere un tasto per continuare . . .

Come potete notare il comando è per la cancellazione del chip,ma fa lo stesso anche per programmazione e scrittura fuse...
Lo butto o posso tentare qualcos'altro?

Hai stuzzicato i fuse per caso?

Il messaggio veramente non è tanto criptico....
programm enable: target doesn't answer = non c'è dialogo tra il programmatore ed il micro, il resto è consequenziale.
possibili situazioni che portano a ciò:
1 - collegamenti ISP difettosi
2 - errata programmazione dei micro (combinazione fuse non riconosciuta, chip bricked, sbloccabile solo con l'HV riprogrammando i fuse)
3 - disabilitazione del RESET o della programmazione SPI mediante opportuno fuse (sbloccabile solo con l'HV mediante riprogrammazione fuse preceduta da chip erase se si sono bloccati anche i BLB)
4 - cancellazione dei tre byte della signature (succede... superabile col parametro -F, ma vedo che lo usi già)
5 - chip guasto, ma è una ipotesi remota
6 - programmatore difettoso (test incrociati con altro micro o con Arduino come programmatore ISP)
Piuttosto è strana la riga di comando che usi (dichiarazione della porta USB e mancanza dei BAUD), ma immagino che finora ti abbia sempre funzionato....
Altro non mi viene in mente.

Ciao bud, e ciao michele, intanto grazie.

Penso che quasi sicuramente è successo qualcosa coi fuse, anche se non riesco a capire esattamente il perchè sia successo.
Come precedentemente specificato la MCU è stata programmata più volte, quindi escluderei i punti 1 e 6 (il programmatore programma ancora correttamente altri chip).

Ora vorrei un attimo capire se posso tentare di riprogrammarlo in HV direttamente su scheda o devo per forza smontarlo ... è smd :frowning:
Ma soprattutto devo capire se riesco a fare un programmatore HV specifico minimale con quello che ho in giro per casa...
Fonti?

niki77:
Ora vorrei un attimo capire se posso tentare di riprogrammarlo in HV direttamente su scheda o devo per forza smontarlo ... è smd :frowning:
Ma soprattutto devo capire se riesco a fare un programmatore HV specifico minimale con quello che ho in giro per casa...

Devi smontarlo per forza e ti costa meno sostituire il micro.
Un tentativo che puoi fare è scollegare il quarzo e fornire un clock esterno di almeno 500 kHz al micro tramite il pin XTAL1, in questo modo puoi ovviare al problema setup sbagliato dei fuse clock che è una delle cause principali di brick, se la cosa ha successo metti a posto i fuse e rimonta il quarzo.

Grazie Astro , in cuor mio purtroppo supponevo che lo dovessi smontare per forza.... =(

Al limite a smontarlo ci posso provare, infondo è tqfp , ho dissaldato di peggio!

Si lo sò che per 6 euro di micro mi conviene cambiarlo, ma visto che sto facendo esperimenti, già se mi capita un altra volta non lo sò se è più conveniente!

Ho trovato in rete questo PROGRAMMATORE HV ARDUINO BASED

Dite che vale la pena tentare di attaccarlo alla meno peggio e vedere se riesce a reimpostare i fuse?
Ovviamente lo sketch andrà modificato in modo tale da impostare i fuse correttamente per il mio micro.

Purtroppo la programmazione HV è estremamente invasiva, richiede il collegamento di ben 18 pin, che devono essere sgombri da segnali, oltre alla normale alimentazione, certamente non puoi farla sul circuito e temo che dovrai realizzare un PCB adattattore specifico.
Il mio Programmatore HV a giorni sarà realizzabile in quanto finalmente sta per partire il service dei PCB originali. Se vuoi muoverti in modo più semplice basta che cerchi il sito della Mightyohm, lì trovi lo schema elettrico applicato (salvo nuove versioni...) al mega328P; ti basta studiare le linee di collegamento e confrontarle con il datasheet del 1284, per vedere come devi usarle sul tuo micro; non è difficile, ci vuole solo un po' di pazienza; se vuoi risparmiarti la "fatica" di questa fase, vai sul sito di Elettronica In, sezione relativa alla Rivista 165 di Aprile 2012 e scaricati l'intero articolo della mia prima puntata, lì c'è lo schema elettrico e trovi le connessioni specifiche per il 1284.
Concordo con Astro sul fatto che costi meno sostituirlo, ma magari il gusto della sperimentazione.....
Invece ignoro questa cosa del quarzo da 500KHz; il solo fatto di collegare un segnale da 500kHz al pin XTAL1 rimette a posto i fuses in automatico o questa cosa permette di riprogrammarli? puoi spiegarla meglio?

In soldoni se per caso ha impostato il clock del micro ad un oscillatore esterno e.. l'oscillatore esterno non c'è, basta collegarcelo per poterlo riprogrammare temporaneamente all'oscillatore interno. Io in genere utilizzavo proprio un cristallo oscillatore da 8Mhz (senza condensatori) coi piedini piegati per collegarlo ai due pin adiacenti ma questa è un altra storia :smiley:

Non un quarzo da 500 kHz, ma un segnale di clock da almeno 500 kHz, ovvero un'onda quadra con ampiezza di 5V, o 3.3V a seconda della tensione di alimentazione del micro, che va collegato al pin XTAL1.
Con questo "trucco" fornisci un clock al micro se per errore sono stati settati i fuse per il clock esterno, nel caso di setup come RC il problema non esiste, in questo modo il micro funziona ed è possibile settare i fuse nel corretto modo.
Da notare che alcuni programmatori hardware possono utilizzare la connessione ISP a 10 pin dove su uno di questi è disponibile proprio un clock ausiliario per ovviare a questo tipo di problemi.

flz, mi pare che tu non abbia afferrato il concetto di Astro:

Un tentativo che puoi fare è scollegare il quarzo e fornire un clock esterno di almeno 500 kHz

, non esiste la possibilità di far lavorare il micro a frequenze maggiori di 8MHz senza quarzo o oscillatore esterno. Ma ora che leggo meglio mi pare che tu abbia definito correttamente oscillatore esterno in contrapposizione al quarzo, quindi tutto chiaro.

EDIT: Astro, mi sono corretto da solo nella frase successiva, per me la cosa era chiara, ho sbagliato a scrivere :slight_smile:

Ritengo opportuno specificare che non sto seguendo la strada del clock esterno perchè sono più per l'ipotesi che il problema non sia tanto il clock (ho un quarzo esterno a 16mhz montanto di default) ma la disattivazione della programmazione via SPI.
L'idea mia era di prendere il circuito in oggetto del link postato sopra ed attaccarci direttamente il mio 1284p e dargli na bottarella (nessun adattatore, salderei dei microfili)
Se riesco a recuperarlo riprogrammando i fuse bene, altrimenti lo butto.

niki77:

C:\avrdude -c usbasp -p atmega1284p -P usb -e -F

Prova specificando una velocità di comunicazione, tipo "-b 19200" come si fa con l'ArduinoISP. Magari abbassando il baudrate riesci a risolvere.

PS:
spero che il parametro "-F" tu lo abbia usato solo in questo caso. Non va mai usato normalmente perché in caso di una comunicazione imperfetta (e può capitare, chi ha programmato centinaia di chip può confermartelo) forzi la scrittura provocando spesso danni.

Allora la strada unica è quella della programmazione HV, la parte più fastidiosa sono i collegamenti, per quelli fai riferimento al mio articolo, il software di mightyohm dovrebbe essere totalemnte compatibile, io i primi esperimenti li ho fatti con quel firmware, poi l'ho stravolto perché ho creato uno stand-alone ed aggiunto tutti i micro ATMEL PDIP, ma i segnali sono obbligati, ti basta scegliere ATMEGA328P dal menu per attivare la programmazione parallela compatibile col 1284 e sei a posto, ma il micro lo devi certamente togliere dal circuito, o comunque devi isolare tutte le piste, magari un bel tagli netto e poi le ricongiungi :slight_smile:

Leo: da quando intervieni senza leggere i post precedenti? :stuck_out_tongue: (leggi dopo il punto 6 del mio primo post)

Non avevo letto bene :sweat_smile:
Per il discorso "porta" a seconda dei programmatori si può usare una sintassi diversa per specificare la porta a cui sono attaccati. Non so l'usbasp se accetta anche "usb" al posto del percorso esatto.

Confermo che usbasp accetta usb al posto degli altri parametri

Col TQFP se ha briccato è praticamente spacciato, dovrebbe dissaldarlo/riprogrammarlo/risaldarlo, questo è proprio il punto debole degli AVR, per sperimentare è sempre meglio andare di DIP ]:smiley:

Io avevo provato a costruire il Mightyohm su.. breadboard, guarda che macello era venuto

Mancano delle connessioni nella foto ed avevo il micro in DIP, ha funzionato ma ai successivi micro briccati ho comprato il Dragon :smiley:
Non ne vale la pena perdere così tanto tempo per sbriccare un mico.. se te sei in TQFP e vuoi saldare/dissaldare mi raccomando dotati di un programmatore HV perlomeno per riprogrammare il micro e non provare su breadboard

Ciao

Grazie dei consigli,

comunque la foto è venuta veramente male, talmente male che non si vede :grin:

Appena ho tempo lo dissaldo e provo a riprogrammarlo hv saldando dei fili, come ho detto, se riparte bene, altrimenti CICCIA!

Ma sulle linee ISP (MOSI/MISO/SCK/RST) hai collegato altro? Non è che forse c'è qualcosa che dà noia ai segnali? Magari finora ti era andata bene.. :sweat_smile:

No, purtroppo non ci sta altro collegato, o meglio c'era ma poi quando ho visto che dava problemi ho ridotto tutto al minimo indispensabile per cercare di riprendere il micro, ho lasciato solo il quarzo il reset e l'icsp.

Ripeto, è successo tutto a seguito di una scrittura fallita, molto probabilmente proprio dei fuse, però non sò dirlo con certezza.
Stasera gli dò una asciugatina ai capelli :grin:

Chip asportato senza problemi.
Ora devo provare a sbrinarlo in hv.
Ho reperito lo schema di collegamento di un 328p, se rispetto il collegamento dei pin (non tramite numero ma tramite porta,numero, es portb 4 su portb 4 )posso utilizzare lo stesso o devo trovarmi quello specifica per il 1284p ?

Niki, a memoria ricordo che le porte fossero diverse, io certamente me le sono dovute studiare sul datasheet; ti avevo consigliato di scaricarti (è gratis!) il mio articolo dal sito Internet, lì hai tutti gli schemi di collegamento per tutti i tipi di micro in package PDIP; nel tuo caso fai corrispondere quelli del 1284 pdip all'smd.
L'invito vale per tutti; la cosa non è ordinaria, ma straordinaria; nasce dal fatto che l'impaginatore, ricopiando il mio schema Eagle (loro usano un programma tutto loro che non è in grado di importare i file Eagle), fece un mare di casini sulla Rivista, purtroppo non mi mandarono la bozza definitiva che chiedevo da 10 giorni e successe il bordello, per porre rimedio decisero di rendere libera l'intera puntata in forma pdf scaricabile, quindi approfittate, quello schema mi è costato mesi di studio e fatica, a maggior ragione perché ho difficoltà con l'inglese e non sono certo un elettronico.
Se invece ti vuoi divertire allora non insisto :slight_smile: