Mein neuer Lieblingsmikrocontroller

Lieber Arduino, wir haben zusammen viele großartige Jahre miteinander verbracht, doch man entwickelt sich halt weiter und wer bei der Verwendung von ARM-Prozessoren immer noch von seinen Nutzern erwartet, über Serial.print() zu debuggen, der hat wohl einfach den Schuss nicht gehört.

Nun habe ich den Schritt getan und halte ab jetzt die Fahne hoch für einen bösen Megakonzern: STMicroelectronics. Dieser hält im Mikrocontrollermarkt Anteile von um die 50%! Der Verdacht, dass die Mikrocontroller von ST also was taugen, könnte also durchaus berechtigt sein. Es gibt für arme kleine Privatentwickler zwei Reihen von Evaluationsboards, die sehr interessant sind:

STM32F4-Discovery

Neben dem gezeigten Board, das einen Cortex-M4F besitzt, gibt es auch noch weitere Varianten mit anderen Prozessoren oder zusätzlicher Peripherie. Der Prozessor meines Boards trägt die Bezeichnung STM32F407VGT6 und beherbergt 1Megabyte Flash, 192KB RAM, 3 Analog-Digital Wandler, 2 Digital-Analog-Wandler und 14 Timer. Weiterhin sind auf dem Board noch ein Beschleunigungssensor, ein Mikrofon, eine Audioverstärker, vier LEDs und ein Taster, die für eigene Funktionen genutzt werden können, und ein USB on-the-go Anschluss. Das Wichtigste ist das obere Viertel der Platine; hier befindet sich der ST-Link/V2, ein Debugger, mit dem der Mikrocontroller nicht nur programmiert werden kann, sondern mit dem auch der Prozessor angehalten werden kann und alle Register ausgelesen werden können – ganz neue Dimensionen für Leute wie mich, die vorher tatsächlich mit der seriellen Schnittstelle versucht haben, Fehler zu finden 😀

Als Entwicklungsumgebung eignet sich die Coocox IDE sehr gut. Sie bindet die Bibliotheken von ST sowie akzeptable Dokumentation ein und ist komplett kostenlos.

Darüber hinaus gibt es aber noch eine zweite Möglichkeit, für den STM32F407 zu entwickeln, die es ansonsten in dieser Form für kaum einen anderen Mikrocontroller gibt: Mit Simulink! Leider erfordert das eine sündhaft teure Matlab Lizenz. Wäre ich nicht Student an einer Uni, die sechsstellig pro Jahr für eine ‘Total Headcount’-Lizenz löhnt, hätte ich diesen Weg wohl niemals ausprobiert. Das grafische Programmieren ist in ähnlichem Umfang auch mit Labview möglich, welches aber nur mit den eigenen Geräten von National Instruments gut funktioniert. Für Simulink gibt es eine Basisunterstützung vieler Geräte, z.B. für Arduino, Raspberry Pi, Lego NXT, etc. Richtig gute Unterstützung erhält man mit den C2000 DSPs von Texas Instruments, dem Mathworks-eigenen xPC-Target oder der dSpace Hardware.

Oder eben mit dem STM32F4-Discovery. Dafür sorgt das Blockset Waijung. Es scheint für Studenten in Thailand geschrieben zu sein und deckt nahezu jedes Feature des Prozessors ab. I²C, UART, SPI, CAN – alle wichtigen Busse sind da, die Timermodule können nicht nur PWM ausgeben, man kann auch Pulse einlesen und Inkrementalencoder anschließen. Bis zu 6 Encoder lassen sich auslesen! In Hardware!

Hier eine Linkliste zu Ressourcen, die ich noch nicht genannt hatte, die einem aber verdammt gut weiterhelfen beim Einarbeiten in die Materie:

  • mikrocontroller.bplaced.net: Große Sammlung an Libraries, sehr gute Anleitung zur Einrichtung der Coocox IDE
  • tkjelectronics.dk: Review des Discovery Boards mit ausführlichen Demos
  • Waijung: Auf der Seite des Projekts gibt es eine Installationsanleitung, einen Link auf das RapidSTM32-Paket und einen Hinweis auf den Shop, wo Erweiterungsmodule angeboten werden

Und last but definitely not least: Das Ding ist billig. Richtig billig, ST subventioniert das Board, um neue Entwickler an die eigene Plattform heranzuführen.

Kosten: 15€ (farnell, ebay)

 

 

Nucleo

Nucleo F401RE, Bild von STMicroelectronics

Nucleo F401RE, Bild von STMicroelectronics

Nach unten abgerundet wird das Evaluation Board Sortiment von ST durch die Nucleo-Serie. Hier sind schwachbrüstigere Mikrocontroller als bei den Discovery Boards und nochmal niedrigere Preise zu finden. Das Hauptaugenmerk möchte ich hier auf das F401RE, bzw. seinen Nachfolger F411RE legen, welches neben einem Arduino-kompatiblen Pinout auch kompatibel zur Entwicklungsumgebung mbed ist. Hier werden Programme im Browser geschrieben und das Kompilat (Kompilat, hihi :D) auf dem Mikrocontroller gespeichert, welcher sich als USB-Datenträger beim Computer anmeldet. Zusätzlich kann der verbaute ST-Link auch die klassische Debugfunktionalität übernehmen. Ich besitze bisher noch keinen Nucleo, aber das ist nur noch eine Frage der Zeit…

Kosten: ca. 12€ (farnell, ebay)

Advertisements