Hallo Zusammen,
gestern habe ich mir auf der Embedded in Nürnberg ein STM32 Board
mitgenommen. Man musste sich vorher im Internet eintragen und konnte
dann einfach eines am STM-Stand mit dem Ausdruck der Anmeldung holen.
Leider war ich wie immer etwas zu spät mit der Anmeldung, so dass ich
nur noch ein STM32F030 Nucleo-Board bekommen habe ( kleiner Speicher 64K
Flash, 8K Ram ).
http://de.mouser.com/new/stmicroelectronics/stm-nucleo-development-boards/?gclid=CP3jzp_H7LwCFU_KtAodnXYApQ
Aber egal, das Board gefällt mir trotzdem. Es hat oben zusätzlich
Arduino Compatiple Stecker, so daß man relativ schnell eine LED an den
richtigen Pin hängen kann, oder auch irgendwelche 3.3V verträglichen
Arduino Shields.
Eigentlich habe ich gar nicht wirklich Zeit für das Board, aber ich
wollte trotzdem mal wissen, wie es sich programmieren lässt. Aus der
Webseite war es nicht gleich ersichtlich, aber in 30 Minunten war ich
schlauer. Es ist nämlich extrem einfach:
1. man muss ich auf der Embedd Seite anmelden, um den Online-Compiler zu
nutzen: https://mbed.org/explore/
( Irgendwie bin ich über die STM32F030 Nucleo Seite dort hin gelangt, so
dass gleich der richtige Prozessor eingestellt war. Wie man den
Prozessor auf der Seite einstellt wenn man auf einem anderen Weg dorthin
gelangt, weiß ich nicht. )
2. Man wählt das Blink-Demo
3. Man steckt das Board an, es geht ein File-Menue auf, das Board meldet
sich quasi wie ein USB-Stick.
4. Man drückt den Compile-Knopf
5. Man kopiert das Bin-File aus dem Compile Vorgang auf den "qausi
USB-Stick". Das seltsame: Das File verschwindet gleich. Aber:
6. Die LED blinkt
7. Das Beste: Es funktioniert mit meinem Ubuntu einwandfrei
So schnell habe ich bei einem neuen Mikrocontroller noch nie eine LED
zum Blinken gebracht . Wirklich erstaunlich, wie einfach das geht. Der
Nachteil: Es ist ein Online-Compiler, ohne Internet geht nichts.
Außerdem weiß ich nichts über die Nutzungsbedingungen ( welche Rechte
haben die an meinem Code? )
Mein Resume: Sehr gut gemachtes Entwicklungssystem.
Da man heutzutage eh fast überall Internet hat, sehe ich das als grossen
Vorteil an, nicht erstmal etliche 100 MB für irgendwelche
Entwicklungsumgebungen runterladen zu müssen. Das senkt die
Einstiegshürde doch schon u einiges, wenn das so easy in betrieb zu
nehmen ist.
Was kostet das Teil denn, wenn man es so sich kaufen muss?
>Da man heutzutage eh fast überall Internet hat, sehe ich das als grossen>Vorteil an, nicht erstmal etliche 100 MB für irgendwelche
Klar, es ist auf jeden Fall bequem. Ich bin allerdings einmal im Jahr
auf Berghütten zu Workshops und dort gibt es meistens nur eine ziemlich
"tröpfelnde" Internetverbindung für die ganze Gruppe.
>Was kostet das Teil denn, wenn man es so sich kaufen muss?
Schau mal oben bei dem Mouser-Link oben. Es liegt ungefähr bei 9Euro.
Das schlägt den Arduino noch deutlich.
Hier habe ich noch den Direktlink zu ST gefunden:
http://www.st.com/web/en/catalog/tools/PF259997
wobei Du den onlinecompiler nicht zwingend benützten musst!
Ich selbst programmiere lieber mit Keil µVision. Der ist bis 32K frei,
für Hobbyprojekte reicht das massig und ST bietet super libaries für den
STM32 an.
Das tolle an dem Brett ist, dass der Debugger glech dabei ist. man kann
dann wahlweise das nucleo-board programmieren oder umjumpern und den
integrierten ST-Link für andere Platinen benützen.
Der integrierte ST-Link debugger macht das Board mit vielen IDEs
kompatibel!
Habe übrigens noch den F401 ergattern können ;-)
Hmm, naja, 32KB sind nicht so viel. Mach mal was auf einem größeren STM
mit Netzwerk etc. und schwupp, bist du bei guten 80KB ;) Ich empfehle
CooCox.
Aber du hast recht, dank des ST LINKs kann man das Ding auch traumhaft
so programmieren.
chris_ schrieb:> So schnell habe ich bei einem neuen Mikrocontroller noch nie eine LED> zum Blinken gebracht . Wirklich erstaunlich, wie einfach das geht.
Na Klasse. Mit einem passenden File gelingt das mit jedem Controller.
Der Teufel der Details zeigt sich eben erst wenn man ein Problem selbst
von 0 auf 100 zu codieren hat...
ich kann die Freude von chris_ verstehen, mir ging es ähnlich. Ich hatte
ein LPC4088 Board gekauft und das mit der LPCXpressou Umgebung
programmiert weil ich die schon vom LPC1769 u.a. kannte. Das Ethernet
wollte aber nicht weil die Beispiele nur für andere Boards waren, da war
also mühseliges Steppen zur Fehlersuche nötig. Von EA hatte ich
Schaltpläne für das andere Board aus den Compilerbeispielen zum
Vergleichen angefragt. Die habe ich bekommen aber auch die Frage warum
ich nicht die mbed Umgebung nutze.
Naja, ich dachte das ist sowas wie das verpönte Arduino Zeugs und in
LPCXpresso sind sowieso genügend Beispiele drin. Habe das mbed dann doch
ausprobiert und das meiste lief wie im Kino: Projekt importieren,
compilieren und das Hexfile auf das USB MSD kopieren.
Die mbed Lib ist in einfachem C++ aufgebaut und sehr performant. Unter
'Handbook' oder 'Cookbook' findet man jede Mege Beispiele, auch für USB
und Ethernet.
Das jetzt auch STM32 in die mbed Plattformen mit aufgenommen wurde kann
auch ein kleiner Nachteil sein: die Beispiele die auf die low Level
Komponenten aufsetzen funktionieren sicher nicht immer reibungslos weil
ja immer mehr unterschiedliche Peripherie unter einen Hut gebracht
werden muss. Beim LPC4088 funktionieren z.B. die USB Host Komponenten
(noch) nicht weil dieser ein anderes Memory Layout hat. Aber man sieht
das da kräftig dran gearbeitet wird. Mir gefällt die mbed Lib sehr gut.
Eine Versionsverwaltung ist auch integriert, wenn es eine neuere Lib
gibt wird das angezeigt und kann mit einem Klick übernommen werden.
Was bei der Online Geschichte fehlt ist der Debugger. Dazu muss man das
Projekt für eine lokale Umgebung exportieren, was aber auch einfach mit
wenigen Klicks geht (zumindest wenn man eine unsterstütze Umgebung wie
LPCXpresso benutzt).
Mein Fazit: das Anfängerfreundlichste was ich bisher gesehen habe. Wg.
Blinky ist auf anderen Plattformen genauso einfach: aber nicht bei den
ARMs. Wenn ich daran denke wieviele Stunden ich verbracht habe so ein
blödes ARM7TDMI Board zum Laufen zu bekommen, mit OpenOCD, mehreren
verschiedenen JTAG Adaptern, dem Krampf die USB Treiber dafür
installiert zu bekommen usw. Dagegen ist mbed ein Träumchen!
ich denke du hast schon alles richtig gemacht, allerdings scheint der
Proz keinen AnalogOut zu haben. In der Devicedefinition device.h ist die
Funktion totgelegt:
#define DEVICE_ANALOGOUT 0 // Not present on this device
und das liegt wohl daran das der STM32F030R8T6 gar keinen DAC hat. Ob da
noch ein externer DAC auf dem Board sitzt müsstest du im Schaltplan
nachsehen, dann wird der vermutlich aber eher über SPI angesprochen.
Verwirrend ist das jedenfalls, kannst du ja mal hier melden:
http://mbed.org/platforms/ST-Nucleo-F030R8/