Forum: Mikrocontroller und Digitale Elektronik Arduino starten


von R. F. (rfr)


Lesenswert?

Guten Morgen.

Wenn ich mein AVR Studio starte, will Studio eine debug-Plattform 
mitgeteilt bekommen. Ich würde gerne einen Arduino 2560 verwenden, der 
per Bootloader und USB an meinen Rechner angeschlossen ist.

Was muss ich denn da auswählen?


Grüsse

Robert
(Köln: Schneefall, -1.8 °C   Brrr!!)

von Hubert G. (hubertg)


Lesenswert?

Du kannst deinen Arduino nicht direkt über das AVR-Studio mit dem 
Bootloader programmieren.
Du schreibst dein Programm im AVR-Studio für den 2560, kompilierst und 
überträgst dann das *.hex File mittels avrdude oder einfacher XLoader 
http://xloader.russemotto.com/ auf deinen Arduino.

von Thomas K. (techmek)


Lesenswert?

Hallo,
bin ein ziemlicher Frischling was microcontroller und Avr Studio angeht. 
Hab aber eine ähnliche Frage. Zumindest falls ich die Frage oben richtig 
verstanden habe.
Ich habe einen Arduino Leonardo mit Atmel atmega32u4(-au) über usb am 
computer angeschlossen. Mit der Arduino eigenen Programmierumgebung hab 
ich es auch schon geschafft ein bisschen zu experimentieren.
Jetzt wollte ich mal ausprobieren ob ich über AVR Studio (Ver.6) den 
Controller direkt in C programmieren kann.

In AVR wird soweit ich das sehe im Untermenü "Device programming" von 
Tools der Controller eingestellt. Im Menü "Add STK500..." kann ich den 
Port an den er angeschlossen ist auswählen(bei mir COM 13).
Im "device programming" Menü kann ich dann zwar den Anschluß(Treiber) 
STK 500 auswählen, jedoch gibt es im Controller Menü den besagten 
Atmega32U4 nicht.

Die eigentlich Frage: Mach ich etwas falsch oder ist es über den 
direkten Weg nicht möglich den Arduino bzw. konkret diesen Controller in 
AVR einzubinden?

Ich habe natürlich noch vor alles genau zu studieren aber ich wollte 
einfach schon mal im voraus sehen ob die Verbindung besteht ohne 
überhaupt Kenntnisse über das Programm zu haben. Ist nicht Ideal aber da 
hat die Freude mit eine Rolle gespielt.

Grüße Thomas

Freu mich schon mal über Antworten und Hilfe

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Thomas Koppany schrieb:
> Die eigentlich Frage: Mach ich etwas falsch oder ist es über den
> direkten Weg nicht möglich den Arduino bzw. konkret diesen Controller in
> AVR einzubinden?

Die Arduino haben alle einen 'Bootloader' im MC, der es ermöglicht, 
Sketche aus der Arduino Umgebung in den MC zu programmieren. Da das eine 
Arduino Eigenheit ist, ist Studio 6 darauf nicht vorbereitet. Du 
schreibst also dein Programm in Studio 6 und benutzt dann das o.a. 
Hilfsprogramm für Arduino, um das HEX File, das dir AS6 beim Kompilieren 
produziert hat, in den Arduino zu laden.
Wenn du ein Programmer hast, ist das etwas anders. Hier kannst du den 
Arduino direkt per ISP/PDI programmieren. (Dafür ist auf den Arduinos 
der 6-pol ISP Header) Dabei geht allerdings im Normalfall der Arduino 
Bootloader verloren.

von Manni (Gast)


Lesenswert?

Auf + Atmel Studio 6 ist das Buch "Powerprojekte mit Arduino und C"
aufgebaut. (ISBN 9783645651318. Denke, das könnte eine Anleitung für 
Dich sein.

von Thomas K. (techmek)


Lesenswert?

Voreerst dankschön für eure Informationen und Hilfe. Wie gesagt bin ich 
ein Neuling und will euch nicht wegen jeder Kleinigkeit nerven. Solche 
Sachen wie ISP/PDI sind mir unbekannt. Aber der Hinweis das Programm in 
AVR zu schreiben und dann in HEX Form in der Arduino Umgebung zu 
übertragen ist schon mal sehr hilfreich.

Meinst du mit Programmer einfach eine Programmierumgebung für c ?

Auch für den Literatur Hinweis ein Dankeschön.

Grüße Thomas


p.s. zu lernen klein Anzufangen ist manchmal ganz schön schwer zu 
akzeptieren, aber wie ein Arbeitskollege gesagt hat, ich darf nicht 
erwarten in einem Jahr ein Betriebssystem programmieren zu können.

von R. F. (rfr)


Lesenswert?

ISP heisst InSystemProgrammer. Das bedeutet, dass du mit einem 
Programmer den Chip im System programmieren kannst. Einfachster 
Programmer, der mir bekannt ist, ist der USB-Prog. Zu kaufen im Shop 
hier.

Gruss

Robert

von Thomas (Gast)


Lesenswert?

Hubert G. schrieb:
> Du schreibst dein Programm im AVR-Studio für den 2560, kompilierst und
> überträgst dann das *.hex File mittels avrdude oder einfacher XLoader
> http://xloader.russemotto.com/ auf deinen Arduino.

Thomas Koppany schrieb:
> Die eigentlich Frage: Mach ich etwas falsch oder ist es über den
> direkten Weg nicht möglich den Arduino bzw. konkret diesen Controller in
> AVR einzubinden?

Oder du machst so wie der Martin hier ganz schön beschrieben hat:

Beitrag "USBasp unter AVRStudio 5 oder 6 verwenden - Anleitung!"

Arguments soll angepasst werden:

Statt -c USBasp muß -c arduino rein

Gruß
Thomas

von Thomas K. (techmek)


Lesenswert?

Hallo mal wieder,
wollt kurz mal die Frage in den Raum werfen wie das mit dem ISP 
funktioniert. Hab jetzt auch diese besagten 6 pin Anschluß bemerkt und 
auch wie schon beschrieben gelesen das dieser besagte Bootloader 
verloren gehen kann. Wenn ich es richtig verstehe, nachdem was ich im 
Internet gelesen habe, wird über ISP der ATmega32 Chip direkt 
programmiert. Ist das richtig?

Logischerweise heißt das, das ich alles so verwenden kann wie vorher nur 
das diese Arduino Programmierumgebung(Wenn ich richtig verstehe wird sie 
als IDE bezeichnet) nicht mehr nutzbar ist für das Board dafür ich aber 
direkt z.B. eben aus Atmel AVR Studio den Chip programmieren kann.

So wie ich hier gehört habe kann ich nur über dieses ISP gehen wenn ich 
ihn in AVR Studio programmieren möchte. Richtig? Oder gibt es eine 
alternative über vorhandenen USB Anschluß?

Wie wird das Board über den 6 pin ISP Anschluß mit dem PC verbunden?

Danke für eure Hilfe und Geduld.


Und jetzt eine Gute Nacht

Grüße Thomas

von R. F. (rfr)


Lesenswert?

Hallo,

du brauchst einen Programmieradapter. Einfachste Lösung: USB-Prog, im 
Shop dieser Seite zu kaufen. Dieser verfügt über einen usb-Anschluss, 
der an den PC kommt, sowie einige Anschlüsse, die zu den Pins des 
ISP-Anschlusses korrespondieren.

Ein in zB C geschriebenes Programm kann einfach in den Arduino 
programmiert werden. Diesen Vorgang kann man auch beliebig wiederholen. 
Das Programmieren geschieht zB mit AVRDUDE  (Ein PC Programm ). Nach 
einem Programmiervorgang kann man den Arduino nicht mehr püer USB 
Programmieren.

Das kann man erst wieder, wenn man den entsprechenden Boozloader 
programmiert, auch das geschieht mit USB-Prog. Danach kann man dann 
Arduino-Software verwenden, um zu brennen.

Auf das eclipse plugin sei hingewiesen.

von Thomas K. (techmek)


Angehängte Dateien:

Lesenswert?

Hallo,
danke für die Erklärung. Ich bin jetzt soweit das ich anfangen könnte. 
Könnte... Aus dem Geschäft hab ich mir eine AVR Dragon USB Programmer 
besorgt (zusätzlich hat mir ein Kollege einen AVR Butterfly 
Microcontroller geschenkt. funtkionierend).

Der AVR Dragon wird problemlos erkannt. Sowohl in Windows als auch in 
AVR Studio(logischerweise). Anfänglich war mir nicht ganz klar das der 
Arduino über ISP eine externe Stromversorgung benötigt. Ok - erledigt.

Er wird erkannt - ok.
Auf Anraten von Manni hab ich mir auch gleich das besagt Buch  "Arduino 
und C" gekauft und macht auf den ersten Blick auch einen sehr guten 
Eindruck. Wieder ein Lob an Amazon.

Nur mal zu sehen ob alles läuft hab ich mal das erste Programm mit dem 
Blinklicht in AVR (ab)geschrieben. Debuggen läuft an wenn ich starte und 
ein vorheriges Programm das noch von der Arduino eigenen IDE stammt wird 
auch kurz unterbrochen und die LED an Pin 13(bzw. beim Leonardo auch 
onboard) reagiert, aber kurz darauf wird in AVR die auf dem Bild 
gezeigte  Fehlermeldung ausgegeben.

Auch bei der anfänglichen Geräte Auswahl ist es so das der Controller 
gefunden wird, er sich auslesen lässt aber sobald ich das Fenster 
schließe kommt der "Gerät wurde entfernt" Ton von Windows.

Bei dem AVR Butterfly Controller das gleiche. Was mache ich falsch?

Grüße Thomas

Was heist eigentlich erst nach dem ich den Bootloader wieder 
programmiert habe kann ich mit der Arduino Software(IDE) wieder 
arbeiten, konkret  brennen?
Der ganze Satz ist mir klar, um wieder mit IDE zu nutzen muß ich den 
Bootloader neu programmieren, aber das letzte Wort "brennen" ist mir 
nicht ganz eindeutig.
Heist soviel wie in den Chip brennen? so wie den Controller dauerhaft 
programmieren(zumindest bis man ein neues Programm überträgt) ???

Andere Frage - Kann ich ein in AVR Studio geschriebenes Programm zum 
Arduino übertragen, so das der Chip die Programmierung auch nach Verlust 
der Spannung nicht verliert.
Könnte grade dieser Vorgang brennen bedeuten !?

ps: Ich weis ist viel Text aber ich will mein Problem möglichst genau 
Beschreiben.

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Thomas Koppany schrieb:
> aber das letzte Wort "brennen" ist mir
> nicht ganz eindeutig.

Das ist ein alter Begriff, als noch PROMs verwendet wurden. Die 
Betriebsspannung lag bei 5V. Programmiert wurde mit 12,5V; 21V oder 25V 
(soweit ich weiß).

Ein PROM besteht im Grunde genommen aus vielen Sicherungen. Programmiert 
wurde, indem die Sicherugen durchgebrannt wurden.

Daher der Begriff "brennen".

von Thomas K. (techmek)


Lesenswert?

Danke. oha, hört sich ja barbarisch an. Du meinst bestimmt die alten 
PROM´s die oben noch das kleine Glasfensterchen hatten. Oder ? Die man 
mit, ich glaub UV licht, auch löschen konnte??

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Glasfenster hatten die EProms.

Bei EPROMs konnten diese Sicherungen durch UV-Licht wieder "repariert" 
werden. Das "E" in EPROM steht für "eraseable", also löschbar.

ROMs wurden bereits im Herstellungsprozess "programmiert". Dies heißt 
auch "maskenprogrammiert".

PROMs konnten einmalig "gebrannt" werden. Ein Löschen war nicht möglich.
Diese hatten auch kein Glasfenster.

EEPROMs kann man mittels Spannung löschen.

Der Flash im AVR ist ähnlich, nur dass man bei einem EEPROM jede 
Speicherzelle einzeln löschen, bei einem Flash aber nur ganze Blöcke 
löschen (bzw auf 1 setzen, also reparieren) kann.

Alle dieser Speicher verlieren beim Abschalten der Betriebsspannung den 
eingebrannten Inhalt nicht.

Ein RAM lässt sich jederzeit ohne speziellen Löschvorgang überschreiben. 
Jedoch überlebt der Inhalt keine Abschaltung der Betriebsspannung.

von Thomas K. (techmek)


Lesenswert?

Danke,
den größtenteil von dem was du geschrieben hast war mir schon klar(soll 
nicht überheblich klingen). Dann hab ich das verwechselt. Nicht falsch 
verstehen, will echt nicht klugscheißerisch erscheinen. Das mit dem 
einmaligen brennen war mir nicht klar. Allerdings hoffe ich das mir noch 
jemand bei meinem eigentlichen Problem helfen kann. Weist du da 
vielleicht irgendwas?

von Thomas K. (techmek)


Lesenswert?

Jetzt kommt noch dazu das mir in atmel studio angezeigt wird das der 
dragon nicht über isp programmieren kann, stattdessen soll ich 
Programmiermethode in Jtag ändern. Nach den Daten die ich habe kann der 
in isp, jtag, ocd, pdi programmieren.
Bei dem Arduino microcontroller sagt mir atmel studios das die aktuelle 
asf version den chip(mega32u4) nicht unterstützt. Daher kann ich 
scheinbar den arduino(zumindest Leonardo) wohl komplett vergessen. Ich 
hoffe ich täusche mich.
Bin grad ziemlich am Verzweifeln. Zwei Boards, und krieg keines zum 
laufen.

Ich hoffe das ich noch etwas Hilfe bekomme ob ich einfach Pech habe, zu 
blöd bin oder irgendwas mißverstehe bzw. übersehe.

Grüße Thomas
und gute Nacht

von Matthias M. (matthias_m69)


Lesenswert?

Ich habe es in den Antworten nicht gefunden und dachte, ich erwähne es 
mal: die Arduino-Umgebung ist auch "C", sogar "C++". Auch wenn alles 
stark vereinfacht ist, so steckt dahinter doch wider nur gcc... .

von Thomas K. (techmek)


Lesenswert?

kein Problem kannste ruhig erwähnen. Informationen zu erhalten ist ein 
grundsätzlicher vorteil zum überleben. Das mit Arduino und hab ich schon 
etwas vermutet aber wie du selber sagst stark vereinfacht. Wenn dann 
möcht ich schon gern in c  beginnen und nicht "c ultra light" :) .

Wissen ist Macht

von F. F. (foldi)


Lesenswert?

Hubert G. schrieb:
> Du kannst deinen Arduino nicht direkt über das AVR-Studio mit dem
> Bootloader programmieren.
> Du schreibst dein Programm im AVR-Studio für den 2560, kompilierst und
> überträgst dann das *.hex File mittels avrdude oder einfacher XLoader
> http://xloader.russemotto.com/ auf deinen Arduino.

Toller Tipp!!!!
Schon gebunkert. :-)

von Matthias M. (matthias_m69)


Lesenswert?

Nee nee, Arduino ist nicht "C Ultra Light", Arduino ist nur ne 
vereinfachte IDE, die eine simple Verbindung zu den Board herstellt. 
Programmieren tust Du in C++, auch wenn die allgemein veröffentlichten 
Beispiele wie eine Basic Abart aussehen.

Wenn Dir der Editor zu simpel ist, dann kannst Du auch einen anderen 
Editor nutzen.

Also, Arduino IDE ist vollständiges C++. Falls es Dir also nur darum 
geht, in C zu programmieren und du die Ardunioplatine schon hast, dann 
ist das der einfachste Weg.

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
Noch kein Account? Hier anmelden.