- Erläuterung der Hardware des STM32 Nucleo 64 Development Board
- Programmierung der STM32 Nucleo 64 Development Boards
- Erste Schritte mit STM32F401
- Fazit
- Video
Für die meisten Leute da draußen wäre das erste eingebettete Entwicklungsboard, an dem sie gearbeitet hätten, höchstwahrscheinlich ein Arduino-Board. Aber wie auch alle zustimmen können, könnte Ihr Arduino Sie nur so weit bringen und eines Tages müssen Sie auf eine native Mikrocontroller-Plattform umsteigen. Dieser Prozess kann mit dieser STM32-Entwicklungsplatine erheblich vereinfacht werden, da sie alle Arduino-Shields unterstützt, um Ihnen auf der Hardwareseite zu helfen, und über zahlreiche integrierte Bibliotheken und Funktionen verfügt, die Sie auf der Softwareseite unterstützen. Wenn Sie sich auch mit einem STM32-Mikrocontroller vertraut machen, können Sie andere Entwicklungsmodule von ST wie die zuvor getestete SensorTile.Box auf einfache Weise erkunden. In diesem Artikel werfen wir einen vollständigen Blick auf diese STM32 Nucleo-64-Entwicklungskarten und lernen, wie sie verwendet werden.
Jetzt gibt es viele Versionen von STM32-Karten, und diese in meiner Hand heißt STM32F401 Nucleo-64. Der Name STM32 steht für einen 32-Bit-Mikrocontroller auf unserer Entwicklungsplatine, und der Name Nucleo-64 steht für 64 Pins des Mikrocontrollers. In ähnlicher Weise gibt es viele andere Versionen von Nucleo 64-Karten wie STM32F103, STM32F303 usw., aber sobald Sie sich mit einer Karte vertraut gemacht haben, sind alle anderen ziemlich ähnlich.
Erläuterung der Hardware des STM32 Nucleo 64 Development Board
Beginnen wir mit dem Auspacken unseres Entwicklungsausschusses. Wie Sie sehen, besteht das Gesamtpaket nur aus unserem Entwicklungsboard und einer Anweisungskarte. Auf der Anweisungskarte werden die Spezifikationen des Controllers, seine Pinbelegung und auf der Rückseite einige Informationen zu den ersten Schritten sowie die verfügbaren Toolchain-Optionen aufgeführt.
Bei näherer Betrachtung der Tafel können wir feststellen, dass die Tafel in zwei Regionen unterteilt ist. Der obere Teil ist der ST-Link / V2- Debugger und -Programmierer, während der untere Teil Ihr eigentliches Entwicklungsboard ist. Auf diese Weise können Sie Ihr Board einfach mit einem zusätzlichen USB-Kabel programmieren und debuggen, das an den USB-Mini-Anschluss des Boards angeschlossen werden kann.
Auf den ersten Blick scheint das Board viele Jumper und Komponenten zu haben, aber sie alle sind da, um es uns einfach zu machen. Die zwei Jumper, die Sie auf beiden Seiten der Platine CN11 und CN12 finden, sind eigentlich Dummy-Jumper. Diese Jumper können bei Bedarf in Zukunft für andere Zwecke verwendet werden. Die beiden Jumper auf CN2 werden verwendet, um den Programmierer- und Debugger-Bereich mit unserem Entwicklungsboard zu verbinden. In Zukunft können Sie diese Jumper entfernen, um den Programmierer für andere ST-Mikrocontroller über diese Pins zu verwenden. Und dieser Anschlussstift JP1 kann geschlossen werden, um den USB-Strom auf 100 mA zu begrenzen. Wenn er offen bleibt, beträgt der maximale Strom 300 mA. Hier haben wir eine dreifarbige LED (LD1), die rot leuchtet, wenn die Karte mit Strom versorgt wird, und grün leuchtet, wenn die Karte erfolgreich programmiert wurde, und orange leuchtet, wenn ein Kommunikationsfehler vorliegt.
Wenn wir zum Entwicklungsbereich übergehen, haben wir hier unsere wichtigste Komponente, den STM32F401RET6-Mikrocontroller. Dies ist ein 64-Pin 32-Bit-Mikrocontroller mit einem ARM Cortex M4- Prozessor, der mit 84 MHz arbeitet. Es hat auch 512 Kb Flash und 96 KB SRAM. Der Mikrocontroller verfügt über 10 16-Bit- und 32-Bit-Timer sowie einen einzelnen 12-Bit-ADC. Es hat auch drei USART, drei I2C, vier SPI und einen USB 2.0 für die externe Kommunikation. Weitere technische Informationen finden Sie im Datenblatt STM32F401.
Jetzt kommt hier der interessante Teil, wie ich Ihnen bereits sagte, dass das Board alle Arduino-Schilde unterstützt. Die Platine verfügt über zwei Steckverbindersätze. Die Buchsenstifte sind für Arduino-Abschirmungen vorgesehen, die perfekt zu unserem ESP8266 Wi-Fi Shield und unserem Semtech Arduino LoRa Shield passen, wie Sie in der Abbildung unten sehen können.
Die anderen Männchen werden ST-Morpho-Pins genannt, mit denen die Reibstifte unseres 64-Pin-Mikrocontrollers verwendet werden können. Dann haben wir hier eine Reset-Taste und eine vom Benutzer konfigurierbare Taste, die an Pin PC13 angeschlossen ist, sowie eine LED, die genau wie Arduino an Pin D13 angeschlossen ist. Zur Stromversorgung der Karte können wir entweder den USB-Anschluss verwenden oder hier direkt geregelte 5 V an den E5V oder an den 5V-Pin liefern. Denken Sie daran, diesen Jumper zu ändern, um anzuzeigen, wie Sie das Board mit Strom versorgen. U5V zeigt an, dass die Karte über USB mit Strom versorgt wird. Wir haben hier auch einen weiteren interessanten Überbrückungsstift namens IDD, mit dem Sie messen können, wie viel Strom Ihr Mikrocontroller verbraucht, indem Sie ein Amperemeter an diese Stifte anschließen.
Programmierung der STM32 Nucleo 64 Development Boards
In der Software-Sektion bietet das Board eine große Bibliotheks- und Programmierunterstützung und kann mit Keil, IAR Workbench und vielen anderen IDEs programmiert werden. Das Interessante ist jedoch, dass es die Entwicklungsumgebung ARM Mbed und STM32Cube unterstützt. Für diesen Artikel habe ich mich für die ARM Mbed-Plattform entschieden, da es sich um ein Online-Tool handelt, und ich fand es sehr interessant, da Sie nicht nur Ihre ST-Karten damit verwenden können, sondern auch viele andere Entwicklungskarten, die den ARM-Mikrocontroller verwenden.
Für Neueinsteiger ist ARM MBED eine Online-Entwicklungsplattform, die von ARM selbst bereitgestellt wird. Sie bietet ein eingebettetes Betriebssystem, Cloud-Dienste und Sicherheitsfunktionen, mit denen Sie auf einfache Weise IoT-basierte eingebettete Lösungen erstellen können. Es ist eine riesige Open-Source-Community, und für detaillierte Informationen ist ein separater Artikel erforderlich.
Erste Schritte mit STM32F401
Verwenden Sie jedoch zunächst ein USB-Minikabel, um Ihr STM32-Entwicklungsboard mit Ihrem Computer zu verbinden. Nach dem Einschalten sollten Sie feststellen, dass die LEDs LD1 und LD3 rot leuchten und die programmierbare LED LD2 so grün blinkt.
Sie werden auch ein neues Flash-Laufwerk auf Ihrem Computer mit dem Namen "NODE_F401RE" bemerken. Öffnen Sie es und Sie finden zwei Dateien, nämlich details.txt und mbed.htm, wie unten gezeigt.
Sie können die Datei Mbed.htm starten, um Ihr Board direkt online mit arm Mbed zu programmieren. Bevor wir dort ankommen, haben wir die erforderlichen Treiber installiert und uns für Mbed angemeldet. Suchen Sie nach der Treibersoftware STSW-link009 und laden Sie sie direkt von der ST-Website herunter. Installieren Sie den Treiber und stellen Sie sicher, dass das Gerät in Ihrem Geräte-Manager wie hier gezeigt korrekt erkannt wird.
Kehren Sie zu Ihrer mbed-Plattform zurück, um sich mit Ihren Anmeldeinformationen bei MBED.com anzumelden. Klicken Sie dann auf die Datei MBED.HTM und Sie werden mit der folgenden Seite begrüßt.
Scrollen Sie nach unten und klicken Sie auf " Open Mbed Compiler ". Wie Sie sehen, hat der Compiler unsere Plattform bereits als Nucleo-F401RE erkannt und stellt uns viele grundlegende Beispielprogramme zur Verfügung. Lassen Sie mich zunächst den „ LED Blinky Code “ auswählen und so ändern, dass die LED bei jedem Drücken des Druckknopfs erlischt.
Sobald der Code wie unten gezeigt fertig ist, können Sie auf die Schaltfläche zum Kompilieren klicken, um eine Bin-Datei zu erhalten. Kopieren Sie einfach die Bin-Datei und fügen Sie sie in Ihr Flash-Laufwerk ein, um Ihr Board zu programmieren. Sie werden feststellen, dass die LD1-LED nach Abschluss der Programmierung grün leuchtet. Drücken Sie nun die blaue Taste und Sie werden feststellen, dass die grüne LED erlischt. Auf diese Weise können Sie eines der Beispielprogramme ausprobieren, um verschiedene Funktionen der Karte zu erlernen. Sie können auch zur Hauptseite zurückkehren, um andere technische Dokumente und Community-Support zu erhalten.
Sie können sich auch das unten auf dieser Seite verlinkte Video ansehen, um die vollständige Rezension auf diesem Board anzuzeigen.
Fazit
Insgesamt glaube ich, dass diese Boards eine ausgezeichnete Wahl sind, wenn Sie versuchen, Ihre Fähigkeiten zu verbessern und fortschrittliche Anwendungen zu entwickeln. Mit seiner praktischen Hardwareunterstützung und Online-Community ist die Lernkurve dieser Boards auch recht einfach. Probieren Sie es also aus. Ich hoffe, Ihnen hat der Artikel gefallen und Sie haben etwas Nützliches daraus gelernt. Wenn Sie Fragen haben, lassen Sie diese im Kommentarbereich unten oder nutzen Sie unsere Foren für andere technische Fragen.