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
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€)
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 ;-)
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.
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
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
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.
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.
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.
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
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.
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
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
Ich finde dieses hier ganz gut: http://www.brytoncorp.com/clientuploads/directory/Products/Images/PATIENT_RESTRAINT/PR-4000_.jpg
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.