Mega 2560 mit AVR Studio flashen?

Hallo zusammen,

hier ist ein neuer Besitzer eines Arduino Mega 2560!

Als solcher habe ich heute schon meine ersten erfolgreichen Gehversuche mit der Arduino IDE gemacht und verschiedene Sketches (oder heißt es Sketche?) über USB und den Bootloader in den Mega 2560 geladen. Läuft soweit alles prima!

Da ich in Zukunft aber lieber mit dem AVR Studio als mit der Arduino IDE arbeiten möchte (als jemand, bei dem schon seit 25 Jahren jedes C-Programm ein main() hat), habe ich eine Frage:

Hat jemand von euch schon erfolgreich aus dem AVR Studio Programme zum Mega2560 über die USB-Schnittstelle und den Bootloader übertragen? Oder muss man dafür AVRDude von der Kommandozeile aufrufen? Bei Tante Google findet man dazu ja verschiedenes, aber nix genaues! Speziell zum Mega 2560 mit dem geänderten USB-Chip gibts es da anscheinend noch nicht so viele zuverlässige Informationen.

Ach ja, einen Hardware-Programmer als Alternative wollte ich mir eigentlich nicht kaufen oder basteln, wenn es auch anders geht.

Vielen Dank im Voraus für eure Informationen.

Gruß Wolfgang

Der Arduino hat eine main() Funktion.
da steht drin:

#include <WProgram.h>

int main(void)
{
	init();

	setup();
    
	for (;;)
		loop();
        
	return 0;
}

unter ...\hardware\arduino\cores\arduino\main.ccp
:wink:
Grüße Uwe

Uwe, danke für den Hinweis. Aber mir war schon bekannt, dass auch ein Arduino-Sketch ein main() hat/haben muss :wink:

Trotzdem mag ich die Arduino-IDE nicht. OK, ich bekenne: ich habe seit mehr als 10 Jahren mit MS Visual Studio entwickelt und da ist doch der Unterschied etwas groß.
Ich hoffe, dass man tolerant ist und mich wegen dieser Einstellung in diesem (Arduino-)Forum nicht lyncht!

Vielleicht kann ja trotzdem noch jemand was zu den Erfahrungen des Flashens über den neuen USB-Chip/Bootloader beim Mega 2560 berichten.

Gruß
Wolfgang

Hallo,
ich habe selber plötzlich Probleme beim flashen meines neuen Mega´s. Habe das auch hier gepostet. Was mich aber wundert ist die Tatsache, dass man einen Arduino scheinbar doch mit AVR-Studio programmieren kann. Ich bin selber Anfänger (seit ca. 1 1/2 Jahren) und hatte auf diese Frage die Antwort bekommen, das ein Arduino nicht mit AVR-Studio kann. Wegen Unterschieede C zu C++. Ich habe das so hingenommen (Anfänger halt), und mich durch eine Menge Tutorials gequält, und schließlich Eclipse als IDE gewählt. Ging echt gut.
Da ich mir aber einen AVR Dragon zugelegt habe, würde ich gerne mit AVR-Studio zusammen arbeiten. Hier sind wohl die Debug-Möglichkeiten einfacher als in Eclipse. Ist das so, wenn ja, gibt hierzu Anleitungen?
Gruß aus leverkusen
Willi

Die Arduino Bootloader sind zwar STK500 kompatibel, funktionieren aber nicht direkt mit dem AVR-Studio zusammen. Unter anderem weil der Bootloader sofort beendet wird, wenn nicht jede halbe Sekunde neue Befehle/Daten gesendet werden.
Man kann aber AVRDude vom AVR-Studio aus aufrufen, um das entsprechende Programm auf den Arduino zu flashen. AVR-Studio -> Tools Menü -> Customize... -> Tools
Die Parameter für AVRDude findet man hier http://www.watterott.net/kb/arduino

Gruß
Andreas

Danke für den Hinweis, wie ich AVRDude in das AVR Studio integrieren kann. So in etwa hatte ich es mir vorgestellt.

In der Zwischenzeit habe ich ich mir schon geholfen, indem ich AVRDUDE von der Kommandozeile aus aufgerufen habe. Das mit der direkten Übertragung der Datei aus AVR Studio habe ich auch nicht hinbekommen.

Zuerst hatte ich dabei noch ein paar Schwierigkeiten: AVRDude hat beim Verifizieren (Lesen des gerade gebrannten Programms) jedesmal mehrere Checksum-Errors bei der STK500V2-Lesefunktion gemeldet, obwohl das Programm anscheinend richtig gebrannt wurde und auch lief. Aber man ist natürlich bei so etwas sehr verunsichert!

Dies scheint damit zusammenzuhängen, dass ich alles in einer virtuellen Maschine (VMWare) mit Windows 7 laufen lasse. Bei Betrieb unter nativem Windows 7 treten die Fehlermeldungen nicht auf. Mal sehen, ob man da noch was gegen machen kann. Vielleicht wenn man in der virtuellen Maschine stattdessen Windows XP installiert?

Prinzipiell sehe ich die ganze Sache mal als gelöst an.

Danke an alle, die dazu beigetragen haben.
Wolfgang

Ups, da muss ich mich doch nochmal melden.

Gibt es bei dem Aufruf von AVRDude über AVR Studio -> Tools Menü -> Customize... (wie von Andreas beschrieben) eigentlich inzwischen die Möglichkeit, beispielsweise den Namen des .HEX-Files über einen Platzhalter (z.B. $(HEXFILE) ) aus dem aktuellen Projekt anzugeben?

Oder muss ich z.B. mit einer .BAT-Datei arbeiten, die ich über MAKEFILE jedesmal neu schreibe?

Irgendwelche Infos/Tipps?

Wolfgang

Wenn Du eh AVR Studio nimmst, dann trete den Bootloader doch einfach in die Tonne und nehme einen ISP. Ein AVR ISP MK II kostet so um die 30 Euro und Klone gibt's für die Hälfte. Dafür flashst Du danach schneller und hast ein bischen mehr freien Speicher. Sogar die Arduino IDE kann ohne Bootloader flashen wenn ein ISP da ist und man die Konfiguration entsprechend anpasst.

Das alles ist das Gefrickel mit dem Bootloader nicht wirklich wert.

Ich bevorzuge den MKII. Im Gegensatz zu Clones ist bei dem absolut sicher, daß er grundsätzlich mit allen Tools klarkommt. Ausnahme: Ubuntu mit defekten USB Treiber (Ubuntu 8) und Taktfgrequenzen unter 4kHz. Beides eher sehr selten.

Gruß, Udo

Hallo Udo,

ich wollte mir die ca. 40 Euro (incl. Versand) für den AVRISP MK2 eigentlich sparen. Für mich persönlich hat die Sache mit dem Bootloader eigentlich einen gewissen Charme: Programm in der IDE compilieren, Arduino über USB anstöpseln (muss man wegen der 5V ja sowieso) und auf der Stelle brennen. Finde ich gut.
Und ich glaube, der zusätzliche Speicher durch den freigewordenen Bootloader ist bei einem Mega 2560 nicht so das große Thema.

Ich habe zwar noch einen 50 Euro-Geschenkgutschein für Amazon, aber die bieten so etwas nicht an.

Egal, danke trotzdem.
Wolfgang

Wieso 40 Euronen? Guckst Du hier:
http://de.rs-online.com/web/search/searchBrowseAction.html?method=getProduct&R=6962563.

28,53 Euro Versandkostenfrei.

Und RS liefert trotz gehörter gegenteiliger Behauptung sehr wohl auch an Privatleute.

Gruß, Udo

Hallo Udo,
ich hatte das mit dem Preis und den entfallenden Versandkosten bei Online-Bestellung schon mal gesehen.
Kommt bei RS nicht noch die MwSt dazu, die Privatmenschen nicht als Vorsteuer erstattet bekommen? Macht 33,95.

Wolfgang

Hallo Wolfgang,

wie wäre es mit diesem hier?

Ebay.de:
"Light USB ISP Programmer für ATMEL AVR, ATmega, ATtiny"

runde 16 Euro plus 1,99 Versand

Gruß
Manfred

Danke an alle für die Tipps. AVRISP MKII ist bestellt.

Gruß Wolfgang

Hallo!
Hat jemand mal den USB-Chip, der ja an sich ein kleiner Leonardo ist, mit dem ArduinoISP-sketch beladen und die Pinne verbunden (MISO, MOSI, SCK, Pin-X an Reset vom 2560) ?
Also, ich habe kein Eagle greifbar und weiß nicht, welchen Aufwand es darstellte...
Aber benutzt habe ich das öfter, und man kann es dann auch schön in AtmelStudio6 einbinden, siehe

http://forum.arduino.cc/index.php?topic=123267.0
und
http://www.engblaze.com/tutorial-using-atmel-studio-6-with-arduino-projects/

Dann kann ich zwar nicht debuggen, den 2560 aber ohne Bootloader programmieren.

Achtung bug in AS6: das Studio hat im Dialog / dem Aufruf "external Tools" seine Pfade sonst wo, aber nicht in dem Verzeichnis, wo man per "inital directory" gesagt hat, er solle da cd hin machen vor Aufruf des externen Befehls, hat ein Mitarbeiter in einem youtube-Tutorial gesagt, so lapidar nebenbei, was mich einige Stunden gekostet hat... Und einige Updates am Studio haben da ran auch nix geändert. Deswegen zickte da schon öfter was im Studio.

Also absoluter Pfad zum Programmier-Befehl, der ein simples Batch sein kann nach Windows-Standards. Oder jedes andere Skript, was man halt beherrscht.

Unter Windows .bat ist die Rettung eine Variable, die den Pfad zum gerade ausgeführten .bat selber beinhaltet, dann habe ich avrdude einfach noch mal ins selbe Verzeichnis und fertig.
%~dp0 oder so hat schon \ am Ende mit drinne.
Das braucht man für den micro/leaonardo, um den per bootloader direkt zu programmieren, wenn kein Reset-Knopf gedrückt werden soll zum passenden Zeitpunkt. Automatisch reset geht mit einer "Fehlkommunikation" mit Baudrate 1200, die dann mit Timeout nach einer Sekunde abgebrochen wird.
Ins bat kommt dann einmal avrdude mit Baudrate 1200, dann irgendein wait bzw. waitfor, dann der eigentliche Programmierbefehl mit allen Argumenten %*%.

Die "Argumente" im Dialog "external command" im Studio bekommt man von Arduino, wenn man beim Programmieren avrdude "verbose" berichten lässt, gibt es ein Häkchen in den Optionen der Arduino-Oberfläche für.

Viel Erfolg!
Gruß
Andi

batch so in etwa

rem Open AtmelStudio -> Tools -> External Commands -> New (name it 32U4 micro pro DEBUG for example)
rem _COMMAND example: this bat file (please adapt paths to your place of :wink:
rem C:\Program Files (x86)\Atmel\AVRdude\arduino_32u4.bat
rem _ARGUMENTS:(please look up COM port Win assigned to your Arduino Board, Win-E->SystemProperties->DeviceManager
rem -patmega32u4 -cavr109 -PCOM5 -b57600 -D -Uflash:w:"$(ProjectDir)\Debug$(ItemFileName).hex":i

"%~dp0avrdude.exe" -patmega32u4 -cavr109 %1% -b1200 -n

"%~dp0\avrdude.exe" %*%

Hallo,

bei mir wollte RS einen Gewerbeschein sehen, Bestellung storniert. Und RS zeigt nur Nettopreise an.
Es gibt aber einen ähnlichen Shop wo man rein privat bestellen kann.
https://www.hbe-shop.de/ Das ist Farnell für Privatleute.

Vom AVR ISPmkII scheint es nur noch Restposten im Handel zu geben. Bei Reichelt ist der schon raus.

Hallo,

wegen AVR Studio und/oder Visual Studio. Installiert doch noch das Plugin
http://www.visualmicro.com/page/Arduino-Visual-Studio-Downloads.aspx
und gut ist. Das nimmt viel Einstellarbeit ab, man kann, muss nicht, im gewohnten Arduino Slang schreiben und auch mit dem mkII über ISP flashen.

Hallo liebe Leute,
ich habe momentan ein ähnliches Problem mit AVR Studio. Über ein Tutorial habe ich die nötigen Voreinstellungen gemacht. Nun, beim Versuch den Chip zu flashen, tritt allerdings folgendes Problem auf:
Der ATMega2560 lässt sich in der Suchleiste nicht auffinden. Bei den vorherigen Einstellungen habe ich diesen allerdings eingebunden.
Habt ihr eine Idee?

Hallo,

hast du den STK500 als Programmer? Welche AS Version?

Wenn der 2560 nicht auftaucht, dann fehlt dir irgendwie die Toolchain dafür. Kann aber eigentlich nicht sein.
In welchen vorherigen Einstellungen? Die Liste hier hat nichts mit Deinem Code zu tun. Oder der STK500 kann keinen 2560 programmieren und wird rausgefiltert. Denn da fehlt nicht nur der 2560 in der Liste.

Ja, korrekt ich benutze den STK500 als Programmer. Also zumindest habe ich diesen ausgewählt. Ich arbeite mit Atmel Studio 6.2.156 - Service Pack 2. Unter "Device Programming" --> Tool: "Simulator" taucht der ATmega2560 auf. Sobald ich den STK500 anwähle, ist dieser allerdings nicht mehr zu finden.
Ich muss dazu sagen, dass ich bisher eine kurze Einführung mit der Arduino Software hatte. Da ich aber in Zukunft auch andere Mikrocontroller programmieren möchte, möchte ich gerne direkt mit Atmel Studio anfangen, damit ich mich direkt an die Software gewöhnen kann.

Vielen Dank schonmal!

Auch wenn der beitrag schon älter ist, ich habe den 2560 mit dem STK500 programmiert. Das ging ohne Probleme.