Hallo,
auf der Arduino-Seite finden sich Hinweise, wie man einen typgleichen
AVR mit Hilfe eines Arduino per ISP programmieren kann. Aber gibt es
auch die Möglichkeit, aus dem Arduino einen Universal-Programmierer zu
machen? Ich würde gerne mit dem Arduino anfangen, kenn mich aber auch
etwas mit den "normalen" AVRs aus. Ich stelle mir also vor, auf meinem
Rechner mit dem GCC ein Hexfile zu kompilieren und das dann mit dem
Arduino auf den AVR zu bringen.
Weiß jemand, ob es ein entsprechendes Projekt gibt? Ich kenne den
ISP-Programmierer von Thomas Fischl, hab es aber nicht geschafft, diesen
nachzubauen (bzw. nachbauen schon, aber als er dann nicht funktioniert
hat, hab ich es einfach aufgegeben).
Viele Grüße, Philipp
möglich ja...nur ich würde dir da als anfänger ABSOLUT von abraten, denn
nichts ist frustrierender als wenn man seine software nicht in den
controller downloaden kann....daher mein rat: investiere 40€ in einen
originalen AVR ISP MKII - der kann alle gängigen AVRs programmieren und
funktioniert zu 100% im ggs. zu vielen nachbauten.
ansonsten: das ISP protokoll vom atmel ist dokumentiert (in den
datenblättern ganz am ende oder auf der avr website). du kannst dir aber
auch einfach einen beliebigen avr programmer mit verfügbaren quelltext
nehmen und versuchen das auf den arduino zu bringen ... wird einiges an
arbeit für die du definitiv ein oszilloskop (mehrkanal) oder einen
logic-analyzer benötigst!
philipp schrieb:> auf der Arduino-Seite finden sich Hinweise, wie man einen typgleichen> AVR mit Hilfe eines Arduino per ISP programmieren kann. Aber gibt es> auch die Möglichkeit, aus dem Arduino einen Universal-Programmierer zu> machen?
Nein. Jedenfalls nicht so ohne weiteres.
> Ich würde gerne mit dem Arduino anfangen, kenn mich aber auch> etwas mit den "normalen" AVRs aus. Ich stelle mir also vor, auf meinem> Rechner mit dem GCC ein Hexfile zu kompilieren und das dann mit dem> Arduino auf den AVR zu bringen.
Ich verstehe nicht genau, was Du meinst. Willst Du am Ende einen
beliebigen AVR-Controller in einem beliebigen anderen Board
programmieren, mit einer Datei, die mit einem beliebigen anderen
Entwicklungssystem compiliert wurde? Oder soll ein Arduino-Board mit
einer Datei programmiert werden, die nicht mit der
Arduino-Entwicklungsplattform erstellt wurde?
> Ich kenne den ISP-Programmierer von Thomas Fischl, hab es aber> nicht geschafft, diesen nachzubauen (bzw. nachbauen schon, aber> als er dann nicht funktioniert hat, hab ich es einfach aufgegeben).
Den USBASP-Programmer gibt es vom China-Versender glaube ich für 3 Euro
mit 30 Tagen Lieferzeit. Dann brauchst Du noch einen 10-auf-6-Pol
Adapter zum Anschließen und Du kannst die Arduino-Hardware
programmieren, womit Du möchtest.
Im übrigen: Wenn Du schreibst "Ich würde gerne mit dem Arduino
anfangen", dann mache Dich mal frei von der Vorstellung, dass Du einen
"ISP-Programmer" benötigst, um ein Arduino-Board zu programmieren. In
der Arduino-Plattform sind alle Boards mit Controllern bestückt, auf
denen bereits ein "Bootloader" läuft. Dadurch lassen sich Arduino-Boards
aus der Arduino-Entwicklungsumgebung heraus OHNE Programmer
programmieren, einfach über den USB-Anschluss.
Nachteilig daran ist eigentlich nur, dass der Arduino-Bootloader immer
schon ca. 2 KB vom Programmspeicher wegfrisst, so dass Du auf einem
Atmega328-Board ("Uno") dann nur tatsächlich ca. 30 KB Programmspeicher
zur Verfügung hast statt 32 KB.
Du KANNST bei Arduino zwar Programme auch per ISP-Programmer hochladen,
um beispielsweise volle 32 KB Programmspeicher auf einem Atmega328
nutzen zu können statt nur 30 KB. Aber solange Du die
Arduino-Entwicklungsumgebung zum Programmieren eines Arduino-Boards
verwendest, brauchst Du definitiv KEINEN ISP-Programmer.
Hallo Andi,
vielen Dank für die Antwort! Auf dem Speicher hab ich auch noch das
STK500v2, allerdings hab ich keinen seriellen Anschluss mehr am Rechner.
Es scheint ja aber USB-Adapter zu geben, mit denen das (mit etwas Glück)
funktioniert. Und damit kann ich dann endgültig ISP programmieren. Du
hast auch völlig Recht, wenn man sich nicht auf den Programmiervorgang
verlassen kann, dann verschwendet man schnell mehr Zeit als so den
Gegenwert eines fertigen Adapters.
Gruß, Philipp
@Jürgen: Meine Frage ist vielleicht missverständlich. Ich will auf den
Arduino-Zug aufspringen, hab aber noch diverse "andere" AVRs auf dem
Speicher liegen und es ist nicht auszuschließen, dass ich mal wieder in
Versuchung komme, völlig unabhängig vom Arduino damit was zu machen.
Momentan hab ich aber keine funktionierende Programmierlösung (STK500v2,
aber keinen seriellen Anschluss und keinen Adapter), und die Frage war
eigentlich nur, ob man aus dem Arduino sowas wie den USBASP machen kann
(und es sowas fertig gibt).
Gruß, Philipp
philipp schrieb:> auf der Arduino-Seite finden sich Hinweise, wie man einen typgleichen> AVR mit Hilfe eines Arduino per ISP programmieren kann. Aber gibt es> auch die Möglichkeit, aus dem Arduino einen Universal-Programmierer zu> machen?
Vielleicht hast du was missverstanden? Mit Hilfe des Arduino Boards und
passender Firmware drauf kannst du es als ISP für eine breite Palette an
AVRs einsetzen.
Siehe z.B. dieses Projekt:
http://www.arduino.cc/playground/Code/MegaISP
Damit wird dein Arduino zum Universal-ISP für AVRs.
So hatte ich das früher mal gemacht:
Es war aber etwas nervig, bis ich unter Linux alles (z.B. das veraltete
und gepatchte avrdude) richtig zum Laufen bekommen hatte.
www.geocities.jp/arduino_diecimila/bootloader/index_en.html
Und noch was für die Arduinoplattform:
arduino.cc/en/Tutorial/ArduinoToBreadboard
@Tomm: Super, genau sowas hatte ich gesucht! Da aber auf der Seite doch
einige "..., aber ..." und " ... funktioniert nicht mit ... " stehen,
werd ich es zwar mal ausprobieren wenn mein Arduino da ist, mir aber
über kurz oder lang doch einen richtigen Programmer zulegen oder mein
STK500 fit machen. Ich glaube, was ich gelesen hatte, war, wie man es
schafft, mit dem Arduino einem anderen (typgleichen) AVR den
Arduino-Bootloader aufzuspielen, damit man diesen dann separat mit der
Arduino-Umgebung priogrammieren kann (auch interessant, aber nicht ganz
was ich wollte).
Vielen Dank für eure Antworten!
Gruß, Philipp
philipp schrieb:> Auf dem Speicher hab ich auch noch das> STK500v2, allerdings hab ich keinen seriellen Anschluss mehr am Rechner.> Es scheint ja aber USB-Adapter zu geben, mit denen das (mit etwas Glück)> funktioniert.
Also ich habe mein STK500 schon mit verschiedenen USB_RS232 Adapter
probiert, funktionierte immer. Ich denke mal du verwechselst das mit den
Bit-Bang-Programmer und PonyProg, dort funktioniert fast nichts.
Das einzige Problem das es gibt ist, wenn dem Adapter eine zu hohe
COM-Adresse zugeordnet wird. Das lässt sich aber meist leicht lösen.
philipp schrieb:> Es scheint ja aber USB-Adapter zu geben, mit denen das (mit etwas Glück)> funktioniert. Und damit kann ich dann endgültig ISP programmieren.> hab aber noch diverse "andere" AVRs auf dem> Speicher liegen und es ist nicht auszuschließen, dass ich mal wieder in> Versuchung komme, völlig unabhängig vom Arduino damit was zu machen.
Such im Netz mal nach "guloboard", denke, das hilft dir weiter,
möglichst viele verschiedene AVRs zu programmieren. Weiß ja nicht, was
du alles für Typen auf deinem Speicher findest. :-)
Marius schrieb:> Ich habs mit meinem Arduino nicht hinbekommen.
Das Thema taucht hier ja regelmässig auf. Immer die gleichen Antworten,
die selben Links und irgendwann läuft der Thread sich tot.
Wissen alle nur, daß das irgendwie gehen soll. Aber hat das überhaupt
schon mal jemand hinbekommen?
mfg.
Ich habe das schon mit diversen Atmel Dinger gemacht.
Das Prinzip geht so.
- Atmel aufs Breadboard
- MISO/MOSI/VCC/GRD/RST Pins des Atmel mit dem Arduino (nach
Beschreibung!) verbinden
- arduino-tiny unter 'hardware' ins Sketch-Verzeichnis kopieren.
http://code.google.com/p/arduino-tiny/downloads/list
- Sketch in den Adruino laden (unter Beispiele/Adruino ISP)
- Atmel Programm schreiben,
- Bei Tools/Beard das entsprechendes 'Board/Atmel' einstellen
- in den Atmel hochladen per Menupunkt 'Arduino-ISP'
Geht eigentlich ganz gut.
Nachteil ist dass relativ wenige Atmels unterstützt werden. (25er, 44er,
2313er Reihe)
Und von der Arduino Bib wird (noch) nicht die gesamte API unterstützt
Hat ein bisschen was nerdiges. Nach dem Motto, mal schaun was man so
alles machen kann ;)
philipp schrieb:> @Jürgen: Meine Frage ist vielleicht missverständlich. Ich will auf den> Arduino-Zug aufspringen, hab aber noch diverse "andere" AVRs auf dem> Speicher liegen und es ist nicht auszuschließen, dass ich mal wieder in> Versuchung komme, völlig unabhängig vom Arduino damit was zu machen.> Momentan hab ich aber keine funktionierende Programmierlösung (STK500v2,> aber keinen seriellen Anschluss und keinen Adapter), und die Frage war> eigentlich nur, ob man aus dem Arduino sowas wie den USBASP machen kann> (und es sowas fertig gibt).
Den USBASP-Programmer vom China-Versender gibt es für 3 Euro.
Das billigste Arduino Uno "kompatible" Board kostet 12 Euro.
Welche Controller der USBASP-Programmer unterstützt, sieht man hier
unter "Supported Devices":
http://www.bestelecs.com/download/usbasp/USBAsp_User_Guide_eBay.pdf
Ich frage mich, weshalb man ein 12 Euro "teures" Gerät dazu verwenden
möchte, um mit viel Frickelei und Kosten für zusätzliche Bauteile dann
am Ende und mit vielen Fragezeichen vielleicht ein 3 Euro "billiges"
Gerät in seiner Funktion nachzubilden. Das dann vielleicht nur ein bis
zwei der Atmegas programmieren kann, die auf Arduino-Boards verbaut sind
plus vielleicht einen ATTiny Typen. Was für ein Gefrickel!
Wenn Deine AVR-Controller auf dem Speicher in der "Supported Devices"
Liste vom USBASP stehen, würde ich jedenfalls eher in Erwägung ziehen,
die 3 Euro für so einen USBASP ZUSÄTZLICH zur Anschaffung eines
Arduino-Boards in Erwägung zu ziehen.
Das wäre bei einem Einstieg in die Arduino-Plattform ja spätestens dann
sinnvoll, wenn Du die letzten 2 KB Programmspeicher belegen möchtest,
die sonst der Bootloader belegt. Oder wenn Du die Arduino-Hardware nicht
mit der Arduino-Entwicklungsumgebung programmieren möchtest.
Jürgen S. schrieb:> Welche Controller der USBASP-Programmer unterstützt, sieht man hier> unter "Supported Devices":> http://www.bestelecs.com/download/usbasp/USBAsp_User_Guide_eBay.pdf
Die Geräte-Liste ist aber ausm Museum, oder? Da fehlen alle AVR, die
etwas neuer als 3 oder 4 Jahre alt sind.
Außerdem: bei den USBASP immer darauf achten, dass die neueste
Firmware drauf ist! Sonst kannst du einige AVR gar nicht
programmieren, wenn sie auf einem niedrigeren Takt laufen. Das heißt, du
musst du den Programmer erst einmal upgraden, und dafür brauchst du
einen zweiten Programmer.
Ansonsten kann ich deinen Post aber nur unterstützen. :-)