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 upload
pulsante.
Ciò che è importante qui per mettere 3 o 4 -v
alla 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
Rx
e Tx
(di solito pin 1
e0
);
- 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
1
e 0
dell'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 (
FTDI
su 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 -v
può 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.