Allora, proviamo a riepilogare la situazione:
1 - hai due Arduino, di cui uno perfettamente funzionante e l'altro sicuramente funzionante ma col micro che ha un qualche problema che genera l'errore di cui al titolo del Topic.
2 - questa certezza ti deriva dal fatto che hai invertito i due mcro sulle board ed hai verificato che il problema "segue" il micro
3 - ci siamo concentrati sulle possibili problematiche del micro ma:
a- il bootloader viene caricato correttamente
b- uno sketch via ISP viene caricato correttamente
c- il dubbio sulla seriale ce lo ha tolto proprio lo sketch che hai caricato
4 - D'altra parte l'errore è un chiaro sintomo di mancato dialogo tra l'IDE ad il micro (visto che abbiamo escluso la board e con essa il convertitore usb-seriale)
Quindi resta solo un possibile malfunzionamento del RESET del micro; se ci poteva venire qualche dubbio sul settaggio dello stesso, ce lo siamo tolti con la lettura dei fuse via AVRDUDE, sono corretti in quanto sono quelli tipici di Arduino UNO.
A questo punto non ha significato nemmeno fare prove out-board perché otterremmo gli stessi risultati.
Puoi solo, ma per puro scrupolo, provare a scaricare nuovamente IDE 1.0.5 per scovare un improbabile difetto del software che si accanisca giusto con quel micro.
Dopo di che ti resta solo da comprare un nuovo micro, caricarci il bootloader e risolvere la cosa, mentre quello attuale, che non ha altri problemi, te lo conservi per la prima applicazione stand-alone (ovviamente senza bootloader) che andrai a realizzare.
Ci sono alcune cose che ancora non hai detto:
1 - Immagino di sì ma è per conferma: quale IDE stai usando?
2 - Immagino di sì ma è per conferma: sei sicuro di aver caricato il bootloader di Arduino UNO?
3 - a cosa attribuisci il problema che si è verificato, ossia secondo te cosa è successo perché il micro si danneggiasse?
Ti va di fare qualche altra prova??
Ricarica il bootloader sul micro, ma questa volta seleziona Arduino Duemilanove invece di UNO. Dovresti ottenere due risultati immediatamente riscontrabili:
1 - a fine caricamento il LED "L" di Arduino si mette a lampeggiare in modo stabile, questo perché il bl della Duemilanove ha integrato il blink
2 - riseguendo la riga di comando AVRDUDE (senza cambiare nulla) dovresti ottenere questa volta i fuse della Duemilanove, cioè: FF, DA (e non più DE), 05
Se così fosse collega direttamente la board al PC, togliendo l'altra, settala con la sua COM ma come Arduino Duemilanove e prova a caricare uno sketch qualsiasi, hai visto mai....
Sto utilizzando la IDE 1.0.5 e ho caricato il bl di arduino uno.
Cosa abbia eventualmente danneggiato il micro non ne ho idea: la prima programmazione dello sketch era andata a buon fine poi non ne ha più volute saperne via usb....
Ho fatto le prove che mi chiedevi e , caricando il bl del 2009 I fuse sono quelli che tu mi preannunciavi, così come il lampeggio del led integrato nella board.
Ho provato a caricare uno sketch via IDE settandolo 2009 ma il risultato è lo stesso: avrdude: stk500_getsync(): not in sync: resp=0x00
A questo punto mi sà che seguirò il tuo consiglio e terrò il chip per usi stand-alone..
Mi spiace ma le abbiamo provate davvero tutte e tutte le risposte vanno nella stessa direzione; è la prima volta in oltre tre anni che mi capita un difetto del genere, questo micro dovrebbe essere oggetto di studio, ma evidentemente è nato difettoso di fabbrica, visto che praticamente ha funzionato una sola volta :~ oppure attenzione ad eventuali probemi sulla messa a terra dell'impianto elettrico di casa.
Se non ti spiace quando ti arriva il nuovo micro fammi sapere se hai risolto regolarmente, anche se davvero non ci dovrebbero essere dubbi.
Ciao e grazie per aver eseguito i test, sono sempre feedback importanti.
E' stato un piacere fare i test e le prove, grazie ! in due gg ho imparato un sacco di cose.
Se vuoi te lo posso inviare per studiarlo, io non sarei in grado di andare oltre.
Appena arriverà il nuovo micro ti faro sapere se sarà tutto ok.
Grazie, mi farebbe estremamente piacere, ovviamente pagherò io tutte le spese
Però, vista la particolarità del caso, aspettiamo prima la certezza assoluta, e cioè il test con il nuovo micro, e poi ci mettiamo d'accordo in PM.
Ciao
Tiro nuovamente fuori questo topic in quanto ho un problema simile con una condizione diversa.
Nel dettaglio sto provando a programmare un atmega 328p che funzionerà in standalone con utilizzo di porta seriale e quindi ho necessità di caricare sia il bootloader che lo sketch.
Per il bootloader ho seguito alla lettera la guida del prof. Menniti e fin qui nessun problema, la procedura se,bra andare a buon fine. Il problema nasce provando a caricare lo sketch. Avendo un arduino mega ho acquistato il convertitore usb2serial (originale arduino) e l'ho collegato all'atmega come da schema allegato. Ovviamente seleziono come board arduino uno (ho caricato quel bootloader), setto la porta su com 7 (quella del convertitore) e carico lo sketch. La procedura parte regolarmente fino al quasi riempimento della barra verde, nel frattempo noto che sul convertitore si accende 3 volte il led rx e poco dopo spunta fuori l'errore oggetto di questo topic.
Ho provato sia ad invertire tx ed rx, a piazzare il condensatore sulla linea di reset e a cambiare il programmatore nell'IDE ma sempre nulla da fare.
Avete in mente qualche altra prova o una soluzione al problema?
Allego schema e foto dell'ambaradan.
Intanto ti faccio i miei complimenti perché hai descritto tutto alla perfezione, senza dare nulla per scontato, e così si aiuta molto gli altri a comprendere la problematica che però è davvero strana :~
Secondo quanto scrivi hai fatto le cose per bene: con la Mega hai caricato il bootloader e non potendola usare per la programmazione seriale hai fatto ricorso ad un convertitore specifico che però non dialoga (è questo il significato sia dei lampeggi tx [sicuro che sian rx??] che dell'errore sw).
Il condensatore da 0,1µF in serie probabilmente serve perché quegli schedini nascono per programmare board come la Pro Mini che lo hanno già on board, sull'inversione tx/rx fai bene perché non si capisce mai che cosa vogliano dire le serigrafie, magari se posti un link con il datasheet lo stabiliamo una volta per tutte, almeno per il tuo modello.
L'unica cosa che manca è una R da 10k in funzione di pull-up sul pin reset dello stand-alone. Poi metti il quarzo ed i due C direttamente sui pin del micro, abolendo i due cavetti jumper, e rifai tutte le prove (con senza C e inversione tx/rx.
Se non risolvi ancora dobbiamo verificare se davvero il bootloader si carica nel micro, allora rifai l'operazione ma questa volta mettici quello di Arduino 2009, poi collega una ra ed un led tra il pin 19 del micro e GND e vedi se semplicemente fornendo alimentazine il led lampeggia regolarmente una volta al secondo.
Se non è così il problema è a monte, se invece funziona prova a caricare ora uno sketch settando il convetitore come Duemilanove e vedi che succede, poi posta tutti gli esiti.
Ciao
Eccomi di nuovo qui, allora ho fatto le varie prove che mi avete consigliato e ho risolto il problema (la resistenza da 10k...)...
Ma veniamo ai fatti: per prima cosa ho ricaricato il bootloader della 2009 sempre secondo la guida Menniti aggiungendo R da 1k e led al pin 19 dell'atmega. Il lampeggio c'è stato. A questo punto mantenendo la resistenza da 10k sul pin di reset ho fatto il collegamento al convertitore seriale con pin invertiti (tx-rx ed rx-tx) e anche questa volta nonostante i soliti 3 lampeggi del led rx del convertitore e qualche lampeggio del led 13 del micro tornava l'errore. quindi ho piazzato un elettrolitico da 10 nF 10 microF tra il reset del convertitore e il pin del micro e tutto è andato a buon fine. Come consigliato ho anche rimosso i jumper per il quarzo.
Ripetute entrambe le prove con il bootloader della uno con esiti identici (lampeggio del pin 13 ogni secondo a parte).
Allego lo schema aggiornato per quanti incontrino il medesimo problema.
A questo punto non mi resta altro da fare che saldare su millefori l'insieme e con un bel deviatore da stampato crearmi il mio caricatore bootloader e schetch inscatolando il tutto così da ridurre la precarietà della breadbord.
Questo significa che hai aumentato a dismisura il tempo dell'impulso di RESET, non è un problema ma è molto strano, però mi dai uno spunto per lavorare su una difficoltà che sto avendo in questi giorni nelle mie sperimentazioni.
L'unica cosa è che secondo me dovresti invertire la polarità, come lo vedo nello schema stai collegando il negativo del condensatore al positivo di alimentazione (tramite la 10k) e non credo sia molto corretta la cosa.
Comunque se ti va di fare una prova, potresti abbassare quella capacità a 1µF (polarizzato o meno, non ha alcuna importanza) e vedere se continua a funzionare.
Appena ho la possibilità di comprare il materiale faccio la prova e posto gli esiti, sono strapieno di resistenze e a corto di condensatori...XD
Proverò anche ad invertire la polarità e vediamo che succede, sinceramente dopo due giorni di prove, non appena ho visto la scrittina "caricamento terminato" ho fatto i salti di gioia e mi sono fermato lì...
Ti capisco perfettamente, per le prove non ti preoccupare, se non vuoi "rischiare" non fa nulla, ma il condensatore devi invertirlo, non puoi farlo lavorare a polarità invertita, qualcosa di brutto prima o poi succede.... 8)
Per le prove non mi preoccupo, anzi sono ben motivato a farle perchè mi aiutano a mettere meglio le mani su quello che sto facendo. Ricordo bene cosa è successo quando ho fuso l'ultimo elettrolitico 8)
Anyway...ho invertito la polarità del C e tutto continua a fungere, lunedì compro quello da 1 micro e faccio la prova, al prossimo aggiornamento...
Come pensavo, grazie in via definitiva lascia quello in poliestere, è meglio. Comunque con ogni probabilità ti basterebbe anche un 220nF ma non cambia nulla. Ciao
eccomi di nuovo qua, dopo i consigli di cui sopra e le varie prove su breadboard mi sono cimentato a trasportare il tutto su PCB (di cui allego sia lo schematic che la board al presente messaggio), se non che è tornato l'inghippo del "avrdude: stk500_getsync(): not in sync: resp=0x00".
Vengo e mi spiego meglio:
come si può vedere dallo schema ho improntato il mio pcb ad un doppio uso, caricare il bootloader secondo la linea guida del Prof. Menniti oppure caricare lo sketch tramite il convertitore seriale/usb sfruttando un deviatore a slitta per modificare la linea di reset, nel primo caso escludendo il condensatore, nel secondo caso ponendolo in serie al pin di reset e aggiungendo due semplici led che mi indicano se sto usando il pcb in un senso o nell'altro. Speravo di fare una cosa utile per me e per quanti ne volessero prendere spunto, tuttavia...
Caricando il bootloader non ho alcun problema, la procedura va a buon fine, ma nel momento in cui provo a caricare lo sketch ottengo il solito errore. Ho controllato ripetutamente con un multimetro le piste sui pin RX e TX (essendo le uniche differenze con l'altra parte di circuito) e non ho riscontrato problemi, ho pure provato a collegare il condensatore con dei coccodrilli sulla linea di reset lato bootloader utilizzando quella parte per i pin +5, gnd e reset, ma nulla da fare.
Preciso che sto utilizzando uno zoccolo ZIF, e che non so più dove sbattere la testa. Intanto il pcb ripropone esattamente lo schema che su breadboard funziona. Avete idea di come posso risolvere il problema? Può essere un problema di piste data dalla mia ignoranza in materia su eventuali variabili di cui tener conto?
Ringraziando anticipatamente porgo i miei saluti.
Claudio
Perchè il deviatore a slitta?
Ho usi la tecnica ISP o quella seriale, quindi non dovresti avere problemi di reset "condiviso".
E' cosi alle sulle board Arduino.
Inoltre puoi usare il piano massa per collegare i GND. E nello schematico usare i riferimenti per non tracciare linee inutili.