Forum: Mikrocontroller und Digitale Elektronik Einstieg in Microcontrollerprogrammierung mit Stellaris Launchpad?


von Kranen (Gast)


Lesenswert?

Hi!

Da ja mittlerweile sicher einige Leute das Stellaris Launchpad daheim 
haben wollte ich mal nachfragen wie sehr so ein ARM-Controller für einen 
Anfänger geeignet ist...

Programmiererfahrung habe ich bisher keine Großartige... (Assembler in 
der Ausbildung, werde bei meiner derzeitigen Technikerschule 
(Fernstudium beim DAA) noch Mikrocontroller in C programmieren müssen).

Momentan bin ich noch am C lernen (mache ein Buch durch: C - 
Porgrammieren von Anfang an).

Hat es überhaupt Sinn mit so einem... "oberflächlichem Wissen von C" in 
Richtung Controller-Programmierung zu gehen?

Kann mir evtl jemand aus eigener Erfahrung eine grobe Richtung weisen?

Und / oder wäre ein Arduino evtl die bessere Wahl für den Einstieg? 
(Müsste gekauft werden, Launchpad liegt bereits daheim).

Gruß

von Karl H. (kbuchegg)


Lesenswert?

Kranen schrieb:


> Momentan bin ich noch am C lernen (mache ein Buch durch: C -
> Porgrammieren von Anfang an).
>
> Hat es überhaupt Sinn mit so einem... "oberflächlichem Wissen von C" in
> Richtung Controller-Programmierung zu gehen?

Wie weit bist du denn im Buch?
Wenn du das Gefühl hast, das erste Drittel so leidlich zu beherrschen, 
steht einem µC-Umstieg kaum mehr ernsthaft was im Weg.

von Gerd E. (robberknight)


Lesenswert?

Auch wenn die Atmegas vielleicht nicht mehr ganz Stand der Technik sind 
würde ich dennoch empfehlen damit anzufangen:

- überschaubar, nicht 1000+ Seiten Dokumentation
- mehrere verschiedene Entwicklungsumgebungen verfügbar
- jede Menge Erfahrung, Tipps, Beispiele im Web vorhanden. Zu beinahe 
jedem Problem findest Du x Posts mit Lösungen im Internet
- Hier im Forum gibt es viele Leute die Dir damit helfen können.

Das Stellaris-Teil ist noch so neu daß es zwar prinzipiell funktioniert, 
aber an vielen Stellen ist die Unterstützung noch nicht fertig, nicht 
optimal etc. Auch gibt es bisher nicht so viele Leute die das Teil in- 
und auswendig kennen und Dir bei Problemen helfen können.

Wenn Du das Prinzip verstanden hast kannst Du später immer noch auf was 
anderes umsteigen. Das Umsteigen an sich zu lernen ist auch nicht 
schlecht, das wirst Du in ein paar Jahren wieder brauchen wenn die jetzt 
aktuellen ARM Cortexe dann zum alten Eisen gehören und was anderes 
aktuell ist.

von Thomas W. (diddl)


Lesenswert?

Ich möchte keinen neuen AVR gegen ARM krieg initiieren.


Aber ich möchte anmerken, dass ich keineswegs Atmega empfehle. Das 
Stellaris hat viele Vorteile für Neueinsteiger:

+ Preis

+ Programmer am board vorhanden

+ Debugger am Board vorhanden

+ leistungsfähiger

+ zukunftssicherer


Auch kann ich die Ansicht nicht teilen, dass der Atmega einfacher ist 
zum anfangen. Allein schon wegen dem Debugger. Und C ist es alle mal.

--------

Noch eine Anmerkung

Warum Stellaris? ich würde ein STM32F4 wählen:
http://shop.myavr.de/ARM-Produktlinie/mySTM32-Board-F4D,%20Bausatz.htm?sp=article.sp.php&artID=200075
http://shop.myavr.de/ARM-Produktlinie/STM32F4-Discovery.htm?sp=article.sp.php&artID=200072

von Karl H. (kbuchegg)


Lesenswert?

Thomas Winkler schrieb:
> Ich möchte keinen neuen AVR gegen ARM krieg initiieren.
>
>
> Aber ich möchte anmerken, dass ich keineswegs Atmega empfehle. Das
> Stellaris hat viele Vorteile für Neueinsteiger:

Und der gewichtigste Nachteil wurde auch schon genannt:
Wer hilft einem Neueinsteiger bei Problemen?


Ist wie beim Auto: Für einen Wald und Wiesen Golf kriegst du Ersatzteile 
bei jedem besseren Aldi und jemand der sich damit auskennt findest du in 
jeder Disco.
Für einen Bentley sieht die Sache aber anders aus. Auch wenn der Bentley 
toller ist.

von Klaus Kaiser (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Und der gewichtigste Nachteil wurde auch schon genannt:
> Wer hilft einem Neueinsteiger bei Problemen?

Die Arduinos bzw Atmels haben die größere und aktivere Community, auch 
wenn sie technisch hinterherhinken. Für Einsteiger ist oft die Community 
entscheidend. Tja, und da hat Atmel halt gewonnen.

Leider setzt sich halt nicht immer das bessere, sondern immer einfach 
nur das am weitestens verbreitetste durch.

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

Kranen schrieb:
> Kann mir evtl jemand aus eigener Erfahrung eine grobe Richtung weisen?

eigene Erfahrung:

zum Kennen lernen (und programmieren in C) ist es ziemlich egal, welchen 
Controller du verwendest.

Die grundsätzlichen Mechanismen (Bitfummelei, Timer, Interupt etc) ist 
bei allen Controllern als Element vorhanden. Sofern du mal verstanden 
hast, daß und wie ein zweckmäßiger Programm-Ablauf zu strukturieren ist 
(z.B. mitels einer Interupt-Service-Routine), kannst du dieses 
Grundwissen auf jeden Controller anwenden, welcher Interupts kennt

Irgendwelche Entwicklungsumgebungen (IDE) gibts auch für jeden 
Controller unter fast jedem Betriebssystem. Ob da jetzt schon gewisse 
Kombinationen [z.B. "es muß eine zeichenorientierte Konsole-IDE  auf dem 
Macintosh sein, welche alle 2 Monate ein Update rausbringt - alles 
andere kommt nicht in Frage"] dich einschränken weißt nur du. Vermutlich 
nimmt man aber initial das was da ist und beist sich durch.

von Stefan H. (stefan_h16)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Ist wie beim Auto: Für einen Wald und Wiesen Golf kriegst du Ersatzteile
> bei jedem besseren Aldi und jemand der sich damit auskennt findest du in
> jeder Disco.
> Für einen Bentley sieht die Sache aber anders aus. Auch wenn der Bentley
> toller ist.

In diesem Fall ist aber der Bentley billiger als der Golf. Der Vergleich 
hinkt also ein bisschen.

Obwohl ich wirklich ein großer Fan der ARMs bin, und mich sehr über die 
bastlerfreundlichen DIP ARMs freue, halte ich doch doch das Stellaris 
Launchpad für ungeeignet um damit zu lernen. Wenn man die 
Firmwarefunktionen nutzt, lernt man kaum wie uCs funktionieren 
(Register) und ohne ist man bei der gebotenen Komplexität schnell 
verloren. Vielleicht doch besser mit AVRs oder, wenn man bei Ti bleiben 
will, mit dem MSP430 Launchpad anfangen. Das MSP430 Launchpad vereint 
praktisch alle Vorteile des Stellaris Launchpad (Preis, Debugger + 
Programmer on board) mit der Einfachheit eines kleinen uC. Die Community 
ist auch ein bisschen größer aber, zumindest in D, kein Vergleich mit 
der AVR Community. Wenn man mit einem AVR einsteigen will, empfiehlt 
sich ein Arduino. Die Arduinos sind leider teurer als die Launchpads und 
einen AVR Debugger bekommt man erst aber ca 50€ aufwärts. Dafür ist die 
Community riesig.

von Klaus Kaiser (Gast)


Lesenswert?

Klaus Kaiser schrieb:
> Leider setzt sich halt nicht immer das bessere, sondern immer einfach
> nur das am weitestens verbreitetste durch.

Was ich eigentlich sagen wollte: Wenn du Einzelkämpferqulitäten hast, 
dann nimm das Lauchpad. Wenn dir die Community wichtig ist, denn den 
Arduino oder ein anderes Atmel-Board. Die Vor- und Nachteile beider 
Plattformen erkennst Du früher oder später eh, und wenn Du nicht gerade 
ein erfolgreiches und komplexes Design hast (bei Hobbyisten selten der 
Fall), ist der Wechsel jederzeit machbar.

von Kranen (Gast)


Lesenswert?

Danke euch allen für eure ausführlichen Erfahrungen und Ratschläge!
Ich werde wohl mit einem 8051 Controller von Atmel (at89c51ed2) 
beginngen, da ich diesen zuhause habe und dieser anscheinend auch beim 
DAA (Technikerschule) verwendet wird.
Wenn ich dann auf diesem Fachgebiet etwas versierter bin werde ich wohl 
auf das Stellaris Launchpad oder den von Thomas genannten STM32F4 
umsteigen.

Danke nochmals für eure Meinungen!

von Jahat (Gast)


Lesenswert?

Thomas Winkler schrieb:
> Noch eine Anmerkung
>
> Warum Stellaris? ich würde ein STM32F4 wählen:
> http://shop.myavr.de/ARM-Produktlinie/mySTM32-Boar...
> http://shop.myavr.de/ARM-Produktlinie/STM32F4-Disc...

Hallo,

das STM32F4 was Thomas verlinkt und dem Zusatzboard kann ich sehr 
empfehlen... hab ich mir vor kurzem auch besorgt aber zusätzlich sollte 
man sich das noch dazu nehmen:

http://shop.myavr.de/index.php?sp=article.sp.php&artID=200024

Ich benutze das mit dem STM32 Tutorial auf http://www.mySTM32.de zum 
Einsteigen in die (besser Umsteigen von AVR aud die) ARM-Programmierung 
und komm auch gut voran freu


Gruß J.

von Peter D. (peda)


Lesenswert?

Kranen schrieb:
> Ich werde wohl mit einem 8051 Controller von Atmel (at89c51ed2)
> beginngen

Kannst ja mal den Wickenhäuser ausprobieren. Die Demo bis 8kB sollte ne 
Weile reichen.


Peter

von Thomas W. (diddl)


Lesenswert?

Stimmt, die USB Bridge von myAVR ist praktisch. Dann kann man 
debugausgaben direkt an den Putty senden und man sieht was das Discovery 
so treibt.

Die 7€ Investition lohnt sich beim Entwickeln sehr.

von Uwe B. (Firma: TU Darmstadt) (uwebonnes)


Lesenswert?

Bei dem STM32F3 Discovery (wie auch b eim F0 Discovery) geht auch ein 
Uart (nach Umlegen von Bruecken) auf den ST-Link. Die ST-Link Software 
stellt nur (noch?) nicht das CDCACM Modem bereit. Wenn man blackmagic 
debug auf den ST-Link aufspielt, dann hat man eine eingebaute 
Discovery<->Uart Bridge.

Die Stellaris Boards haben auch schon eins solche Bridge eingebaut. 
Allerdings hat das Stellarisboard doch recht wenig eingebaute Devices 
zum spielen. Die 8 LEDs und Sensoren des F3 Discovery bieten da schon 
mehr.

von Gerd E. (robberknight)


Lesenswert?

Ich finde den LM4F Stellaris im Vergleich zum STM32F4 deutlich 
schlechter:

- viele Stellaris haben kein richtiges Hardware-PWM, die Einheit ist 
optional und fehlt z.B. auch bei den im Launchpad verwendeten 
LM4F120H5QR. Hardware-PWM ist eigentlich heute ein Standard-Feature...

- die STM32F4 sind deutlich schneller und haben mehr Peripherie (z.B. 
Ethernet)

TI hat die Stellaris mit 4$ / Stück angekündigt. Dann wäre die geringere 
Leistung gerechtfertigt und die Dinger durchaus für manches Projekt 
interessant gewesen.

Wenn man sich jetzt aber mal die tatsächlichen Preise für kleine 
Stückzahlen ansieht:

http://de.farnell.com/texas-instruments/lm4f230h5qrfig/mcu-32bit-stellaris-256kb-64lqfp/dp/2246241
10,88 EUR / Stück für 10 von den billigsten Stellaris

gegen

http://de.farnell.com/stmicroelectronics/stm32f407zet6/ic-mcu-32bit-512kb-flash-144tqfp/dp/2215229
8,15 EUR / Stück für 10 von den billigsten STM32F4.

Wieso soll ich da Stellaris nehmen?

von ansel (Gast)


Lesenswert?

Gerd E. schrieb:
> - viele Stellaris haben kein richtiges Hardware-PWM, die Einheit ist
> optional und fehlt z.B. auch bei den im Launchpad verwendeten
> LM4F120H5QR. Hardware-PWM ist eigentlich heute ein Standard-Feature...

Hmm, die Demo-Firmware auf dem Launchpad schreibt laut gdb den 
gewünschten duty-cycle in die Register tm[ab]matchr, und die RGB-LED 
leuchtet entsprechend.  Was ist denn das, wenn kein Hardware-PWM?

von Gerd E. (robberknight)


Lesenswert?


von ansel (Gast)


Lesenswert?

Gerd E. schrieb:
> Ich meinte das hier:

Ich kann da nichts vom behaupteten "kein richtiges Hardware-PWM" lesen.
Keine Ahnung, nach was der Autor vergeblich gesucht hat. Vielleicht PWM 
mit FIFO oder DMA? Nach meiner Interpretation des 
LM4F120H5QR-Datenblatts kann die Hardware mit den 12 Timern im 
split-Betrieb und PWM-Modus auf 21 Pins PWM-Signale erzeugen.

von Tiva C (Gast)


Lesenswert?

Gerd E. schrieb:
> - viele Stellaris haben kein richtiges Hardware-PWM, die Einheit ist
> optional und fehlt z.B. auch bei den im Launchpad verwendeten
> LM4F120H5QR. Hardware-PWM ist eigentlich heute ein Standard-Feature...

Das neue Stellaris Tiva C Launchpad hat einen TM4C123GH6PM
und damit kommen PWM, QEI and USB host/OTG Support dazu.

Siehe auch:

http://www.43oh.com/2013/04/ti-stellaris-launchpad-rebranded-to-tiva-c-launchpad/

Damit wird das alte Steallaris Launchpad durch das neue Tiva C nach und 
nach ersetzt.

von W.S. (Gast)


Lesenswert?

Kranen schrieb:
> Hat es überhaupt Sinn mit so einem... "oberflächlichem Wissen von C" in
> Richtung Controller-Programmierung zu gehen?

Ja. Jeder (hier und woanders) hat mal mit irgend etwas angefangen.

Was C als Programmiersprache betrifft, so hilft es einem immer, nicht 
jeden Mist und jedes Konstrukt, was diese Sprache ermöglicht, zu 
benutzen, sondern stattdessen eher einen biederen Programmierstil zu 
pflegen. Guck dir ruhig mal diverse Quellen an, die hier im Forum so 
herunfliegen - aber hüte dich davor zu glauben, das wäre alles guter 
Programmierstil, den man so nachmachen sollte. Das Meiste davon ist eher 
ein miserabler Stil und entsprechend unleserlich und sollte SO besser 
nicht nachgeahmt werden. In jedem Falle solltest du aber auch ein bissel 
Assembler lernen - in diesem Fall ARM-Assembler, damit du in diesen 
Gefilden nicht ganz doof dastehst.

Was das Stellaris-Board und uC allgemein betrifft, so solltest du dir 
darüber klar werden, daß die Programmierung (in welcher Sprache auch 
immer) kein Selbstzweck ist, sondern nur eine notwendige Zutat. Das 
Hauptaugenmerk liegt immer auf der Anwendung, also was man tatsächlich 
machen und dazu nen uC einsetzen will. Eben das sollte auch dein 
Schwerpunkt sein, die reine Programmierung ist ein bissel Eunuchentum. 
Guck dir also erstmal das Hardwaremanual zu deinem uC an, dann die 
Boardbeschreibung und dann überleg dir, was du gern manchen willst und 
ob das Board dafür geeignet ist.

Kranen schrieb:
> Kann mir evtl jemand aus eigener Erfahrung eine grobe Richtung weisen?

Sehr einfach: Selber lesen, selber verstehen, selber Projekte planen, 
selber durchziehen - seinen eigenen Stil suchen und finden - und sich 
NIE auf andere verlassen.

W.S.

von Wusel D. (stefanfrings_de)


Lesenswert?

> Stimmt, die USB Bridge von myAVR ist praktisch

Alternativ tut's auch ein Handy-Datenkabel vom Trödel. Es gibt da einige 
im Nokia Umfeld mit genau den drei Anschlüssen, die wir brauchen: GND, 
RXD und TXD. Die kosten meist nur 3 Euro.

Stichwort für eBay: "USB seriell TTL Kabel"

von public (Gast)


Lesenswert?

Hallo zusammen,


viel wurde gesagt, deshalb nur wenig Worte von mir. Als Einstieg 
empfiehlt sich folgendes:

http://shop.myavr.de/index.php?sp=article.sp.php&artID=40

Alles an Board für einen Einsteiger (LEDs, Buzzer, Taster, Lichtsensor), 
klar ist das irgendwie veraltet, aber nur für diejenigen die sich 
auskennen.

Wenn du damit umgehen kannst, kannst du dir das Launchpad wieder 
vornehmen. Der Umstieg wird aber nochmal genauso wie der Einstieg, aber 
um vieles einfacher als ohne Erfahrung.


Beste Grüße
public

von Bernd N. (Gast)


Lesenswert?

Preis: 49,00 Euro

Launchpad 10$

naja

Ich verstehe die Diskussion nicht, man kann mit jedem Board anfangen und 
das Launchpad bietet doch einges. Allemal mehr als so ein olles AVR 
Board.

von Eumel (Gast)


Lesenswert?

Wenn du Anfänger bist nimm lieber das MSP430 Launchpad. Da kannst du 
dann einfacher eigene Schaltungen entwickeln und die Controller 
"erschlagen" dich nicht gleich.

von public (Gast)


Lesenswert?

Hallo nochmal,

unterschied AVR zu ARM sieht doch so aus, Pin setzen.

AVR:

1. Direction Register setzen
2. Pin/Port Register setzen

ARM:

1. Takt am Port bereitstellen
2. Pin Modus einstellen
3. betreffenden Pin wählen
4. Flankensteilheit des Pins wählen
5. Port initialisieren
6. Pin setzen

Ich würde sagen der Einsteiger soll selbst entscheiden ;-)

Beste Grüße
public

von Bernd N. (Gast)


Lesenswert?

Nach deiner Logik sollte er dann nen 8051 Typ nehmen, fällt Direction 
auch noch weg :-)

Mal ehrlich, du scheinst es ja auch gelernt zu haben so what ?

von public (Gast)


Lesenswert?

Bin ja schon ruhig ;)

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.