Hallo,
ich bin neu in der Mikrocontrollerwelt und versuche gerade den Einstieg
zu meistern. In meinem Studium (Physik, Nebenfächer alle Richtung
Elektronik) habe ich bereits das Grundkonzept von C++ und AHDL/VHDL
erlernt und verstanden.
Nun möchte ich gerne Mikrocontroller programmieren, da ich einige Ideen
habe. Die ersten paar beruhen meistens auf "Knöpfe drücken". Der Rest
ist optional und es würde mir sicher gefallen das zu meistern.
Was ich fragen wollte:
Was macht dieses Starterkit? Ich verstehe ja, dass ich einen Programmer
brauche, um Das Hex-file auf den µC zu bekommen, aber wofür gibt es
diese Starterkits, wo teilweise noch nur eine LED und ein Taster mit
drauf sitzt? Wirklich nur, damit ich zum testen die LED blinken lassen
kann? Da spricht doch nichts dagegen, dass ich die direkt (mit
Widerstand natürlich) an den µC brutzle, oder?
Weil dann würde ich mir einfach einen USB-Programmer (oftmals nur
Laptop) kaufen, n paar ATMega8 und ein paar ATTiny13 + je Sockel und ein
Steckbrett mit ein paar Steckkabeln kaufen. (Widerstände, LEDs, Lötzeug,
Taster und das Zeug hab ich eh alles hier). Vielleicht noch n paar
Lochplatinen dazu.
Gibt es da dann etwas zu beachten? Zum Programmieren würde ich gerne
Assembler lernen (Win 7). Kostenlose Software gibt es ja genug. Oder
habe ich einen Denkfehler?
Hallo,
ich bin selbst nach Anfänger und habe nur eine Lehre gemacht. Für mich
machen Starterkits in zweifachen Hinsicht einen Sinn:
1. Man muss nur dieses Kit haben, um erste Programme schreiben und
testen zu können, also man muss nix berechnen, stecken oder löten und
kann das Thema Elektronik erst einmal langsam angehen lassen.
2. Man kann auf sogenannte Shields setzten für Funk, Display, Tastatur,
SD-Karten, Motorentreiber etc. und muss sich hier auch nicht um die
Elektronik groß kümmern, das haben andere schon getan und es
funktioniert von der Hardwareseite schon alles. Auch gibt es für diese
Shields in der Regel schon Libs, so dass auch von der Softwareseite viel
Zeit eingespart werden kann.
Ich selbst habe ein Starterkid/Entwicklungsboard mit einem ARM Cortex
M4, unter anderem auch, weil schon viel auf dem Board drauf ist wie
Bewegungssensor, Mikrofon etc. und es diesen Mikrocontroller nur in SMD
gibt, was ich noch nicht beherrsche. Und ein Programmer fehlt mir auch
für den ARM. Da habe ich dann mit 20,- EUR ne Menge schon mit bei
gehabt, um nur erst einmal diese Technologie testen zu können.
Dann habe ich aber noch eine AVR-Schiene, wo ich alles komplett selbst
mache. Also vom Quarz bis zur ISP-Schnittstelle wird alles selbst
angeschlossen und über ein USB/ISP-Programmer geflasht.
Programmieren kannst du immer in der Sprache und auf dem OS dass dir am
besten liegt. Assembler halt um wirklich alles selbst in der Hand zu
haben und um Ressourcen zu sparen und C wenn es portabler sein soll und
du schneller zum Ziel kommen möchtest, da du auch auch viele Libs
zurückgreifen kannst.
Ich bevorzuge es alles selbst zu machen, aber für mich ist das auch
alles nur Spielerei und ein Hobby.
Gerald m. schrieb:> Widerstand natürlich) an den µC brutzle, oder?> Weil dann würde ich mir einfach einen USB-Programmer (oftmals nur> Laptop) kaufen, n paar ATMega8 und ein paar ATTiny13 + je Sockel und ein> Steckbrett mit ein paar Steckkabeln kaufen. (Widerstände, LEDs, Lötzeug,> Taster und das Zeug hab ich eh alles hier). Vielleicht noch n paar> Lochplatinen dazu.> Gibt es da dann etwas zu beachten? Zum Programmieren würde ich gerne> Assembler lernen (Win 7). Kostenlose Software gibt es ja genug. Oder> habe ich einen Denkfehler?
Kein Denkfehler. Meiner Meinung nach die beste Art anzufangen.
Vermittelt von Anfang an mehr Gefühl für die Wirkung von Spannungen und
Strömen, die das Programm im µC ja steuern und regeln soll.
Zur Erweiterung meines Wissens aus der Lehre nutze ich noch die
Vorlesungen hier, mit der empfohlenen Literatur:
http://video.tu-clausthal.de/vorlesung/142.html
Das ist alles gut erklärt und gewährt einen guten Einblick in die
Thematik der Elektrotechnik. Für mich als Hobbyelektroniker reicht das
dann auch für ein paar Basteleien aus.
> Was macht dieses Starterkit?
Ein Starterkit schließt eine Menge Fehlerquellen (wackelkontakt,
Beschaltungsfehler, falsche Powersupply (Power-On-Ramping) aus und lässt
dich gleich mit dem Programmieren durchstarten.
Wenn dann nichts geht, dann liegt es an deinem programm und der Fehler
ist leicht einzukreisen. Starterkits lassen sich auch leichter
transportieren, beispielsweise zum Computerclub/Bastlerzirkel/etc.. Und
es gibt vorgefertigte Config/Header-files für Starterkits
(GPIO-konfiguration) funktionsfähige Beispielprogramme etc.. Alles prima
für den Einstieg.
Interessant finde ich Starterkits di sich auf ein Steckbrett montieren
lassen, damit hast du ein Wunschsystem an Einfachheit und
Erweiterbarkeit. Bsp dieses FPGA-Modul
http://www.youtube.com/watch?v=1LC0c8vdT10
MfG
Oder macht im ersten Schritt einen Crash-Kurs zunächst ganz ohne
Hardware,
z.B. http://ET-Tutorials.de/Mikrocontroller
Darauf aufbauend dann einen Aufbau mit einem Starterkit, das man dann
nach und nach erweitert.
Naja, in den meisten heute angebotenen Starterkits ist neben dem
eigentlichen Controller, den du testen willst, auch noch zusätzlich der
Debugger verbaut, mit dem Du dann auch die Chips auf deinen
selbstgebauten Platinen programmieren und debuggen kannst.
Außerdem sind viele davon so billig, dass sich ein Selbstbau gar nicht
mehr lohnt.
Die Discovery-Kits von ST für den Cortex-M liegen bei deutlich unter
20€,
die Launchpads von TI liegen bei 10$,
die LPCExpresso für NXP-Controller kosten auch so um die 20€,
alle mit jeweils einer auf diese Prozessorfamilien limitierten Version
von Seggers J-Link.
Alles klar, dann werde ich mich wahrscheinlich gegen ein Starterkit
entscheiden. Fehlersuche muss ja auch gelernt sein (Geräte sind ja da),
und es wäre ja sowieso komisch, wenn es beim ersten mal klappt :P
Dann wird es ein USB-Programmer, Chips und ein Steckbrett :)
Danke euch
Gerald m. schrieb:> Was macht dieses Starterkit?
Starterkits haben eigentlich nur einen Sinn: dem Kunden zu zeigen, dass
die neu gelieferten Controller funktionieren, und eine
Erstinbetriebnahme zu ermöglichen. Wenn Du bei Null startest, hast Du
eine Million Fehlerquellen: Compiler läuft nicht, Flasher tut nicht,
Controller defekt, falsche Kondensatoren, falscher Takt,
Programmierschnittstelle falsch belegt, ...
Das Starterkit dient nur dazu, den ganzen Kram einmal ans Laufen zu
bekommen, bevor man dann auf seiner eigenen Platine weiterarbeitet. Das
entlastet die Hotline, daher verschenken die Hersteller diese Dinger und
sparen trotzdem Geld. Die Boards werden meist 2-3 Tage benutzt, dann
wandern sie in den Schrank.
> Weil dann würde ich mir einfach einen USB-Programmer (oftmals nur> Laptop) kaufen, n paar ATMega8 und ein paar ATTiny13 + je Sockel und ein> Steckbrett mit ein paar Steckkabeln kaufen.
Ja. Aber wenn's nicht klappt weisst Du nicht warum. Du solltest Dir
daher anstelle des Starterkits eine beliebige Leiterplatte mit Atmel
drauf besorgen, von der Du weisst, dass sie funktioniert. Oder Deine
selbstgeätzte erstmal bei einem Kumpel in Betrieb nehmen. So reduziert
man die Menge der Unbekannten etwas.
Kommt drauf an.
Die AVRs im DIP kann man im Prinzip nackt verwenden, 5V rangepappt und
sie laufen.
Die 32Bitter ARM sind da deutlich verpimpert, die wollen schon etwas
umfangreichere Außenbeschaltung, Stromversorgung, ehe sie laufen.
Daher sind die auch kaum als DIP verfügbar, ein kleines SMD-Platinchen
muß schon sein. Ohne Starterkit sind die für den Anfänger quasi
unbrauchbar.
Und noch was.
Deine Sammlung von 'Problemstellungen' da oben in allen Ehren. Aber die
Realität sieht anders aus.
Dein erstes Programm ist: eine LED einschalten
Dein zweites Programm ist: die LED soll nur brennen, wenn der Taster
gedrückt ist
Dein drittes Programm ist: besagte LED blinken lassen
Dein vierstes Programm ist: Die LED soll nur blinken, wenn der Taster
gedrückt ist
Dein fünftes Programm ist: mit mehreren LED ein Lauflicht realisieren
Dein sechstes Programm ist: Lauflicht, welches links rum läuft wenn der
Taster nicht gedrückt ist
Dein siebtes Programm (und das ist schon ganz schön schwer): Mit jedem
Tastendruck, soll das Lauflicht die Richtung
wechseln
usw. usw.
Bis du dich an deine Aufgabenstellungen heranwagen kannst, ist
* der Sommer längst vorbei
* hast du schon vieles programmiert
* du schon den einen oder anderen µC gehimmelt
* eventuell selber (mindestens) ein Board aufgebaut und in
Betrieb genommen
Wenn du also auf Starterkits schielst, mit dem Hintergedanken wie gut
sie sich für deine konkreten Problemstellungen eignen - vergiss es. Nur
weil du in 10 Jahren in die Karibik fahren willst, kaufst du dir heute
keine salzwasserfeste Armbanduhr.
Ja, so in etwa hatte ich mir das auch vorgestellt. Chip an vvc und gnd,
led mit widerstand an ein Beinchen und das auf gnd. Vllt noch n Taster
an n Beinchen, dann Programm schreiben mit ein und Ausgang, wenn Knopf
gehalten wird soll led blinken, ansonsten nicht. Fertig.
Das kann man dann mit LEDs erweitern wenn man mag, Lauflicht,
Schieberegister usw.
Sehr viel Fehler kann man da ja nicht machen, also anschlusstechnisch.
Und das Programm auf den chip zu schreiben, funktioniert oder nicht.
Oder einfach mal alle Ausgänge auf high schalten, und mit dem MM dran.
Wenn da nix is, ist das Programm nicht drauf. Sind ja keine tausend
Sachen dran
Huch, haben gerade gleichzeitig geschrieben.
Ja, genau das meine ich ja. Dafür brauche ich doch kein board? Das löte
ich mir im Notfall direkt an die Beinchen ohne Platine.
Deshalb will ich ja wissen was ich mit solch einem board machen soll.
Dass es mir später nichts für die aufgaben bringt ist mir sehr klar.
Gerald m. schrieb:> Sehr viel Fehler kann man da ja nicht machen, also anschlusstechnisch.
:-)
Dein Wort in Gottes Ohr.
Erst gestern hatten wir hier einen, der ein LCD an einen Arduino
rankabeln will. An und für sich kein Problem. Es hat sich dann von 13:00
bis kurz vor 22:00 hingezogen, bis er nach wiederholter Aufforderung
dann endlich mal seine Kabel durchgemessen hat und bei 2-en davon einen
Kabelbruch festgestellt hat. (*)
Aber cool. Ein Mitstreiter mehr, der sich fehlenden Blockkondensatoren,
Verbindungen von AREF zu AVcc, RC-Glied an Taster ja/nein, wie rum
werden LED angeschlossen .... annimmt!
(*) und natürlich hat er vorher stundenlang auf der Aussage beharrt, die
Verkabelung wäre in Ordnung und die hätte er schon zig-mal geprüft :-)
Karl Heinz Buchegger schrieb:> Gerald m. schrieb:>>> Sehr viel Fehler kann man da ja nicht machen, also anschlusstechnisch.
...
> Aber cool. Ein Mitstreiter mehr, der sich fehlenden Blockkondensatoren,> Verbindungen von AREF zu AVcc, RC-Glied an Taster ja/nein, wie rum> werden LED angeschlossen .... annimmt!
... und der Programmer-Anschluss fehlt auch noch ...
Und man sollte eine steckbare Version nicht verachten: wenn was nicht
geht, kann man immer mal schnell ein vielleicht defektes Bauteil
austauschen. Das reduziert bei der Fehlersuche die Anzahl der möglichen
Ursachen erheblich.
Gruß Dietrich
Gerald m. schrieb:> Habe doch geschrieben, Elektronikzeug wie Widerstände, Kondensatoren und> LEDs sind vorhanden
... und Stromversorgung? Stecker für Programmer?