ich hatte eine ähnliche Frage schon vor einigen Monaten gestellt, kam da mangels Sprachbarriere aber nicht weiter. Daher nun der Versuch auf Deutsch. Der Hintergrund ist, dass ich ausgehend vom originalen MEGA-Schaltplan selbst zu Übungszwecken das Board gelayoutet habe. Das Board ist nun soweit bestückt und ich müsste den 16U2 als auch den 2560 nun programmieren. Mich erschlägt es förmlich bei den vielen Artikeln mit verschiedenen Möglichkeiten, Hardwaremodifikationen, etc.
Vom Prinzip her ist mir klar, was ich benötige:
1.) auf den 16U2 die Firmware für USB-Serial-Umsetzung aufspielen.
2.) auf den 2560 den Bootloader aufspielen, damit er zukünftig von der Arduino IDE heraus programmiert werden kann
Nun, weiß ich nicht, wie ich das am einfachsten bzw. überhaupt bewerkstelligen soll. Ich habe mir von Atmel den ICE Programmer/Debugger besorgt, diesen könnten wir also nutzen. Aber da ich generell noch keinen uC geflasht habe (immer nur über die Arduino IDE) gearbeitet, weiß ich auch nicht wirklich wie das gehen soll bzw. welche Software man benötigt. Von Atmel gibt es ja dieses Flip, aber auch Atmel Studio.
Wenn mir jemand etwas Hilfestellung geben könnte, wäre ich dankbar.
Hoffentlich ist es so einfach, wie es bei euch klingt. Ich werde es spätestens am Wochenende versuchen und gebe dann Bescheid, ob positiv oder negativ verlaufen.
So, ich habe jetzt mit der Anleitung von @agmue mit Flip den 16U2 geflasht, Davor wurde er in der Systemsteuerung als Atmega 16U2 erkannt und danach als Arduino Mega 2560. Irgendwelche Fuses habe ich nicht gesetzt, weil davon auch nichts in der Anleitung stand.
Nun zum 2560. Dort habe ich in der Arduino IDE die Einstellungen wie am angehängten Screenshot eingestellt und bekomme eine Fehlermeldung (siehe zweiter Screenshot). Dabei hatte ich das MEGA-Board über USB an den PC angeschlossen und zusätzlich den ICE-Programmer über PC-USB auf den ICSP-Header. Kann mir bei dem Fehler jmd weiterhelfen?
Das schien soweit auch zu funktionieren. Nachdem ich nun den Versuch unternommen habe auf den MEGA normal über USB einen Sketch hochzuladen, bekomme ich eine Timeout-Fehlermeldung.
Ich weiß nicht, ob ich irgendwo nen Fehler gemacht habe. Fuses habe ich nirgends gesetzt, aber das wurde auch nirgendwo beschrieben.
Ja, das funktioniert, er blinkt wie er soll dann. Auch das Draufladen des Bootloaders läuft ohne Fehler ab.
Wenn ich dann den MEGA direkt über USB anschließe und den Blinksketch draufladen möchte kommt wie gesagt der Timeout-Fehler.
Arduino: 1.8.10 (Windows 10), Board: "Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"
Der Sketch verwendet 1448 Bytes (0%) des Programmspeicherplatzes. Das Maximum sind 253952 Bytes.
Globale Variablen verwenden 9 Bytes (0%) des dynamischen Speichers, 8183 Bytes für lokale Variablen verbleiben. Das Maximum sind 8192 Bytes.
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega2560 -cwiring -PCOM21 -b115200 -D -Uflash:w:C:\Users\mlanger\AppData\Local\Temp\arduino_build_332855/Blink.ino.hex:i
avrdude: Version 6.3-20190619
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch
System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"
Using Port : COM21
Using Programmer : wiring
Overriding Baud Rate : 115200
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer
avrdude done. Thank you.
Beim Hochladen des Sketches ist ein Fehler aufgetreten
Dieser Bericht wäre detaillierter, wenn die Option
"Ausführliche Ausgabe während der Kompilierung"
in Datei -> Voreinstellungen aktiviert wäre.
Mir fällt auf, dass die TX-LED des 16U2 gar nicht leuchtet und die RX nur alle paar Sekunden einmal blinkt. Normalerweise sind die ja richtig am Flackern. Wenn die TX schon nicht leuchtet, spricht das doch für ein Problem mit dem 16U2, ebenso, dass der 2560 vom Uno direkt programmiert werden konnte, oder?
Willst du jetzt ernsthaft das Kompilierungs-Protokoll des mitgelieferten Blinksketches sehen? Kann ich dir natürlich hochladen, aber was soll da drinstehen?
Nein, ich habe keine Fuses gesetzt, das hatte ich ja schon gesagt. Welche müsste man denn wie setzen? Ich habe wie gesagt das Beispiel von @agmue verwendet und hierbei insbesondere Punkt 6 ( Anwendungsprogramm ändern): Anleitung: UNO als Human Interface Device (HID) Tastatur
Als HEX-Datei habe ich aus deinem zip-File die "Arduino-usbserial-mega.hex" hochgeladen. Jetzt wo ich grade schreibe, kommt mir der Gedanke, ob die Datei evtl. auch falsch war und es die "Arduino-usbserial-atmega16u2-Mega2560-Rev3.hex" hätte sein müssen.
Sorry, ich komme nicht wirklich weiter. Ich glaube ihr setzt zu viel Vorkenntnisse voraus bei mir, ich habe mich noch nie mit diesem Thema beschäftigt.
Ja, genau. Das heißt man müsste die Fuses richtig setzen. Aber auf welche Werte und wie das geht, weiß ich nicht. Bzw. könnte man es mit der Kommandozeile und avrdude versuchen, aber dazu bräuchte ich immer noch die Werte der Fuses. Ich will auch kein Risiko eingehen, da was falsch zu setzen, weil sonst der Chip wohl unbrauchbar werden kann und ich den hier nicht auslöten kann.
Das waren nur hex-Files. Ich habe zwar eins davon ("Arduino-usbserial-mega.hex") mittels Flip hochgeladen, aber so wie ich es verstehe müsssten die Fuses ja noch gesetzt werden.
So eine Auswahl habe ich in dem Menü gar nicht.
Mal noch ne Frage, wenn ich den Bootloader mit der "Arduino as ISP" Anordnung draufspiele und danach z.B. den Blinksketch, dann ist der Bootloader wieder weg?
Noch eine Frage: Sehe ich das richtig, dass das ganze Prozedere auch mit Arduino as ISP geht und ich einen Atmel ICE gar nicht benötige?
Nein!
Da ist noch eine kleine süße andere Datei...
Kann man leicht übersehen, wenn man will.
Kannst du aber herstellen, wenn du den Inhalt des hardware Orders, aus dem Zip, in deinen sketchbook/hardware Ordner wirfst.
IDE neu starten, und das Menue ist da.
Diese Dateien müssen Teil der Arduino-IDE werden, bei mir beispielsweise c:\Program Files (x86)\Arduino-1.8.19\hardware\ArduinoFirmwareRestore\avr\boards.txt und so weiter. Es gibt andere Möglichkeiten für das Verzeichnis hardware, ich packe das eher ans Sketchbook.