Hallo, Ich möchte gerne ein Programm auf das Arduino UNO (ATmega328P) mit Hilfe des AVR Studios laden. Den Treiber habe ich installiert und der PC erkennt das Board (siehe Anhang) Wenn ich "Display The Connect Dialog" anklicke, erscheint das untere Bild im Anhang. Ich gehe also davon aus, dass das Programm sowohl das Board (integrierte Bootloader STK500) und den COM-Port erkennt. Wenn ich allerdings Connect anklicke, kommt jedes Mal "Connect failed". Ich habe hier im Forum einzelne ähnliche Berichte bereits gefunden. Allerdings haben sie mir nicht weiter geholfen. Das generieren eines Hex-files und dann das rüberschieben mit avrdude, war immer der Alternativ-Ansatz bzw. -Lösung. Ich denke aber, das viele das gleiche Problem haben und es wäre schön, wenn mir jemand weiterhelfen könnte. Bestimmt hat bzw. hatte der ein oder andere schon die gleichen Schwierigkeiten. Grüße, Nico
Hallo Roland, danke für deine schnelle Antwort! Auf dem Atmega befindet sich doch ein Bootloader, der dem Computer vorgibt ein STK-500 zu sein. Dann müsste es doch via AVR Studio auch gehen. Grüße
Ronald S. schrieb: > Arduino und AVR Studio können nur via ISP zusammenarbeiten Das funktioniert auf jeden Fall. Der Bootloader des Arduino verwendet nur das STK500 Protokoll zum Flashen. Damit wird aber kein STK500 emuliert. mfg.
Hi Thomas, hast du mir vielleicht ein Tipp oder Hinweis, was das falsch läuft oder was ich ändern muss? Ich häng total in der Luft. Bin für jeden Hinweis dankbar! VG
Mir ist soeben noch aufgefallen, das unter Tools, das STK500 gar nicht aufgelistet ist. Nur wenn ich "Display The Connect Dialog" aufrufe, wir das STK500 aufgelistet. Keine Ahnung, ob das vielleicht ne Rolle spielt...
Ein STK500 ist ein In-System-Programmer. Damit kannst du, logisch, das Flash programmieren. Aber auch Fuses und Lockbits setzen, das Signaturebyte auslesen, die Speicher löschen. Das wird am Controller über die SPI-Schnittstelle gemacht, die in Verbindung mit Reset zu einer speziellen Programmierschnittstelle wird. Ein spezieller Controller auf dem STK500-Board setzt das entsprechend um. Deshalb kann man mit dem STK500 auch nagelneue Chips verwenden. Im Arduino ist ein Bootloader integriert, das ist ein Programm, das in einem speziellen Bereich des Flashs abgelegt ist, mit dem man nur flashen kann. Nichts anderes. Die sogenannte STK500-Kompatibilität bezieht sich ausschliesslich auf das Protokoll mit dem man mit dem Arduino, besser gesagt dem Bootloader des Arduino, kommuniziert. Hinzu kommt noch, dass der Arduino nach dem Reset mit dem Bootloader startet und dann eine kurze Zeit, einige ms, wartet, ob ein Connect vom Arduino Uploader erfolgt. Ist dies nicht der Fall, springt er im Flash auf Adresse 0x0000 und führt ganz normal das Programm aus. Das ist wie beim PC, wo du beim Booten ein paar Sekunden Zeit hast F2 oder Entf zu drücken, um ins Bios zu kommen. Sonst startet das Betriebssystem. Ein Reset wird beim Arduino per Hardware über eine Steuerleitung der virtuellen Schnittstelle gemacht. Das macht das AVR-Studio aber nicht. D.h. das AVR-Studio bekommt nicht mal den Bootloader präsentiert, da der ja nur ein paar ms wartet, ehe er die Anwendung startet. Zusammengefasst: 1. Der Bootloader läuft gar nicht. 2. Der Bootloader kann nur Flashen und hat nicht die ganze Funktionalität vom STK500. mfg.
Irgendwo meine ich gesehen zu haben, dass man mit Hilfe von avrdude ein HEX File zum Bootloader des Arduino übertragen kann. Damit wäre es also möglich, mit AVR-Studio das Hex-File zu erzeugen und dann mit Hilfe von ARV-Dude zu transferieren. Leider habe ich mir die Seite nicht gemerkt, vielleicht kennt von euch jemand die Anleitung.
> Zusammengefasst: 1. Der Bootloader läuft gar nicht. 2. Der Bootloader > kann nur Flashen und hat nicht die ganze Funktionalität vom STK500. Ok, im Grunde wäre es also das Beste, wenn ich mir ein ISP-Programmierer, wie etwa der AVR ISP mkII anschaffe. Den gibts ja schon für ca. 36€. Im Grund schließe ich dann mein Programmer an mein USB-Anschluss vom PC und an den ISP-Anschluss auf meinem Board an. Gehe in AVR-Studio suche mir die Plattform AVRISP mkII aus und klicke auf USB. Gebe dann das Input-Hexfile in den Flash. Im Grunde die beste Möglichkeit den Arduino mit einem C-Programm bzw. AVR-Studio zu flashen, oder?! Ich muss den Bootloader also etwas losgelöst von dem STK500 sehen. Nur weil Arduino das STK500-Protokoll verwendet ist es nich gleich ein STK500. Aus diesem Grund klappt das auch nicht mit dem AVR-Studio. Die Arduino IDE löst also ein Reset aus, dass das Flashen über den USB ermöglicht. Das AVR-Studio hingegen macht das nicht. Aus diesem Grund benötige ich hier ein externen Programmer,der das macht, oder?! Irgendwie hab ich das noch nicht so richtig verstanden. Ich kann auch ein Hex-file mittels AVR-Studio generieren und dann mit avrdude übertragen. Das mit dem Programmer würde mir allerdings besser gefallen. siehe blog.elenika.net >Using Arduino as an AVR development board >Once you have the HEX file you have to use avrdude in the following way: >avrdude -p m328p -P com10 -c arduino -b 57600 -F -u -U >flash:w:arduino.hex >The above command uploads the program to the Arduino Microcontroller, >making use of the Arduino bootloader. >You can change the serial baud rate (-b), the serial port (-P), the micro >model (-p) and the rest of the options according to your specific case. >There seemed to be an attempt of writing a plugin for AVR Studio to >program the Arduino straight from there but it does not seem to be >following up. . . . VG
Nico schrieb: > ermöglicht. Das AVR-Studio hingegen macht das nicht. Aus diesem Grund > > benötige ich hier ein externen Programmer,der das macht, oder?! > > Irgendwie hab ich das noch nicht so richtig verstanden. Entweder eine reinen Programmer, AVRISP MKII. Vorsicht bei den ebay-Angeboten. Das ind meistens nachgemachte. Oder ein echtes STK500. Da kannst du auch den Aduino anschliessen und von da aus flashen und einstellen. Oder du benutzt das Board zum rumspielen oder was auch immer. Preislich dazwischen liegt dann noch der AVR Dragon. Und ganz oben drüber der JTAGICE. In allen Fällen brauchst du den Bootloader nicht mehr. Wird beim ersten Flashen ohnehin gelöscht. Den kannst aber jederzeit wieder draufspielen, dann ist das wieder ein normaler Arduino. Was alle vier ausmacht ist, dass du direkt vom AVR-Studio flashen kannst, mit dem Dragon und JTAGICE sogar debuggen. Das ist das, was Atmel u.a. im Angebot hat. Natürlich gibt es dann noch diverse Third Party Produkte. Bin ich persönlich allerdings kein Feund von. mfg.
Hi Thomas, danke für deine Antworten, die haben mir jetzt wirklich weiter geholfen und mich in die richtige Richtung gelenkt. Dann werde ich mich mal ran halten:-) Bis dann und schönen Abend noch!
Hallo, ich hatte mich auch schon einmal damit beschäftigt das Arduino-Board über den Bootloader aus dem AVR-Studio zu programmieren. Aus Zeitgründen habe ich es aber ersteinmal beiseite gelegt. Aber ich habe mir folgendes überlegt: Man kann man im AVR-Studio über "Tools" -> "Coustomize..." -> "Tools" AVRDUDE mit den dazugehörenden Parametern einbinden. Ich hatte leider nicht die Zeit mich mit den Parametern und der Einbindung zu beschäftigen. Falls Jemand damit weiterkommt, dann gebt bitte eine Rückmeldung. Gruß Pinoccio
Gerade gefunden: es gibt sogar hier im MC-Net einen Artikel dazu: http://www.mikrocontroller.net/articles/AVRDUDE#AVRDUDE_mit_Arduino_Bootloader_benutzen
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.