Forum: Mikrocontroller und Digitale Elektronik ARM Anfänger Board


von Stefan (Gast)


Lesenswert?

Hallo!

Ich programmiere nun seit längerem auf der AVR Architektur und finde das 
für einfache Lösung auch eine gute Sache. Durch das Embedded Projects 
Journal bin ich jetzt darauf gekommen mal etwas mit der ARM-Familie 
machen zu wollen. Sieht alles recht interessant aus, aber für mich 
besteht das Problem, dass ich (noch) nicht den Durchblick von der Fülle 
an Controllertypen und Boards habe... Bei der Recherche sind mir nun ein 
paar Boards aufgefallen:

1.) Gnublin von gnublin.org (gibt es auch im Shop - recht wenig Pins 
herausgeführt?!)
2.) Das mbed Board (mbed.org)
3.) Die Development Boards aus dem Shop (wobei mir das teilweise für den 
Einstieg etwas zu teuer ist)

Habt ihr Erfahrungen, Anregungen, Tipps für mich? Wie läuft die genaue 
Entwicklung ab? Programmiert man dort auf einem Embedded Linux oder ist 
das wie bei den AVRs, dass man per avrdude (mal als Beispiel genommen) 
irgendeine .hex Datei auf den Controller flasht und der dann schaltet & 
waltet?

Gruß,
Stefan

von RP6Conrad (Gast)


Lesenswert?

STM32 Discovery board. Sehr billig, verschiedene compiler moglich (IAR, 
Keil, Atollic, Eclipse...), jetzt auch noch ein STM32F4 discovery. Wird 
verkauft bei Farnell, RS, aber auch bei Watterott.
Ein billige Einstieg in ARM (15€)

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Lese mal in diesem Artikel: STM32
Und frage dann gezielt.

Das STM32F4 discovery kann ich auch empfehlen. Bei den 15 EUR macht man 
garantiert keinen Fehler ;-)

von Michael (Gast)


Lesenswert?

Zunächst solltest du dir darüber im Klaren sein das der Ausdruck "ARM 
Familie" sehr weit gefasst ist.
Es gibt z. B. kleine Controller die auf dem Cortex-M0 Kern basieren und 
darauf ausgelegt sind den 8-Bit Controller Konkurrenz zu machen.
Daneben gibt es aber auch Dual-Core µCs mit 1.2GHz auf Cortex-A8 Basis 
die gerne in Android Geräten verbaut werden. Die haben nicht das 
allermeiste miteinander zu tun, außer das die Kerne eben von ARM 
entwickelt wurden.

Das Gnublin-Board ist ein kleiner Linux Rechner, leider ohne Netzwerk. 
Das mbed Board entspricht praktisch einem AVR Board und wird mit einem 
Hexfile geflasht.

Es hängt jetzt also davon ab was du machen willst. Soll es so etwas sein 
wie ein AVR nur halt mit einem 32Bit Controller oder ein embedded Linux?
Im ersten Fall kannst du noch gut deine eigene Hardware aufbauen und 
komplett selbst programmieren. Beim Linux Rechner wird es dagegen wohl 
eher auf ein fertiges Board hinauslaufen.
Falls du noch nichts mit Linux gemacht hast solltest du dir für die 
zweite Variante vielleicht erst ein solches Betriebssystem (z. B. 
Ubuntu) auf deinem Rechner installieren und dich damit befassen. Kann 
auch eine virtuelle Maschine unter VirtualBox sein.

von Suchender (Gast)


Lesenswert?

Lcpxpresso für ca. 20 Euro bei Watterott

von Stefan (Gast)


Lesenswert?

Moin!

Das STM32F4 gefällt mir echt gut. Entspricht eigentlich all meinen 
Anforderungen zum Anfang. Mir bleiben aber noch zwei Fragen offen:
1.) Wird dort über USB programmiert? Also ist dort eine Art Bootloader 
vorinstalliert, der das Image zu sich in den Speicher schaufelt.
2.) Das Gnublin-Board läuft auf einem Embedded Linux. Hat das 
nennenswerte Vorteile oder ist das nur eine "Oberfläche" um mit der 
Hardware zu kommunizieren? Welche Vorteile bringt diese "hohe" Hardware? 
Für mich sieht das Alles ein bisschen Arduino-like aus..

Gruß,
Stefan

von Stefan (Gast)


Lesenswert?

Ach ihr postet ja schneller als man lesen kann. Die letzten zwei Posts 
hatte ich vor meinen letzten gar nicht gelesen. Damit sind natürlich die 
Frage geklärt.

@Michael:
Ich nutze schon länger Ubuntu und mach meine gesamte Entwicklung 
(PC-Software als auch µC) damit ;) Eine Netzwerkschnittstelle soll wohl 
über einen USB-Port anschließbar oder per COM-Verbindung emulierbar 
sein.

Ich muss ehrlicher Weise sagen, dass ich mir unter der 32-bit Welt doch 
eher Embedded Systeme wie das Gnublin vorgestellt habe. So beim groben 
drüber sehen von der Programmierung des STM32 sieht das Ganze doch recht 
komplex aus.

Gruß,
Stefan

von Torben (Gast)


Lesenswert?

Hallo,

>1.) Wird dort über USB programmiert? Also ist dort eine Art Bootloader
>vorinstalliert, der das Image zu sich in den Speicher schaufelt.

Es befindet sich der ST-Link/V2 auf dem Board zusätzlich und du kannst 
nicht nur über USB programmieren, sondern auch debuggen. Ausserdem 
besitzen die STM32 z.B. einen internen USB Bootloader, damit koennte man 
das Device auch programmieren.

Die 15-17€ sind echt gut investiert, weil Du in den Besitz von einem 
Arm-Cortex-M4 und STLink/V2 (kostet normal 30€) kommst.

von Michael (Gast)


Lesenswert?

Embedded Linux hat den Charme das man ein ausgewachsenes Betriebssystem 
zur Verfügung stehen hat. Damit kann man mehrere Anwendungen 
gleichzeitig ausführen und sich auch schnell mal remote per SSH 
einloggen. Für die neueren A8/A9 Plattformen stehen auch viele 
Multimedia Codecs zur Verfügung wenn man Audio/Video machen will 
(Stichwort NEON/SIMD Befehle).
Weit verbreitet sind da die OMAP Controller/Prozessoren von Ti für die 
es auch fertige Debian Distributionen gibt (z.B. für AM3517).

Nur sind das eben mehr eigenständige Rechner als Mikrocontroller. 
Billiger als (Atom-)PCs und auch mit einer geringeren Leistungsaufnahme. 
Aber sonst auch nicht viel anders. Gut, kleiner sind sie auch. Aber 
allemal teurer als ein Cortex-M3/M4 Board. Die Möglichkeiten hardwarenah 
zu arbeiten (z. B. mit SPI/I2C/GPIO) sind eingeschränkt. Selbstbau 
kannst du fürs Erste vergessen. Die Hardware ist ziemlich komplex.

Wie gesagt, es kommt darauf an was du willst. Eine Grenze zwischen den 
reinen µCs und den embedded Linux Systemen könnte man vielleicht beim M4 
ziehen. Dessen Stärke sind die DSP und FPU Befehle. Anwendungen dafür 
erfordern aber oft Netzwerk/USB Anbindungen und viel Speicher. Da ist 
vom Aufwand/Kosten her der Abstand zu den A8 Systemen nicht mehr groß, 
was den Sinn des M4 dann doch wieder infrage stellt.

Um bei einem STM32 eine LED zum Blinken zu bekommen ist schon etwas mehr 
zu tun als bei einem ATmega48. Der Aufwand erhöht sich bei komplexeren 
Anwendungen aber nicht mehr sonderlich (für eth, USB gibt es fertige 
Lösungen). Und wenn du ein mehr oder weniger echtzeitfähiges System mit 
einem embedded Linux System aufbauen willst, geht es gleich an die 
Treiberprogrammierung. Das gilt auch für hardwarenahe Programmierung. 
Das ist dann wiederum aufwendiger als bei einem 
STM32/LPC1xxx/LM3S/wasauchimmer.

Falls du etwas mit Linux machen willst dann kannst du das aber gleich 
tun. Ein M3/M4 Board bringt dann nichts.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Ich denke mal Stefan möchte erst mal kein Linux auf dem Board haben, 
denn das ist dann wirklich richtig aufwändig.

Als erster Zwischenschritt vor Linux ist ein STM32F4 nicht schlecht, da 
lernt man vieles kennen:

- Umgang mit mehr Speicher
- Bus-Matrix vom Core
- Die Clock's und deren Konfiguration
- die vielen IO-Module und die DMA Funktionen

Mit dem STM32F4Discovery Board ist das auch als Hobby-Anwender noch 
bezahlbar, ja sogar super günstig.

Einen Cortex-A8 kann man auch nur mit Linux Nutzen wenn man genügend RAM 
anschließt, und den auch noch mit 1GHz zu laufen zu bekommen ist schon 
fast ein Kunstwerk. Besser kauft man sich da gleich ein ITX-Board oder 
ein fertiges A8-Modul und das wird teuer. Der A8 ist somit nicht mehr 
Hobby-Tauglich (außer für die Profis).

Nur wegen der Programmierung, es macht keinen Unterschied 8 Bit oder 32 
Bit zu programmieren, das macht dann schon der C-Compiler alleine.

von Stefan (Gast)


Lesenswert?

Guten Morgen!

Vielen Dank für eure Ausführungen. Ich denke mir, dass ich erst einmal 
das STM32 mir besorgen werde und dann anfange mich reinzufuchsen. Habt 
ihr zufällig gute Programmiertutorials oder eine Übersicht der Syntax? 
Ich hab da bisher noch nicht wirklich etwas gefunden..

Gruß,
Stefan

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Artikel:
- STM32
- STM32 Eclipse Installation

Das "Blink-LED, komplettes Eclipse-Workspace von MmVisual" (mir) 
überarbeite ich gerade so dass dort 3 Projekte für den STM32F1/2/4 drin 
sind. Die Vorabversion kannst du von mir bekommen.
Und gegen eine kleine Spende helfe ich auch gerne bei der Einrichtung.

von THaala (Gast)


Lesenswert?

Ich bin auch gerade mit dem STM32F4Discovery gestartet..

eine gute Einführung vom Scratch aus gibt es hier:

http://www.chibios.org/dokuwiki/doku.php?id=chibios:articles:stm32f4_discovery

Bis auf Kleinigkeiten hat das sofort funktioniert. Das Beispiel für das 
Board nutzt außerdem gleich ein ein RTOS (chibiOS eben...)


Gruß
THaala

von Stefan (Gast)


Lesenswert?

Moin!

So langsam fange ich an durchzublicken. Mir gefällt nur eins nicht: Es 
gibt zwar Demo-Codes die auch alle toll funktionieren sollen, aber 
darüber hinaus gibt es keine weitere Beschreibung. Auch bei chibiOS ist 
das so. Der Code ist zwar gut und verständlich kommentiert, aber es gibt 
keine Übersicht, welche Instruktionen es gibt und wie man z.B. Ports 
anspricht.

Tschuldigung, dass ich so viel frage, aber für mich sieht das alles hoch 
komplex aus und ziemlich aufwändig in der Programmierung.

Gruß,
Stefan

von Paul (Gast)


Lesenswert?


von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

In der STM32Fxxx Standard Peripherals Library, von der Downloadseite von 
ST sind jede Menge Demo-Codes enthalten.

Einfach die Lib laden und anschauen, samt Dokumentation.

von Stefan (Gast)


Lesenswert?

An das Naheliegenste hatte ich natürlich nicht gedacht.. Das ist erstmal 
eine gute Anlaufstelle. Danke!

Gruß,
Stefan

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.