Programmare Atmega328 con scheda clone Arduino

Ciao a tutti, sto cercando di programmare 2 Atmega328 nuovi per minimizzare e gestire meglio dei miei progetti. Ma non riesco in nessun modo, mi dava prima questo errore:
"avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.

Programmazione non riuscita: errore durante il caricamento: exit status 1"
adesso questo:
"avrdude: Error: Could not find USBtiny device (0x2341/0x49)"
Ho seguito alla lettera questo video https://www.youtube.com/watch?v=ABfXILalEwA&ab_channel=TechMaker%5BItalianTechProject%5D e sono sicuro che i collegamenti sono giusti, li ho controllati più volte.

Ho anche trovato questa guida http://www.xorse.it/wp-content/uploads/downloads/2013/03/GUIDA-tecniche-programmazione-microcontrollori-atmel_v4.pdf che per ultima opzione mi metterò a leggerla da cima a fondo, siccome però è molto lunga, chiedo gentilmente se qualcuno sa già quale è il problema, forse che io sappia con una scheda clone non si può fare... grazie.

NO, studiarla DEVE essere la prima opzione ... quella guida, scritta parecchi anni fa dal Prof. Menniti, per gli ATmega328P, è assolutamnete ancora attuale e, se si vuol riuscire, invece di seguire le infinità di bojate che si trovano siu youtube e su internet in genere, è la cosa migliore da seguire alla lettera! Ah, è ampliamnete collaudata e provata, quindi ... è sicuro che, se la si segue correttamente, si riesce a fare la programmazione (clone o meno).

Guglielmo

1 Like

La guida del prof. Menniti è ottima.
Ma non mi pare siano problemi di collegamenti ma dei vari passaggi che fai nel IDE (che mi paiono corretti in quel video)

  1. devi scaricare lo sketch ArduinoISP su Arduino Uno con programmatore AVRIsp mkII (solito) e forse questo hai fatto corretto, ma
  2. ora puoi fare upload del programma sul atmega328 nuovo ma devi selezionare programmatore "Arduino as ISP" e non USBtinyISP (credo hai sbagliato questo)
    image
1 Like

No non ho sbagliato questo, non è inserito USBtinyISP non so perchè viene questo errore, comunque riselezionando ulteriormente (è già selezionata) Arduino as ISP quell'errore non c'è più e al suo posto: "avrdude: Yikes! Invalid device signature. ecc..." come ho scritto sopra.
Sto leggendo la guida e sono arrivato a pagina 28, dove dice: "L’altro elemento può essere legato alla contemporanea presenza di due diverse versioni di IDE, p.es la 0022 e la 1.0.1." proprio in un thread dove ho trovato questa guida: Problema caricamento Atmega 328p - #2 by gpb01, ecco non capisco cosa significa, "sconsiglia di tenerle entrambe", come faccio a cancellare la 1.0.1 o la 0022? (non so nemmeno di preciso cosa significa) ma nel thread riesce a caricare il bootloader dopo aver fatto qualcosa a riguardo...
Sto continuando a leggere tutto, se trovo la soluzione in ogni caso posto il messaggio che ho risolto, ma per adesso nulla.
Ribadisco che i collegamenti sono giusti, e sempre gli stessi, per adesso non ho provato il metodo con 2 schede, proverò anche quello.

Aspetta, ma tu dici di fare programmatore AVRIsp mkll? Io in programmatore ho fatto Arduino as Isp come dice anche la guida e il video. Comunque non funziona lo stesso, se seleziono AVRIsp mkll mi da un semplice messaggio: "Impossibile cancellare il chip: errore durante il caricamento: exit status 1".

Descrivi ESATTAMENTE i collegamenti che fai ... magari c'è qualche cosa li ...

Guglielmo

Ok, nessun problema, carico anche una foto, le breadboard piccole sono nuove, io a dire la verità sono più preoccupato per i cavetti che sono di più di 3 anni fa, ne ho di nuovi nel caso proverò a sostituirli, a occhio non sono in cattivo stato.

pin 1: cavetto diretto a pin 10 arduino // resistore marrone-nero-arancio a pin 7
pin 7: cavetto a breadboard 1 colonna 1
pin 8: cavetto a breadboard 1 colonna 17
pin 9-10 : rispettivamente ai due terminali dell'oscillatore 16Mhrz nella seconda breadboard.
((per ogni terminale dell'oscillatore collego un (vecchio) condensatore ceramico da 22 (il numero 22 si legge bene almeno) a breadboard 2 colonna 12))

pin 17-18-19: cavetti diretti rispettivamente a pin 11-12-13.
pin 20: cavetto a breadboard 1 colonna 1
pin 22: cavetto a breadboard 1 colonna 17

infine:
collego ancora la colonna 12 breadboard 2 a breadboard 1 colonna 17.
Collego le due colonne 1 e 17 della breadboard 1 a 5v e gnd.
Immagino che sia un errore fare dei collegamenti così con tutti i cavetti che danno fastidio, dovrei usare quelli che aderiscono alla breadboard, così dall' immagine non si capisce molto ma io la posto lo stesso.
Ciò che mi preoccupa spesso è che mi chiedo non è che i cavetti fanno male contatto?? è tipo una paura fissa, essendo in ferro basta davvero poco perchè arrugginiscano addirittura, anche se li tengo in un cassetto ho lo stesso paura che possano essere la causa di tutto. Ma li ho anche controllati uno per uno e sono in buono stato, dunque userò quelli nuovi di pacca...
la scheda eleego ha preso parecchia polvere, (si vede) ma funziona bene e comunque ho provato ed è tutto uguale con la scheda az-delivery nuova di pacca.

immagine(mi rendo conto che è un pasticcio :smiling_face: ma si capisce volendo):
e perdonatemi per la mia rozzezza, so che ci vuole precisione nell'elettronica.

A pag. 32 del manuale che ti avevo detto di studiare, capitolo 6B, c'è l'esatto collegamento da fare tra un Arduino UNO ed un chip ATmega328P. Segui quello alla lettera e vedrai che funziona.

Guglielmo

Ero arrivato fino a pag.28, dove ho pensato di non capirci più e ho riscritto sul forum, ora non so di nuovo più che pesci pigliare, mi è rimasto da provare il condensatore al tantalio ma sono stanco e per oggi chiudo bottega, sono ore che studio e mi riaccerto più e più volte che sia tutto giusto, farò ancora una prova domani ma sono sul punto di rinunciare...
Mi dica se sbaglio qualcosa, metto altre due immagini, forse dal lampeggio o se il led è acceso o spento può capire qualcosa...
Devo ancora dire una cosa, provando devo avere sbagliato qualcosa, se non sono sicuro ogni tanto metto un dito sul microcontrollore perchè mi è capitato già una volta con un attiny che si scaldasse molto (si, per via di un collegamento errato) e mi è successo di nuovo, appena me ne sono accorto ho subito staccato l'alimentazione, non so se ci possano essere danni, l'attiny mi ricordo che ha funzionato ancora. Comunque ho un altro Atmega328... E vorrei riuscire a fare questa cosa in ogni caso.

Mancano i ponticelli fra le linee rossa e blu superiori e quelle inferiori!

2 Likes

Con tutti quei fili lunghi, metti almeno 47uF e 100nF vicino al microcontrollore!

perdonami, ma io non me ne intendo così tanto. Devo sostituire il condensatore tra reset e 3.3v con uno da 47uF? Oppure 100uF(non nF)? O che devo sostituire i due ceramici? Spiegami.

Guarda, semplificati la vita ...
... prendi l'Arduino UNO che ha il 328P montato sullo zoccolo, lo sfili e ci monti il tuo e poi usi l'altro Arduino (quello con la MCU SMD) come programmatore e programmi il bootloader ... pag. 14 e seguenti della guida (e pag. 29 per fare un cavetto più compatto).

Guglielmo

1 Like

questo metodo ha funzionato subito! Siccome so che a lungo andare finisce che si spezzano i piedini compro uno zoccolo zif e lo collego allo zoccolo della scheda che uso per programmare i microcontrollori e sono a posto.
Però sono ancora curioso di sapere cosa c'era che non andava quindi riproverò, e ci terrei anche a sapere cosa intendeva Datman di mettere almeno 47uF e 100nF vicino al microcontrollore, potete spiegarmelo? Vorrei fare ancora questo tentativo...

Sulla breadboard dove arrivano i fili di alimentazione metti un condensatore da 47uF e vicino al 328P sui pin + e - di alimentazione metti il 100nF.

1 Like

Scusami se ti faccio ripetere, ma intendi sostituire i 2 condensatori ceramici da 22 con 2 da 100? Perché a quanto mi pare di aver capito per ora non ci sono condensatori elettrolitici di un valore così basso come 100nF. Il condensatore da 47uF è giusto così? Tra reset e 3.3 v non metto niente quindi o lascio il condensatore da 10uF?
O forse più semplicemente dovrei mettere un terzo condensatore da 100nF come nella foto? Voglio essere sicuro (probabilmente potrei mettere anche più semplicemente i condensatori tra la riga rossa + e blu - della breadboard tanto il collegamento è uguale).
per essere sicuro ti chiedo anche un altra cosa, gli unici condensatori che ho da 47 sono questi: hanno un segno quadrato, il terminale più vicino al segno è il - giusto?
grazie.


Ma assolutamnete NO, quelli sono i condensatori che vanno con il quarzo per farlo funzionare!

Intende un elettronlitico sull'alimentazione per stabilizzarla ed un 100 nF tra il piedino di alimentazione del ATmega328P e la massa per eliminare i disturbi.

Guglielmo

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.