C'è qualche discorso voodoo nelle risposte qui intorno tra le buone idee. Proviamo a essere un po 'più reali su ciò che sta accadendo e riassumiamo le cose buone da controllare:
Fondamentalmente, quando ciò accade, è una buona idea abilitare la modalità dettagliata per AVRDUDE , per avere un'idea migliore di ciò che sta accadendo. Per fare ciò, devi solo andare nelle preferenze e selezionare la casella della modalità dettagliata. È anche una buona idea allontanarsi dall'IDE di Arduino e avviare una console per essere più a proprio agio nella lettura dell'output di AVRDUDE, che potrai fare clic sul uploadpulsante.
Ciò che è importante qui per mettere 3 o 4 -valla chiamata di comando. Ecco come appaiono tali comandi AVRDUDE, con parametri inventati in quanto totalmente dipendenti da come è stato installato Arduino:
avrdude -v -v -v -v -C /path/to/avrdude.conf -patmega328 -P/dev/usbport -U flash:w:/path/to/firmware.hex
Un buon modo per ottenere la riga di comando corretta da utilizzare è copiarlo dall'output dettagliato del log di output IDE di Arduino quando è stata abilitata la verbosità.
Quando arrivi avrdude: stk500_recv(): programmer is not responding, significa sostanzialmente che sta succedendo qualcosa di sbagliato, prima che inizi effettivamente il lampeggiamento.
Fondamentalmente devi controllare (dall'hardware al software, da basso ad alto livello):
- se il cavo e / o i connettori non hanno micro-tagli;
- se nessun punto di saldatura è cortocircuitato (cioè toccando qualcosa di metallico attorno), ciò significa:
- se non c'è cortocircuito sul PCB tra
Rxe Tx(di solito pin 1e0 );
- se non c'è contatto con un elemento metallico sotto la scheda, o minuscole punte tra le gambe di un componente (come l'FTDI, il chip ATmega o qualsiasi altro);
- se il chip ATmega non è senza alimentazione ( collegamento o interruzione GND / V CC o ingresso V CC inattivo ...);
- se i pin
1e 0dell'Arduino non vengono utilizzati da alcuno scudo o design personalizzato ( /!\non si applica a Leonardo in quanto ha una gestione USB indipendente);
- se il convertitore da USB a UART non presenta problemi (
FTDIsu Duemilanove o ATmega16U2 precedenti su Arduino Unos più recenti);
- se il chip ATmega328 è fritto o installato in modo errato;
- se il bootloader è stato sovrascritto o non funziona;
- se viene applicato il baudrate corretto per accedere al bootloader;
- se sono impostate le giuste impostazioni per il microcontrollore e la scheda target;
Di solito avrdude -v -v -v -vpuò aiutare molto a scoprire in quale fase sta fallendo. Se non è possibile stabilire una connessione USB (guasto del cavo, USB / UART, PCB ...) o è un problema del bootloader.
Aggiornamento : ho provato a girare l'ATmega di bordo e ad adattarlo nella direzione opposta. Ora non riscontro problemi con il caricamento, ma dopo non succede nulla. Anche il LED di bordo non sembra lampeggiare.
Temo che se hai invertito la posizione dell'ATmega e quindi non funziona, il fatto che hai posizionato la fonte di alimentazione sui pin digitali potrebbe aver bruciato il tuo chip.