Arduino Mega 16U2 flashen

Hallo,

ich habe 2 Arduino Boards Mega 2560 (China) bei welchen die USB-Schnittstelle von Windows nicht mehr erkannt wird.
Andere Boards funktionieren.
Leider kann ich den englischen Beiträgen nicht folgen. :confused:

Ich finde keine deutsche Anleitung wie ich den 16U2 flashen kann und woher ich den 16U2- Sketch bekomme.

In der Arduino IDE gibt es ja "Bootloader brennen" aber leider kein "16U2 brennen".

Flashen möchte ich mit einem funktionierendem Board.

Ich hoffe ihr könnt mir einen Tipp geben.

ich vermute mal du meinst den ATMega256016AU

In der Arduino IDE gibt es ja "Bootloader brennen" aber leider kein "16AU brennen".

erst spielst du den ArduinoISP aus den Beispielen auf das andere Board, dann klemmst du einen Kondensator (10µF) zwischen GND und Reset. Verbindung herstellen, Miso -Miso, Mosi - Mosi, Sck - Sck,
Slave Reset am anderen Board (wenn kein Mega) Pin10 mit Reset am Mega.
Du wählst den Mega2560 aus und unter Programmer -> Arduino as ISP, dann auf Bootlader brennen

Sicher, dass die einen 16U2 haben?

Hallo,

der 16U2 ist nicht der 2560er IC. Das sind 2 getrennte ICs. Der 2560er ist der µC den wir programmieren.
Der 16U2 ist der USB<>Serial Übersetzer.
Der Bootloader von 2560 hat nichts mit dem 16U2 zu tun. Das sind 2 paar Schuhe.

Nun hast du aber ein Board aus China und wie unser Spanier schon erwähnt damit bestimmt keinen 16U2 drauf. Meistens verbauen die einen Chip namens "CH340". Guckst du nochmal genau auf dein Board? Was ist wirklich drauf? Der in der Nähe der USB Buchse. Wenn dem so ist, erneuer mal den CH340 Treiber.
Zeigt der Gerätemanager etwas an wenn er angesteckt ist?

Und ändere bitte deine erste Betreffzeile. Etwa "China Arduino Mega wird nicht erkannt" oder so ähnlich.

Man muss da schon genau schauen. Ich habe auch chinesische mit 16U2. Auch musste ich den 16U2 schon mal flashen. Weiss aber nicht, wo ich die Datei her hatte. Ich habe es glaub ich auch mit einem anderen Tool gemacht, nicht mit der IDE

Die Dateien für den 16U2 sind bei der Arduino IDE dabei.
Bei mir liegen sie hier:
E:\Programme\Arduino\hardware\arduino\avr\firmwares\atmegaxxu2

Übertragen muss man sie auf der Kommandozeile mit avrdude.
Alternativ: Eine boards.txt für den 16U2 anlegen. Dann gehts auch aus der IDE heraus.

Hallo,

die USB- Schnittstelle wird von Windows nicht erkannt.

Das liegt m.E. an der Schnittstelle USB <--> TTL welche durch den 16U2 realisiert ist.*

Wird das Board erkannt und es läßt sich nur nichts downloaden, ist der Bootloader auf dem 2560 platt.
Dann flackert aber noch die RX LED auf dem Bord, es antwortet aber nicht.

@combi
kannst du dies evtl. mal für Dummies etwas ausführlicher beschreiben?

"Alternativ: Eine boards.txt für den 16U2 anlegen. Dann gehts auch aus der IDE heraus.!"

Anm.:
*) Für den neueren Chinabaustein CH340 braucht man einen neuen Windowstreiber

Hier ist das beschrieben.

Nachtrag:
Habe mal, auf schnell, eine solche Boards.txt gebastelt.

Installation:
Datei->Voreinstellungen zeigt den Sketchbook-Speicherort.
Dort sollte sich ein "hardware" Verzeichnis finden.

Das "ArduinoFirmwareRestore" Verzeichnis aus der Zip da rein werfen.
Nach einen Neustart der IDE finden sich 2 neue Boards in der Werkzeuge->Board Liste..
1: UNO 16U2 Restore Firmware
2: Mega 16U2 Restore Firmware
Für beide Boards gibt es mehrere Firmwarevarianten

Anwendung:
Beliebigen ISP Programmer bereitstellen.
Dessen eine Ende an den gebrickten ATMega16U2 anschließen.
Das andere Ende am PC.
IDE starten.
Programmer auswählen
Board auswählen.
Passende Firmware auswählen
Auf "Bootloader brennen" drücken.
Fettich!

/************/
Der Kram ist noch völlig ungetestet.
Einfach aus den verfügbaren Informationen zusammen gestoppelt.
Über eine Rückmeldung würde ich mich sehr freuen.

Also eine echte Bananen Software.
(sie reift beim Kunden)

ArduinoFirmwareRestore.zip (50.9 KB)

Ich gehe nach deinem Rezept vor und scheitere an Punkt 7:

  1. Beliebigen ISP Programmer bereitstellen.
    --->Arduino Mega Board

  2. Dessen eine Ende an den gebrickten ATMega16U2 anschließen.
    ---> ok Verbindung zur ISP Schnittstelle des 16U2

  3. Das andere Ende am PC.
    ---> ok "Brenner" angeschlossen.

  4. IDE starten.
    ---> Arduino IDE (habe 1.6.9) | Board des "Brenners" auswählen + Schnittstelle

  5. Programmer auswählen
    ---> Datei|Beispiele| 11. ArduinoISP (Habe ich auf meinen "Brenner" Mega geladen)

  6. Board auswählen.
    ---> Das zu brennende Board unter Werkzeuge einstellen.

  7. Passende Firmware auswählen
    ----> ?????????? wie mache ich dies?? Ich kann nur Sketche laden :frowning:

  8. Auf "Bootloader brennen" drücken.
    ----> Unter Werkzeuge" ?????? Wird da nicht immer fest der Bootloader für das zuvor gewählte Board auf den 2560 gebrannt???

Fettich!

  1. Beliebigen ISP Programmer bereitstellen.
    --->Arduino Mega Board

Also: "Arduino as ISP" ??!!??!!

  1. Programmer auswählen
    ---> Datei|Beispiele| 11. ArduinoISP (Habe ich auf meinen "Brenner" Mega geladen)

Das ist richtig!
Er möge dann bitte den Programmer "Arduino as ISP" wählen, und nicht "ArduinoISP"

  1. Passende Firmware auswählen
    ----> ?????????? wie mache ich dies?? Ich kann nur Sketche laden :frowning:

Wenn du das Board "Mega 16U2 Restore Firmware" ausgewählt hast, ist in Werkzeuge ein Menuepunkt "Firmware" dazu gekommen.

  1. Auf "Bootloader brennen" drücken.
    ----> Unter Werkzeuge" ?????? Wird da nicht immer fest der Bootloader für das zuvor gewählte Board auf den 2560 gebrannt???

Ja, normaler weise....
Aber nicht hier und jetzt.
Denn der ISP Stecker des ATMega16U2 wird genutzt, nicht der des ATMega2560
Zusätzlicher Vorteil:
Es werden auch gleich die richtigen Fuses geschrieben.

für das zuvor gewählte Board

Richtig!
Darum wählst du auch als Board "Mega 16U2 Restore Firmware" aus!!

Wenn man nicht den "Bootloader brennen" Weg gehen möchte, muss man der IDE auch noch beibiegen den Code für den 16U2 zu kompilieren.
Aber dafür fehlen die board.txt Einträge und auch noch ein Berg sonstige Dinge.

Bis pkt 7 bin ich nun klar.

Ich erhalte eine Fehlermeldung.--> Falscher Mikrocontroller gefunden

M.E. sind Board- und Firmware- Eintrag vertauscht. s. Bild

ISPx.jpg

M.E. sind Board- und Firmware- Eintrag vertauscht. s. Bild

Nein, nein.
Das ist schon ganz richtig so!!

Vielleicht kann ich die Benennung ja noch ändern... :slight_smile:
Wenn dir bessere Bezeichnungen einfallen?

Mit Board ist in dem Fall das Briefmarken große Stückchen (des Megaboards) gemeint, wo der 16U2 seinen Job macht.

Ich erhalte eine Fehlermeldung.--> Falscher Mikrocontroller gefunden

Hmm...
Vielleicht mal die Meldungen beim Hochladen aktivieren und hier posten....
:smiling_imp: ich habe gerade keinen Mega zum kaputtmachen übrig :smiling_imp:

die Fehlermeldung:

vrdude: Expected signature for ATmega16U2 is 1E 94 89
Double check chip, or use -F to override this check.
Falscher Mikrocontroller gefunden. Ist das richtige Board im Menü Werkzeuge > Board ausgewählt?

ps.:
Ich habe 50,51,52,53 Vcc,Gnd auf den 16U2-ISP-Stecker verdrahtet.
Geht auch eine direkte Verbindung beider 2x3 pol. Stecker?

Geht auch eine direkte Verbindung beider 2x3 pol. Stecker?

Nein, wegen dem Reset Anschluss.

avrdude: Expected signature for ATmega16U2 is 1E 94 89

Das ist die erwartete Signatur.
Spannender ist: Welche er gefunden hat.

Verdrahtet habe ich:

Mega an USB-Anschluß --> ISCP1 - 2x3 Stiftleiste am 16U2 des defekten Boards

50 --> 1
51 --> 4
52 --> 3
53 --> 5
VCC --> 2
GND --> 6

Verdrahtet habe ich:

Prüfe ich gleich mal....
Bin aber recht sicher, dass beim ArduinoIP Sketch Pin 10 an Reset kommt.
Steht da zumindest ganz fett drin.

Welche Signatur wird denn jetzt gelesen?
Das ist Wichtig, für eine Diagnose deines Problems!

PS:
Und nicht vergessen

Put a 100nF Capacitor Between +5V and RESET pin on the Arduino Mega 2560 to disable auto reset.

(Nachtrag: 10µF sind nötig)

PPS:
Geprüft!
Scheint richtig zu sein, bis auf meine Bedenken beim Pin 53, statt 10

Welche Signatur? --> weiter wie gezeigt erhalte ich keine Anzeige.

// ArduinoISP version 04m3
// This sketch turns the Arduino into a AVRISP
// using the following arduino pins:
// pin name:    not-mega:         mega(1280 and 2560)
// slave reset: 10:               53
// MOSI:        11:               51
// MISO:        12:               50
// SCK:         13:               52

ICSP1.jpg

Sieht aus meiner Sicht gut aus :slight_smile:

OK...
"Dann" nehme ich das mit den 53 wieder zurück!
Ich habe da wohl eine andere Version!
Und zwar das Beispiel 11:ArduinoISP welches bei der IDE dabei ist.

// ArduinoISP
// Copyright (c) 2008-2011 Randall Bohn
// If you require a license, see
// The 2-Clause BSD License | Open Source Initiative
//
// This sketch turns the Arduino into a AVRISP
// using the following arduino pins:
//
// Pin 10 is used to reset the target microcontroller.

Und später dann:

#define RESET 10 // Use pin 10 to reset the target rather than SS