Forum: Mikrocontroller und Digitale Elektronik Rund um das STK500


von Martin M. (silent_max)


Lesenswert?

Hallo liebe Gemeinde.

Nachdem ich mich jetzt schon länger mit der C++ Programmierung 
beschäftige, wollte ich mehr in die µC Gegend abbiegen, da ich unter 
anderem 2010 ein STK500 bekommen habe.

Da ich vor einem Jahr ein Netbook zu Weihnachten bekommen habe, möchte 
ich über das Netbook nun µC programmieren. Übermorgen möchte ich mir 
einen USB-to-RS232 Adapter von FTDI kaufen, um das STK Board auch in 
Betrieb nehmen zu können. Zwar habe ich schon einen von Logilink, aber 
der funktioniert nicht richtig, zumindest wird ist im Gerätemanager ein 
gelbes Ausrufezeichen davor.

Nun hätte ich doch noch ein paar Fragen an euch...

-> Auf dem Board ist der 8515. Ist der zum Einstieg geeignet oder eignet 
sich ein µC der ATtiny Reihe?
-> Stimmt es, dass man ab der 5er Version des AVR Studios µC auch in C++ 
programmieren kann?
-> Gibt es irgendwo ein Tutorial über das AVR Studio 5?
-> Läuft eigentlich unter Windows 7 64Bit das STK500 mit der 5er Version 
des AVR Studios?
-> Welche µC kann ich denn mit dem STK500 Board programmieren?
-> Was sind denn gute Anfängerprojekte, um in die µC Programmierung 
einsteigen zu können?
-> Es sind hier im Forum gute Anfängertutorials bzgl. AVR µC. Welche 
Sprache ist denn besser geeignet, um einen µC zu kapieren, Assembler 
oder C/C++??
-> Bei der Recherche über µC habe ich oft etwas davon gelesen, dass man 
bei einem geschriebenen Projekt erst eine Hex-File erzeugen muss, bevor 
man das Projekt auf den µC zu spielen. Stimmt das? Falls ja, wie erzeugt 
man das Hex-File?

So ... das war es für das erste.

Vielen Dank für die Antworten im Voraus.

Gruß

Max

von HildeK (Gast)


Lesenswert?

Ich kann nicht alle Fragen beantworten und leider muss ich mich auch 
noch zu den Anfängern zählen :-(.

Martin Müller schrieb:
> -> Auf dem Board ist der 8515. Ist der zum Einstieg geeignet oder eignet
> sich ein µC der ATtiny Reihe?
Ja, schon. Es sind einfach mehrere Ports vollständig zur Verfügung, was 
bei den Tiny mangels Pincount weniger der Fall ist. Wenn du später für 
ein Projekt einen anderen Controller verwendest, dann musst du dich 
sowieso mit dessen HW-Gegebenheiten und seinem Programmiermodell extra 
befassen.

> -> Welche µC kann ich denn mit dem STK500 Board programmieren?
Welche µC direkt unterstützt werden, steht im Handbuch. Darüber hinaus 
kann man natürlich auch das Programmierkabel an eigene HW stecken.

> -> Was sind denn gute Anfängerprojekte, um in die µC Programmierung
> einsteigen zu können?
Ich habe anfangs die Beispiele hier im Forum angeschaut und umgesetzt - 
auch auf andere AVR-Typen. Dann so Dinge, wie Treppenhausautomat, 
Entprellschaltung, PWM usw. ausprobiert.

> -> Es sind hier im Forum gute Anfängertutorials bzgl. AVR µC. Welche
> Sprache ist denn besser geeignet, um einen µC zu kapieren, Assembler
> oder C/C++??
Die einen sagen so, die anderen anders. Mit Assembler lernst du sehr 
schnell die HW-Struktur (Register, Ports etc.) deines Controllers. Ich 
habe C genommen, weil ich das früher schon mal verwendet hatte. Das 
AVR-Studio gibt dir die Möglichkeit zu sehen, was aus den C-Zeilen für 
Assemblerbefehle generiert werden. Und da sieht man auch schnell, dass 
man es in Assembler direkt möglicherweise nicht viel effizienter 
hinbekommen hätte. Ich zumindest hätte wesentlich mehr Zeit gebraucht 
und höchstens ein paar wenige Byte Programmplatz gespart.

> -> Bei der Recherche über µC habe ich oft etwas davon gelesen, dass man
> bei einem geschriebenen Projekt erst eine Hex-File erzeugen muss, bevor
> man das Projekt auf den µC zu spielen. Stimmt das? Falls ja, wie erzeugt
> man das Hex-File?
Das wird in dem AVR-Studio quasi automatisch mit erledigt - insbesondere 
dann, wenn du über das Studio und das STK500 deinen Ziel-µC direkt 
programmieren willst. Über den Programmierdialog wird dann das HEX-File 
ins Device geladen. In deinem Projektverzeichnis entstehen diverse 
Files, so auch der Makefile.
Erst wenn du mit anderen Programmiertools in der Ziel-HW programmieren 
willst, wird der HEX-File benötigt, der aber im Studio nach einem Build 
erzeugt wurde.

Ich hoffe, ich war jetzt nicht ganz daneben. Wenn du von den Profis hier 
weitere Hinweise erhältst, sind die sicherlich zutreffender.

von Peter R. (pnu)


Lesenswert?

Da hättste ruhig die Fragen nummerieren können, von 1 bis (fast) 
unendlich.

Der 8515, die atinys und die atmegas haben fast den gleichen 
Befehlssatz. Unterschiede bestehen eigentlich nur in der Ausstattung mit 
Hardware: interner Oszillator, ja oder nein, wieviel RAM, EEPROM, 
wieviele Zähler (timer0,1,2?)obUART ja oder nein ....

direktes Tutorial für Studio5? weiß ich nicht, ich arbeite nur mit 
Studio4, das ist übersichtlich und zuverlässig.

Im Bedienmenu zum STK500 und an anderen Stellen sind alle 
programmiwerbaren Typen aufgezählt. Es sind bis auf wenige Ausnahmen 
alle atiny und atmega dabei.

Wenn man primär an der Sprache interessiert ist, reicht es, mit C 
anzufangen.
beim Vertiefen kommt man dann später automatisch in die Hardware und 
damit zum Assembler.

Systemmatisch exakter wäre es, mit Assembler zu beginnen und später zu C 
oder C++ überzugehen. uC-kapieren tut man eigentlich mit Assembler, C 
kann man z.B. direkt auf dem PC lernen.

vereinfacht: C schreibt man zuerst als Text, mit einem Editor. Wenn man 
dann die passenden Compilerbefehle dazu geschrieben hat, wird das auf 
Tastendruck in ein   .hex-file übersetzt.

von Peter D. (peda)


Lesenswert?

Martin Müller schrieb:
> Zwar habe ich schon einen von Logilink, aber
> der funktioniert nicht richtig, zumindest wird ist im Gerätemanager ein
> gelbes Ausrufezeichen davor.

Logilink sagt mir nichts, ich habe Prolific und FTDI und die laufen wie 
dumm.

Deinstallier ihn mal und dann nochmal neu. Bei manchen ist die 
Reihenfolge wichtig, also erst Treiber installieren und danach 
reinstecken.

Daß ein USB-RS232 am STK500 nicht funktioniert, kann ich mir nicht 
vorstellen. Das STK500-Protkoll schreibt ja blockweise.


Peter

von Martin M. (silent_max)


Lesenswert?

Erst einmal vielen Dank für die bisherigen Antworten, die meines 
Erachtens schon recht gut und hilfreich waren.

Peter R. schrieb:
> Da hättste ruhig die Fragen nummerieren können, von 1 bis (fast)
> unendlich.

Werde ich in Zukunft beherzigen.

> Der 8515, die atinys und die atmegas haben fast den gleichen
> Befehlssatz. Unterschiede bestehen eigentlich nur in der Ausstattung mit
> Hardware: interner Oszillator, ja oder nein, wieviel RAM, EEPROM,
> wieviele Zähler (timer0,1,2?)obUART ja oder nein ....

Dann hat sich das ja schon geklärt.

> Im Bedienmenu zum STK500 und an anderen Stellen sind alle
> programmiwerbaren Typen aufgezählt. Es sind bis auf wenige Ausnahmen
> alle atiny und atmega dabei.

Bis einschließlich dem ATmega32. Also dürfte das für den Anfang reichen.

> Wenn man primär an der Sprache interessiert ist, reicht es, mit C
> anzufangen.
> beim Vertiefen kommt man dann später automatisch in die Hardware und
> damit zum Assembler.
> Systemmatisch exakter wäre es, mit Assembler zu beginnen und später zu C
> oder C++ überzugehen. uC-kapieren tut man eigentlich mit Assembler, C
> kann man z.B. direkt auf dem PC lernen.

Wie schon geschrieben, ich arbeite mich derzeit in die 
Programmiersprache C++ ein und ich dachte mir eben, dass C nicht arg 
weit weg von C++ ist. Da ist Assembler schon weiter weg... Ich kann auch 
falsch liegen. Wenn ich falsch liege, dann bitte sagen. Was ich bisher 
in anderen Foren wie dem Elektronik Kompendium gelesen habe, deckt sich 
mit Deiner Aussage Peter überein, dass rein für das Verständnis eines µC 
Assembler besser geeignet wäre. Aber ich habe mich jetzt dazu 
entschlossen, mit C anzufangen. Ich werde mich einfach HildeK ersteinmal 
anschließen und in C anfangen.

> vereinfacht: C schreibt man zuerst als Text, mit einem Editor. Wenn man
> dann die passenden Compilerbefehle dazu geschrieben hat, wird das auf
> Tastendruck in ein   .hex-file übersetzt.

Und dann wird das .hex-file in den µC gespielt??

@ Peter Dannegger:

Welchen Treiber bzw. welches Betriebssystem nutzt Du? Denn, was ich 
vergessen habe zu schreiben, bei mir im Gerätemanager steht, dass der 
USB-to-RS232 Adapter von der Firma Profilic stammt. Ich nutze Windows 7 
64Bit und wie gesagt, bei mir funktioniert es nicht...

Hättest Du Peter oder jemand anders eine Idee, wo ich einen älteren 
Treiber herbekomme? Vielleicht klappt es über einen älteren Treiber...

Als Anfängerprojekt hätte ich mir eben gedacht, wenn ich das ganze 
STK500 Board zum Laufen gebracht habe, so etwas wie RGBG - LED zu 
machen. Was haltet ihr davon?

Gruß

Max

von Daniel C. (cecky)


Lesenswert?

Martin Müller schrieb:
> vergessen habe zu schreiben, bei mir im Gerätemanager steht, dass der
> USB-to-RS232 Adapter von der Firma Profilic stammt. Ich nutze Windows 7
> 64Bit und wie gesagt, bei mir funktioniert es nicht...

Hi, das Problem hatte ich auch. Die Profilic-Adapter liefen bei mir 
eigentlich immer einwandfrei. Und von einem Tag zum anderen ging nix 
mehr. Da half kein Treiberupdate bzw. Treiberdowndate. Hab mir dann 
Adapter der Firma Digitus besorgt. Die verwenden den FTDI und damit 
hatte ich noch nie Probleme unter Win7 64bit. Ich persönlich würde nur 
Adapter benutzen die etweder einen FTDI oder einen Silabs CP2102 verbaut 
haben.

von Martin M. (silent_max)


Lesenswert?

Daniel C. schrieb:

> Hi, das Problem hatte ich auch. Die Profilic-Adapter liefen bei mir
> eigentlich immer einwandfrei. Und von einem Tag zum anderen ging nix
> mehr. Da half kein Treiberupdate bzw. Treiberdowndate. Hab mir dann
> Adapter der Firma Digitus besorgt. Die verwenden den FTDI und damit
> hatte ich noch nie Probleme unter Win7 64bit. Ich persönlich würde nur
> Adapter benutzen die etweder einen FTDI oder einen Silabs CP2102 verbaut
> haben.

Ja ok, dann werde ich mir morgen einmal einen Adapter von FTDI kaufen. 
Wieviel kostet der denn ungefähr?? Hast Du beim Kauf des Adapters von 
FTDI Treiber auf CD´s mitbekommen oder hast Du die Treiber in digitaler 
Form bekommen/installiert??

Es geht mir halt darum: Bei meinem Netbook gibt es eben kein CD-ROM 
Laufwerk, deswegen bin ich darauf angewiesen, Treiber in der digitalen 
Version zu installieren.

Gruß

Max

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.