Problema signature Atmega328P (0xFFFFFF)

Ciao a tutti voi,
possiedo due Atmega328P che penso siano bloccati, spiego meglio.

Ho acquistato l'AVR Dragon, ho effettuato il collegamento dei 21pin (modalità HV)

HV

Uso Microchip Studio per la programmazione, in alto seleziono Tools > Device Programming, mi si apre la schermata di programmazione e in alto seleziono tutto come da immagine allegata.

Appena clicco su "Read", mi appare il messaggio di errore che vedete...
Nonostante l'errore ho provato a settare i Fuses in

Extended 0xFF
High 0xD9
Low 0x62

...ma non riesco neppure a settare i fuses, nè i Lock bits.

Premetto che i due Atmega328P sono originali (acquistati su RSonline) e prima hanno sempre funzionato sul mio Arduino Uno R3.
Poi li ho collegati al mio AVR Dragon e ho provato a settare i Fuse per fare un po di test sulle protezioni e da quel momento non hanno piu funzionato.
So che con l'AVR Dragon è possibile eseguire il ripristino dei Fuses, ma io non sono riuscito.
Se ha procedura ad alta tensione HVPP permette agli Atmega328P di essere sbloccati, perchè il mio AVR Dragon non ci riesce?
I due microcontrollori sono da buttare via o posso recuperarli?

L'AVR Dragon va adattato alle varie MCU, che è in grado di gestire, facendo tutta una serie di ponticelli ... se non li fai tutti correttamente (specie per la programmazione HV) ovviamente fai solo danni.

Premesso questo metti i vari collegamenti che hai fatto e proviamo a guardarci ... :roll_eyes:

Guglielmo


e secondo te si dovrebbe capire ? :joy:

Metti i vari pin sotto forma di disegno o con i loro nomi, tipo ...

image

Guglielmo

:joy:
Ciao Guglielmo, nel 1° post avevo messo un link dello schema che hai postato
Avevo scritto "HV" linkandolo.
Comunque lo schema è proprio quello che hai messo pure tu

Il chip è inserito nel verso giusto vero? :grin:

Hai seguito la guida che ti allego ? AVR-Dragon user guide.pdf (1.7 MB)

Perché ricordo in passato di averlo usato e di non aver avuto problemi ... :roll_eyes:

Guglielmo

Si Guglielmo, pin n°1 nel primo foro dello zoccolo in basso (verso la levetta).
Ho eseguito i collegamenti correttamente, infatti attualmente su altri Atmega328P riesco a trasmettere i file .hex (creati dall'IDE di Arduino) e a modificare i fuse per applicare le protezioni ecc... Quindi i collegamenti vanno bene.

L'unica cosa che ricordo è di aver selezionato a "casaccio" alcuni fuse e di essermi ritrovato con questi 2 Atmega328P con signature 0xffffff

... beh, in quel modo il "brick" del chip è quasi certo ... quello che è strano è che nemmeno con la programmazione HV riesci più a resettarli al giusto valore ... :roll_eyes:

Guglielmo

Esatto...è proprio quello che non riesco a capire neppure io... :roll_eyes:

... ma se provi con un chip non "brickato", stessi collegamenti, stessa configurazione, ti funziona la programmazione HV?

Guglielmo

Si riesci a leggere, cancellare, programmare, verificare, settare i fuse regolarmente...

... allora, non capisco cosa sia successo, ma mi sa che ... quei due chip li puoi pure buttare :roll_eyes:

Guglielmo

P.S.:Se scopri il mistero aggiorna il thread che sono veramente curioso ...

Ci puoi contare... sono un curiosone e non mi arrendo a nulla, anche se briccato deve poter riuscire a far "resuscitare" l'AVR Dragon... in modalità HVPP.
Ho una curiosità però Guglielmo: ho letto in rete che l'AVR Dragon puo programmare in HVPP ma anche in HVSP :open_mouth:

Non è che magari la modalità da usare per sbriccarli è appunto la HVSP???
Sta di fatto però che schemi di collegamento HVSP per Atmega328P non ne ho mai trovati.

Link dove si accenna a questa tipologia di programmazione

HVPP dovrebbe essere parallel programming, mentre HVSP dovrebbe essere serial programming ... per i chip che hanno un numero di pin inferiori ai 28 (se ricordo bene).

In pratica uno usa la programmazione "parallela" su più pin, l'altro la programmazione "seriale", se ben ricordo, sui pin del ISP.

Per il ATmega328P si usa la programmazione parallela.

Guglielmo

P.S.: Se guardi nel manualetto di Atmel che avevo allegato forse qualche cosa trovi

Novità:

Avendo installato Microchip Studio 7, ho effettuato tramite finestra DOS l'aggiornamento che ovviamente è andato a buon fine...
Ho disconnesso il cavo USB, ho inserito uno dei due Atmega328P bloccati, ho connesso in cavo USB e ho fatto partire la finestra di controllo "Device programming".
Appena ho cliccato su "Read" sulla riga Signature mi è apparso "0x1E950F", ma appena ho cliccato sul bottone ERASE mi è apparso nuovamente lo stesso errore precedente e stessa signature precedente 0xffffff :roll_eyes:

Ho tolto l'Atmega328P e ho inserito l'altro (anche questo mi dava fino a ieri 0xffffff), clicco su Read e mi appare il valore di signature esatto cioè "0x1E950F" :face_with_hand_over_mouth:
Stavolta non ho cliccato su ERASE... ma ho soltanto cliccato sul bottone Fuses per vedere se leggeva i fuse e li legge, guarda l'allegato :thinking:

0xFD
0x5E
0xFF

Il valore di lockbit invece è 0xFF

Attualmente non ho fatto nessuna operazione, rimango in attesa di sapere quale mossa sia la piu idonea per poter "sbloccare" almeno questo Atmega328P...

Mah ... io proverei a metterci dentro i FUSE classici di Arduino UNO ...

EXT: 0xFD
HIGH: 0XDE
LOW: 0XFF

... e vedere come va ... :roll_eyes:

Guglielmo

Recuperato !!!!
Ho settato i Fuse come da te consigliato di default e adesso riesco anche ad effettuare l'ERASE e sembra funzionare correttamente.
Questo procedimento l'avevo anche prima di aggiornare il firmware di AVR Dragon ma non riuscivo a recuperarli...
A questo punto era un BUG del firmware... chissa... :crazy_face:

Adesso provo a sbloccare anche il primo Atmega328P e vediamo se riesco...

Se puo tornare utile per la causa del malfunzionamento... spiego che appena ho inserito i valori di default 0xFD, 0xDE, 0xFF e cliccato su "Program" mi è apparsa la finestra che vi allego.
Ho lo strano presentimento che il blocco sia causato dal fuse RSTDISBL.

Ricordo di aver selezionato/deselezionato manualmente il questo FUSE e da quel momento non sono piu riuscito a far funzionare i due Atmega.

E' possibile che io debba selezionare o deselezionare soltanto questo fuse manualmente per sbloccarlo e successivamente provvedere alla riprogrammazione?

Vi riporto anche le due finestre dei settaggi dei Fuse, sia di quello sbloccato, sia di quello bloccato


Ma con quei valore (HIGH: 0XDE = 1101 1110) NON viene disabilitato il Reset ...

... sono attivi solo il bit 5 e 0. Ricorda che i FUSE si attivano con 0 e sono disattivati con 1.

Guglielmo