non riesco più a caricare su stand-alone arduino

ciao a tutti fino ad oggi ero riuscito a caricare i miei sketches su un ATMEGA328p che utilizzo su una mia pcb come se fosse un arduino. Avevo quindi precedentemente caricato il bootloader su questo chip (tramite un arduino mega), e lo programmavo ogni volta usando il classico convertitore usb FTDI, collegando tutto su breaboard come segue: -TX e RX di arduino al RX e TX del programmatore -l'alimentazione 5V dal programmatore ai 4 pin di alimentazione di arduino -DTR del programmatore --> 0,1uF --> pin 1 di arduino -10K dal pin 1 di arduino a 5V -cristallo da 16mHZ con due condensatori da 22pF

Il tutto ha sempre funzionato benissimo, anche oggi mentre modificavo uno sketch, poi all'improvviso, dopo un altra modifica nel codice, ha smesso di caricare dicendomi:

avrdude: stk500_getsync(): not in sync: resp=0x00

Ripeto che non ci sono state modifiche hardware/software, poichè fino a 2 minuti prima caricava tranquillamente, quindi scarterei problemi di driver/porta COM errata/board selezionata errata/ecc..

Aggiungo inoltre che se uso il chip sulla mia pcb, c'è ancora lo sketch funzionante prima dell'ultima modifica. Ho provato a riavviare il pc (win 7 64bit), staccare più volte l'USB, provare le altre porte USB, senza successo.. Ho provato a ricaricare il bootloader ma mi da lo stesso errore, anche con un altro chip 328P. Da cosa può essere dovuto?

Lo sketch occupava la seriale? Se sì, allora il problema è quello. Se il programma parte subito, impegna la seriale ed il programmatore non riesce più a comunicare lo sketch via RX/TX.
Stacca tutto e riprogramma il bootloader via ICSP, in questo modo erasi la memoria del micro.

ciao, si occupa la seriale, infatti ora ho messo un ritardo all'avvio in modo da evitare tali problemi. Tuttavia, dopo ulteriori prove, ho visto che non riuscivo neanche a riprogrammare il bootloader. In modalita' verbose ho scoperto che il chip non era riconosciuto dal programmatore. La causa che bloccava il riconoscimento era il cristallo da 16MhZ e i relativi condensatori, poichè il tutto è montato su breadboard, estraendo e reinserendo questi 3 componenti, tutto è tornato a funzionare. :) non so se la causa sia la capacita' dei contatti della breadboard oppure la bassa qualita' di tali contatti.

Come puó funzionare senza quarzo?

uwefed: Come puó funzionare senza quarzo?

Eh già... ;)

Se vuoi eliminare il quarzo puoi usare l'oscillatore interno a 8 o ad 1 Mhz. A quel punto però devi ricompilare tutto per gli 8Mhz ad esempio e scrivere un Bootloader adatto.

Meglio lasciare tutto a 16 e se hai problemi col quarzo cerca di spostarlo il più vicino possibile al micro.

PaoloP: A quel punto però devi ricompilare tutto per gli 8Mhz ad esempio e scrivere un Bootloader adatto.

Meglio lasciare tutto a 16 e se hai problemi col quarzo cerca di spostarlo il più vicino possibile al micro.

Anche perché non tutte le lib lavorano a clock diversi dai 16 MHz canonici.