Hallo
Ich möchte nun beginnen Mikrokontroller zu programmieren.
Am Liebsten wär mir ein Atmel in C zu programmieren.
Ich habe noch keine erfahrung damit.
Also:
Was brauch ich alles dafür?
Gibt es ein Anfängerset eventuell mit Bücher wo alles schritt für
schritt beschrieben ist? Mit welchem Evaluationsbord fange ich am besten
an?
Ist ein Evaluationsboard sinvoll, oder gleich ein richtiger ISP
Programmierer?
Welche software brauche ich?
Ich hoffe dass mir jemand ein paar tipps geben kann
und etschuldige mich für mein fehlendes Wissen.
Da bist du hier genau richtig !!!
Wie schn gesagt kannst du dich mal ins Tutorial einlesen. Das ist
wirklich super gemacht. Zusätzliches Wissen über die Sprache C kannst du
dir aus verschiedensetn Büchern oder dem 3w aneignen. Bei speziellen
Fragen winfach wieder melden !
Have fun !
Rund um den AVR findest Du hier in der Tat jede Menge erstklassige Infos
und die Leute, die Dir bei Problemen weiterhelfen können.
Was die reine C-Programmierung von Mikrocontrollern betrifft, kann ich
Dir auch meinen VIDEO-Kurs empfehlen.
http://ET-Tutorials.de/Mikrocontroller
Im ersten Teil geht es nur um C, hardwareunabhängig.
Für die anschließenden AVR-Themen wirst Du hier fündig.
Zu deiner Frage mit den Eval Boards/Programmern:
Hast du denn schon konkrete Ideen, was du später mal bauen willst ?
Oder geht es dir nur darum, dich ein wenig mit der Architektur
auseinanderzusetzen, ohne konkrete Ziele ?
Davon hinge auch ab, welches Board am besten passt ...
naja zu beginn soll der Mikrokontroler irgentetwas tun,
ich würd mich schon freuen wenn ich ein blinklicht schaffen würde...
später würd ich schon gerne kleine sachen bauen, eine uhr, oder
abstandsmesser fürs auto (beim einparken) aber das ist noch
zukunftsmusik...
Wie bereits gesagt, mit den Tutorials hier (am besten ASM und C Tutorial
lesen) wirst du einen guten Einstieg finden.
Wenns dir vorerst Hauptsächlich ums Programmieren geht, und du es beim
Erstellen der Schaltung etwas bequemer haben willst, so ist denke ich
das Arduino Nano [1] gut geeignet. Bei Arduinos muss man nicht die
Arduino IDE verwenden. Du kannst auch normal in C oder Assembler oder
Bascom programmieren und den vorinstallierten Arduino Bootloader nur zum
bequemen Programmieren verwenden. Durch die Bauform lässt sich das Nano
leicht in ein Breadboard stecken und dann kann man beliebig anderes Zeug
anschliessen.
Ich werd mir demnächst eins kaufen, weil man eben schnell was am
Breadboard aufbauen kann.
Wenns dir dann Spass machst und du dich genauer mit dem µC beschäftigen
willst, dann kann ich dir nur raten als Programmer gleich den originalen
AVR ISP MKII zu kaufen. Der funktionniert garantiert immer und auf jedem
gängigen OS.
[1] http://arduino.cc/en/Main/ArduinoBoardNano
hm, über arduino hab ich schon mal was gelesen, aber braucht der zu
programmierende Mikrokontroller nicht einen extrigen bootloader?
und kann man mit dem arduino nano mehrere Atmel-typen programmieren,
oder nur einen?
ich glaub, den schau ich mir genauer an...
Mario schrieb:> Was brauch ich alles dafür?
Ich würde mir ein STK500 kaufen, da du hier recht flexibel diverse
AVR-Controller und auch noch einige Headerboards nutzen kannst.
Ebenso findest du viele Application Notes bei ATMEL selbst, die dieses
Board referenzieren. Hat am Anfang den Vorteil, dass du nicht zu viele
Dinge auf einmal verstehen musst, sondern einfach erst einmal
konfigurierst, wie's in der Anleitung steht.
Weiterer Vorteil, dass die Atmel-eigene Entwicklungsumgebung AVR-Studio
das Board kennt und du es damit konfigurieren kannst.
Das neuere STK600 ist für den xMega interessant, ob es dein Einstieg
sein soll, musst du selbst entscheiden. Ich würde mit einem kleinem AVR
anfangen, wie z.B. dem Mega8, oder sogar einem Tiny, wo dich das
Datenblatt nicht gleich mit zu viel Peripherie erschlägt.
Mario schrieb:> Ist ein Evaluationsboard sinvoll, oder gleich ein richtiger ISP> Programmierer?
Board ist auf jeden Fall sinnvoll, wie das oben genannte. ISP und
Evaluationboard schliessen sich nicht gegenseitig aus, das STK500 ist
ebenfall "In System Programmable", da es einen entsprechenden Port hat.
Du kannst den Controller damit auf mehrere Art und Weisen programmieren:
- über den RS232-Port ohne jeden zusätzlichen Programmieradapter direkt
aus dem AVR-Studio heraus
- über einen separaten ISP-Programmer, der dazu an einen ISP-Port
angeschlossen wird
- über einen JTAG-Adapter, der aber einen entsprechenden Controller mit
JTAG-Anschluss voraussetzt und beim Headerboard STK501 z.B. vorhanden
ist.
Der JTAG-Adapter bietet den Vorteil, dass du den Controller anhalten und
seine Speicher- und Registerinhalte auslesen kannst. Das ist eine
komfortable Methoden, Fehler finden zu können. JTAG-Adapter gibt es
billige von Olimex, aber auch JTAG-ICE mkII von Atmel, die teurer sind.
Für den Anfang kannst du dir das Geld aber erst einmal sparen und den
Simulator nutzen, der im AVR-Studio enthalten ist, und für kleine
Programme mit kleinen Controllern ausreicht.
Mario schrieb:> Welche software brauche ich?
Die AVR-Studio-Versionen vor der 5er haben nur den Assembler
mitgeliefert, den C-Compiler WinAVR kannst du dir kostenlos downloaden
und per PlugIn an das AVR-Studio anbinden.
Die neuer AVR-Studio-Variante hat einen eigenen C-Compiler inklusive.
Ich arbeite gerne mit diversen GCC-Toolchains, deshalb nutze ich noch
immer das ältere AVR-Studio mit WinAVR. Musst du selbst entscheiden.
Mario schrieb:> Ich hoffe dass mir jemand ein paar tipps geben kann> und etschuldige mich für mein fehlendes Wissen.
Brauchst dich nicht zu entschuldigen, dafür sind Foren da.
Mario schrieb:> ich würd mich schon freuen wenn ich ein blinklicht schaffen würde...
Auch das ist ein Grund ein Board zu kaufen, auf dem bereits LEDs und
Taster vorhanden sind, dann brauchst du dich in den ersten Schritten
nicht um die Anbindung an die Hardware zu kümmern und machst somit
nichts kaputt. Das STK500 hat auch einen Kurzschlussschutz, was dieses
Argument noch unterstreicht.
Egal, ob du nun original Atmel oder z.B. Olimex kaufst, fang mit einem
kleinen Controller an.
Gruß
Gunb
Christopher G. schrieb:> Wenns dir dann Spass machst und du dich genauer mit dem µC beschäftigen> willst, dann kann ich dir nur raten als Programmer gleich den originalen> AVR ISP MKII zu kaufen. Der funktionniert garantiert immer und auf jedem> gängigen OS.
Das kann ich bestätigen. Teuer, aber zuverlässig.
Der Bootloader ist bei allen Arduinos schon drauf. Er verhält sich wie
ein AVR ISP Programmer und man kann z.B. normal über avrdude
programmieren. Dafür braucht man keinen Programmer, du kannst jedoch nur
den Chip am Nano programmieren. Ein typischer Programmierbefehl mit
avrdude unter Linux sieht so aus. Die avrdude Dokumentation und Hilfe
sagt dir, was die Parameter bedeuten.
Für die Arduinos gibts aber auch ein fertiges Programm zum aufspielen,
womit dieser zum Programmer wird. Falls du aber vorhast, gleich
verschiedenste Typen zu programmieren, so würd ich lieber gleich einen
AVR ISP MKII (dazu) kaufen.
Den Arduino Bootloader kann man auch auf jeden Atemga spielen, der bei
irgendwelchen Arduino Boards verwendet wird. Dafür brauchst du jedoch
einen Programmer :)
Gehts dir also nur darum zu experimentieren und du hast nicht schon vor
mit einem konkreten µC ein Projekt zu basteln, so ist der Nano mMn eine
gute Wahl. Du brauchst dafür keinen externen Programmer. Wenn dich die
Materie mehr interessiert, dann kannst du dir ja einen Programmer,
bestimmte µCs, Quarze und was man sonst so braucht zulegen.
wow
danke für diese überwältigenden informationen ;)
so eine frage hät ich noch:
also dieses board hat einen ISP programmer
heißt das, dass man damit einen stand allone mikrokontroller der in
einer anderen schalung eingebaut ist, mittels steckverbindung
programmieren kann?
also genau das was ein avr isp mkII auch kann?
wenn dass so ist nehm ich das board, es ist zwar nicht billig, aber
wennst meinst dass das so toll ist, dann will ich es auch ;)
vielen dank mochmal an alle die mir geholfen haben
Mario schrieb:> so eine frage hät ich noch:> also dieses board hat einen ISP programmer> heißt das, dass man damit einen stand allone mikrokontroller der in> einer anderen schalung eingebaut ist, mittels steckverbindung> programmieren kann?
Das habe ich schon einmal gemacht, das geht.
Mario schrieb:> also genau das was ein avr isp mkII auch kann?
Meinst du jetzt den AVR ISP2 oder AVR JTAG ICE mkII? Hier besteht ein
wesentlicher Unterschied.
Der ISP2 ist ein reiner Programmer, der zum Flashen der Firmware in den
µC benutzt wird,
der JTAG ICE mkII ist ein JTAG-Programmer, der neben dem Flashen der
Firmware eben auch als Hardware-Debugger benutzt werden kann. Dieser ist
aber meines Wissen nicht direkt am STK500 anschliessbar. Ich nutze ihn
mit dem Headerboard und dem Mega128, wo ein separater Port vorhanden
ist. Kauf dir diesen besser erst einmal nicht, kannst du bei komplexeren
Projekten später noch machen.
Der ISP2 kostet rund 40,-€, der mkII rund 310,-€.
Mario schrieb:> wenn dass so ist nehm ich das board, es ist zwar nicht billig, aber> wennst meinst dass das so toll ist, dann will ich es auch ;)
Es deckt zumindest alle mittleren AVRs ab, da es mehrere Sockel hat, und
kann für den höheren Mega-Typen per Headerboards aufgerüstet werden.
Und einen separaten Programmer brauchst du erst einmal nicht, das Board
reicht.
Gruß
Gunb
oh, ich hab nicht gewusst dass zwischen den programmern so ein
unterschied ist, ich hab den AVR ISP2 gemeint.
nochmal zusammengefasst:
alo ich kann einen Mikrokontroller in das board reinstecken und
programmieren, das hab ich verstanden
aber wenn der mikrokontroller bereits in eier anderen schaltung steckt,
und ich den nicht immer ausnehmen möchte kann ich diesen mit ISP über
das board programmieren.
ist das das selbe was der AVR ISP2 macht? das Flashen der Firmware in
den
µC?
wenn ja, dann bin ich rundum glücklich und kauf mir das board =)
Mario schrieb:> nochmal zusammengefasst:> alo ich kann einen Mikrokontroller in das board reinstecken und> programmieren, das hab ich verstanden
Ja, du kannst im Prinzip deine ganze Schaltung mit dem Board entwickeln,
da alle Controllerports über Pfostenstecker zugänglich sind.
Mario schrieb:> aber wenn der mikrokontroller bereits in eier anderen schaltung steckt,> und ich den nicht immer ausnehmen möchte kann ich diesen mit ISP über> das board programmieren.
Ja, über AVR-Studio.
Mario schrieb:> ist das das selbe was der AVR ISP2 macht? das Flashen der Firmware in> den> µC?
Ja.
Dietrich L. schrieb:> Gun B. schrieb:>>> AVR ISP2>> Damit keine Verwirrung entsteht: der heißt bei Atmel aber AVRISP mkII> (Ordering Code: ATAVRISP2).>> Gruß Dietrich
ACK.
Ja, dass ist immer so eine Sache mit den ganzen Bezeichnungen :-)))
Gruß
Gunb