Es gibt einige Voodoo-Gespräche in den Antworten hier unter guten Ideen. Lassen Sie uns versuchen, ein bisschen realer darüber zu sein, was passiert, und die guten Dinge zusammenfassen, die überprüft werden müssen:
Grundsätzlich ist es in diesem Fall eine gute Idee, den ausführlichen Modus für AVRDUDE zu aktivieren , um eine bessere Vorstellung davon zu bekommen, was passiert. Dazu müssen Sie nur in den Einstellungen das Kontrollkästchen für den ausführlichen Modus aktivieren. Es ist auch eine gute Idee, sich von der Arduino IDE zu entfernen und eine Konsole zu starten, um die Ausgabe von AVRDUDE besser lesen zu können. Klicken Sie dazu auf die upload
Schaltfläche.
Was ist hier wichtig, um 3 oder 4 -v
zum Befehlsaufruf zu setzen . So sehen solche AVRDUDE-Befehle mit zusammengesetzten Parametern aus, da sie vollständig davon abhängen, wie das Arduino installiert wurde:
avrdude -v -v -v -v -C /path/to/avrdude.conf -patmega328 -P/dev/usbport -U flash:w:/path/to/firmware.hex
Eine gute Möglichkeit, die richtige Befehlszeile zu verwenden, besteht darin, sie aus der ausführlichen Ausgabe des Arduino IDE-Ausgabeprotokolls zu kopieren, wenn die Ausführlichkeit aktiviert wurde.
Wenn Sie erhalten avrdude: stk500_recv(): programmer is not responding
, bedeutet dies im Grunde, dass etwas falsch passiert, bevor das Blinken tatsächlich beginnt.
Grundsätzlich müssen Sie Folgendes überprüfen (von Hardware zu Software, von niedriger zu hoher Ebene):
- wenn das Kabel und / oder die Stecker keine Mikroschnitte haben;
- Wenn keine Lötpunkte kurzgeschlossen sind (dh etwas Metallisches berühren), bedeutet dies:
- wenn auf der Leiterplatte kein Kurzschluss zwischen
Rx
und besteht Tx
(normalerweise Stifte 1
und 0
);
- wenn es keinen Kontakt mit einem metallischen Element unter der Platine oder winzigen Teilen zwischen den Beinen einer Komponente gibt (wie dem FTDI, dem ATmega- Chip oder einem anderen);
- wenn der ATmega-Chip nicht stromlos ist (GND / V CC- Verknüpfung oder -Schnitt oder V CC- Eingang ist tot…);
- wenn die
1
und 0
Pins des Arduino nicht von einem Schild oder einem benutzerdefinierten Design verwendet werden ( /!\
gilt nicht für den Leonardo, da er über eine unabhängige USB-Handhabung verfügt);
- wenn der USB-zu-UART-Konverter kein Problem hat (
FTDI
bei älteren Duemilanove oder ATmega16U2 bei neueren Arduino Unos);
- wenn der ATmega328- Chip gebraten oder falsch installiert ist;
- wenn der Bootloader überschrieben wurde oder ausfällt;
- wenn die richtige Baudrate für die Eingabe des Bootloaders angewendet wird;
- wenn die richtigen Einstellungen für den Zielmikrocontroller und die Zielplatine vorgenommen wurden;
Normalerweise avrdude -v -v -v -v
kann das viel helfen, herauszufinden, in welchem Stadium es fehlschlägt. Ob es überhaupt keine USB-Verbindung herstellen kann (Kabelfehler, USB / UART, PCB…) oder ein Bootloader-Problem ist.
Update : Ich habe versucht, den integrierten ATmega zu drehen und in die andere Richtung zu montieren. Jetzt habe ich keine Probleme beim Hochladen, aber danach passiert nichts mehr. Die integrierte LED scheint ebenfalls nicht zu blinken.
Ich befürchte, dass die Tatsache, dass Sie die Stromquelle auf digitale Pins gelegt haben, Ihren Chip möglicherweise verbrannt hat, wenn Sie die Position des ATmega umgekehrt haben und es dann nicht funktioniert.