[erledigt] Mega16u2 flashen

Hallo allerseits!

Ich habe hier einen Uno-Nachbau, der sich plötzlich nicht mehr an USB meldet. Der 328P ist wohl noch in Ordnung, das zuletzt aufgespielte Programm funktioniert tadellos (es ist halt blöderweise nur ein Testprogramm).

Bevor ich das Ding wegwerfe, möchte ich wenigstens kurz probieren, den 16u2 zu flashen. Ein AVRISP mk II ist vorhanden. Kann ich den 16u2 aus der IDE heraus neu bespielen? Was müsste ich dafür tun?

Einen neuen Bootloader auf den 328P aufzuspielen ist kein Problem, das habe ich schon mehrmals gemacht. Aber mit einem 16u2 hatte ich noch nie zu tun (zumindest nicht als Problemfall).

Vielen Dank vorweg!

Gregor

die XXu2 kann man über Atmels Flip software direkt flashen da sie eine USB Schnittstelle die auch das Hochladen des Programmes unterstützt besitzen.

https://www.arduino.cc/en/Hacking/DFUProgramming8U2

Schuppeste: https://www.arduino.cc/en/Hacking/DFUProgramming8U2

Danke! Ich hatte zwar im Forum gesucht, aber diese Seite kam in den Suchergebnissen nicht vor.

Und es sah zuerst danach aus, als habe alles geklappt (avrdude lief ohne Fehlermeldung durch), aber der Uno beibt an USB „unsichtbar“. Scheint also wirklich tot zu sein.

So wandert billiger Fernost-Müll halt mal wieder in die Tonne. Und ich habe wieder einen Grund mehr, nach Möglichkeit nichts mehr dort zu kaufen.

Gruß

Gregor

Müllvermeidung:
Unabhängig vom ATmega16U2 kannst Du den ATmega328 ja über ISP flashen. Solange Du keine serielle Ein/Ausgabe brauchst funktioniert der Arduino problemlos.
Grüße Uwe

uwefed: Müllvermeidung: Unabhängig vom ATmega16U2 kannst Du den ATmega328 ja über ISP flashen. Solange Du keine serielle Ein/Ausgabe brauchst funktioniert der Arduino problemlos. Grüße Uwe

Ja, daran habe ich auch gedacht. Aber heißt das nicht, dass ich dann nicht mehr die IDE (und die Arduino-Bibliotheken ...) zum Programmieren benutzen kann?

Da das betreffende Board ja kein Original ist, ist mir dessen weitere Nutzung nicht so wichtig. Was aus China kommt ist meiner Erfahrung nach zum größten Teil eh Pfusch. Ich tendiere gerade eher dazu, den µC in meinen Ersatz-µC-Fundus zu tun und die Platine zu benutzen, um mein zweites Motor-Shield draufzustecken, damit die langen Pins geschützt sind.

Gruß

Gregor

Aber heißt das nicht, dass ich dann nicht mehr die IDE (und die Arduino-Bibliotheken ...) zum Programmieren benutzen kann?

Unsinn!

combie: Unsinn!

Nein, das ist eine Frage.

Gruß

Gregor

gregorss:
Ja, daran habe ich auch gedacht. Aber heißt das nicht, dass ich dann nicht mehr die IDE (und die Arduino-Bibliotheken …) zum Programmieren benutzen kann?

Geht ganz einfach, anstatt dem Upload Button muss man im Menü Sketch->Hochladen mit Programmer" benutzen, dafür ist auch erst das Feld “Werkzeuge->Programmer->avrisp” interessant, das hat vorher keine Bedeutung.

Um nicht immer durchs Menü zu klicken kann man zum Hochladen auch Strg+Umschalt+U benutzen

Schuppeste: Geht ganz einfach, anstatt dem Upload Button muss man im Menü Sketch->Hochladen mit Programmer" benutzen, dafür ist auch erst das Feld "Werkzeuge->Programmer->avrisp" interessant, das hat vorher keine Bedeutung.

Als ich mit Arduino anfing, ging das AFAIR noch nicht. Deshalb habe ich damals auch eine Zeit lang damit gespielt, Programme in purem C(++) zu schreiben und die Flasherei mit Makefile/avrdude zu erledigen. Als mir dann aber klar wurde, dass das „Standardbrett“, das ich mir zurechtbasteln wollte, am Ende fast genauso aussehen würde, wie ein Arduino, habe ich mich halt doch für Arduino mit IDE entschieden.

Gruß

Gregor

Nein, das ist eine Frage

Und das war die Antwort auf die unsinnige Frage.

Eigentlich, hätte ich ja angenommen, dass du dir wenigstens mal die Menüs deiner IDE anschaust. Aber so kann man sich irren...

Danke! Ich hatte zwar im Forum gesucht, aber diese Seite kam in den Suchergebnissen nicht vor.

Und es sah zuerst danach aus, als habe alles geklappt (avrdude lief ohne Fehlermeldung durch), aber der Uno beibt an USB „unsichtbar". Scheint also wirklich tot zu sein.

Auf der verlinkten Seite wird Flip verwendet, aber du sprichst von avrdude.

Das kommt mir spanisch vor.

Tipp: Falls Flip den 16U2 findet, ist die USB Anbindung voll ok.

Alternativ: Per ISP

Alternativ 2: Du kannst den 16U2 per Steckbrücke auf seinem ISP im Dauerreset halten, und dann den Hauptprozessor mit einem Serialadapter flashen. Der ISP Programmer ist also nicht unbedingt nötig.

gregorss: Ja, daran habe ich auch gedacht. Aber heißt das nicht, dass ich dann nicht mehr die IDE (und die Arduino-Bibliotheken ...) zum Programmieren benutzen kann?

Das heißt nur daß Du den Sketch nicht mehr über USB üploaden kannst sondern nur mit einem ISP-Programmierer.

Man kann auch einen kleinen Hack basteln… man verbindet RX/TX und reset Headerpins auf einen FTDi und umgeht so den 16u2… dann ist es wieder handlebar wie ein normaler Uno.

Das ist erstmal Theorie. .ggf muss man den 16u2 noch Schlafenlegen, da müsste man mal in den Plan schauen.

eben nur ein Hack.

ggf muss man den 16u2 noch Schalfenlegen,

Der Todesschlaf:
Per Jumper, auf dem ISP Stecker des 16U2, Reset mit GND verbinden.

combie: Der Todesschlaf: Per Jumper, auf dem ISP Stecker des 16U2, Reset mit GND verbinden.

Dem ist wohl so, leider habe ich keinen Uno,daher wusste ich noch nicht das der 16u2 einen eigenen ISP hat :)

in den sheets rumsuchen hatte ich keine Lust, wobei mir gerad noch der Gerdanke gekommen ist.. ob der Uno Bootloader ein herkömmlicher ist oder zwischen dem 16u2 und 328p ein spezielleres Protokoll gehandelt wird.

Nöö, der 16U2 muss auf dem Arduino einen recht doofen USB->serial Wandler spielen. Kann man also problemlos durch was anderes ersetzen. DTR muss dann halt über einen Kondensator an Reset des Hauptprozessors, wenn man wieder den kompletten Arduino Komfort haben möchte.