Forum: Mikrocontroller und Digitale Elektronik STM32 Nucleo Board von der Embedded


von chris_ (Gast)


Lesenswert?

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.

von (unknown) (Gast)


Lesenswert?

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?

von chris_ (Gast)


Lesenswert?

>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

von BLUBBLUB (Gast)


Lesenswert?

http://mbed.org/handbook/mbed-SDK:

The mbed SDK is licensed under the permissive Apache 2.0 open source 
licence.

von BLUBBLUB (Gast)


Lesenswert?

http://mbed.org/handbook/mbed-SDK

:
The mbed SDK is licensed under the permissive Apache 2.0 open source
licence.

von Jeffrey L. (the_dude)


Lesenswert?

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 ;-)

von Jan B. (berge)


Lesenswert?

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.

von Stefan D. (reverse)


Lesenswert?

Eigentlich ist es aber nur ein " altes " STM Discovery Board mit 
Ansteckmöglichkeit für Ardnino Shields und abbrechbarem ST-Link.

von Pieps (Gast)


Lesenswert?

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...

von ... (Gast)


Lesenswert?

Mein FPGA-Blinker schlägt jeden STM-Blinker um Längen.

von Jojo S. (Gast)


Lesenswert?

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!

von chris_ (Gast)


Lesenswert?

Kennt sich jemand von euch mit "mbed" aus?
Ich versuche gerade, die Funktion AnalogOut zu verwenden:
1
AnalogOut sine(PA_4);

Der Compiler findet die Funktion aber nicht.
Laut Anschlussplan sollte der Pin zumindest vorhanden sein:
http://mbed.org/media/platforms/ST-Nucleo-F030R8-Arduino.png

von Jojo S. (Gast)


Lesenswert?

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/

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.