|
|
STM8S-DiscoveryDas STM8S-Discovery ist ein sehr günstiges Evalutionsboard für die Controllerfamilie STM8 von ST Microelectronics. Auf der Platine befindet sich ein kompletter USB-Programmer/Debugger, ein zu programmierender Mikrocontroller vom Typ STM8S105C6T6 sowie eine LED und ein kapazitiver Taster. Für das Discovery benötigt man kein Netzteil, da es die Betriebsspannung über den USB-Anschluss bezieht. Mit dem Programmer/Debugger kann man jeden beliebigen STM8 über SWIM – der einpoligen Programmierschnittstelle für STM8 – flashen und auf Fehlersuche gehen.
[Bearbeiten] Benötigte HardwareEiner der großen Vorteile des STM8S-Discovery ist, dass man außer dem Evaluationsboard eigentlich nur noch ein USB Kabel (A auf B) braucht. Man braucht weder ein externes Netzteil noch zusätzliche Bauteile wenn man mit dem Board ein wenig herumexperimentieren möchte. [Bearbeiten] Benötigte SoftwareDie benötigte Software gibt es kostenlos oder mit einer kostenlosen, aber etwas eingeschränkten Lizenz zum Herunterladen auf der ST Seite. [Bearbeiten] LinuxDie USB Implementierung des ST-Links ist zumindestens auf dem STM8S Discovery Board kaputt. Beim Anstecken des USB Steckers kommen andauernd Fehlermeldungen des USB Subsystems, siehe [1] Informationen zum oder über einen Update der ST-Link Firmware wurden im Netz nicht gefunden (Feb. 2011) [Bearbeiten] ST MCU ToolsetDas ST MCU Toolset beinhaltet die Entwicklungsumgebung ST Visual Develop (Vergleichbar zum AVR Studio von Atmel) und einen graphischen Flasher. Es beinhaltet den Treiber für den Programmer/Debugger, den uneingeschränkten Assembler und Linker und einen Simulator. Es kann auf der ST Webseite herunter geladen werden. [Bearbeiten] Der CompilerBei den Compilern hat man die Wahl zwischen 2 (bald sogar 3) verschiedenen Compilern. Einige Compiler können voll in das ST Visual Develop integriert werden.
(UPDATE 10.05.2013) Die kostenlose Version ist nicht mehr verfügbar (kostet jetzt 700€). Es scheint aber noch eine 2K-Version zu geben.
[Bearbeiten] DatenblätterBevor man loslegt, sollte man sich noch folgende Datenblätter herunterladen, damit man bei Problemen immer schnell nachschlagen kann:
[Bearbeiten] Erste Schritte[Bearbeiten] ErstinbetriebnahmeZu aller erste sollte man das Discovery auspacken und via USB an einen Rechner anschließen. Nun sollte der PC das Board als einen USB-Stick erkennen, auf dem 3 Links gespeichert sind. Außerdem sollte es möglich sein, mit Hilfe des kapazitiven Buttons die Blinkfrequenz der LED zu ändern, denn auf dem Discovery ist schon ein Beispielprogramm von ST vorinstalliert. Dieses kann man sich zusammen mit der Dokumentation von der ST Downloadseite herunterladen. [Bearbeiten] Installation der benötigten SoftwareUm selbst Programme schreiben und debuggen zu können, muss man die komplette Toolchain installiert haben.
[Bearbeiten] Einrichten des ST Visual DevelopUm das erste Programm zu schreiben, öffnet man das ST Visual Develop (ähnlich dem AVR Studio). Leider sieht es nach dem Starten noch relativ leer aus. Doch das soll sich bald ändern!Als erstes klickt man unter File (linke obere Ecke, erster Menüpunkt) auf New Workspace. Danach öffnet sich ein kleines Fenster. Hier wählt man das Arbeitsverzeichnis des ST Visual Develop aus. Dieses kann für alle Projekte gleich sein.
Unser erstes Projekt trägt den Namen STM8S_ErstesProgramm. Nachdem man den gewünschten Pfad eingegeben hat, bestätigt man mit "ok" (siehe Bild rechts). Als nächstes erscheint schon wieder ein Fenster. Hier legt man den Projektnamen und den Projektpfad fest, am besten ein Unterordner im Workspaceverzeichnis. In unserem Fall nennen wir unser Projekt "ErstesProgramm" und speichern es im Unterordner "ErstesProgramm" im Workspaceverzeichnis. Nun muss man nur noch die Toolchain definieren. Da wir den Cosmic 32K Compiler benutzen, wählt man unter Toolchain "STM8_Cosmic" aus. Zu guter Letzt muss man dem Programm noch mitteilen, in welchem Ordner sich der Compiler befindet. Bei einer Standartinstallation sollte dies der Pfad "C:\Program Files\COSMIC\CXSTM8_32K" sein. Danach kann mit "ok" bestätigt werden. Ein letztes Fenster erscheint, indem man nur noch den genauen Mikrocontroller Typ auswählen muss, für den man ein Programm schreiben will. Auf dem STM8S Discovery ist ein STM8S105C6 verbaut. Man muss ihn in der Liste mit "select" auswählen und mit "ok" bestätigen.So, endlich ist es geschafft. Man hat den ersten Workspace und das erste Projekt erfolgreich angelegt. Theoretisch könnte man jetzt loslegen zu programmieren. Aber nur theoretisch. Uns fehlt noch eine wichtige Komponente, die uns das Leben erheblich vereinfacht, nämlich die Firmware Libarys von ST. [Bearbeiten] Firmware LibraryUm jetzt weiter machen zu können benötigt man die Datei stm8sfblib.zip von der ST Webseite. Am besten entpackt man diese Datei an einem sicheren Ort. Dabei sollte man ein Ordner "FWLib" erhalten sowie eine CHM-Datei (diese beinhaltet eine sehr ausführliche Dokumentation der Libarys und Beispiele) und eine TXT-Datei, die nicht weiter von Interesse ist. Im Ordner "FWLib" befinden sich der Unterordner "libary", in dem sich im INC-Ordner alle Header-Files und im SRC-Ordner alle C-Files der Library befinden. Den gesamten Ordner kopieren wir in unseren Workspace "stm8s_ErstesProgramm". Nun wechseln wir wieder zurück ins ST Visual Develop. Am linken Rand sehen wir eine Baumstruktur unseres Projektes. Unser Projekt besteht zur Zeit aus drei Ordnern "Source", "Include" und "External Dependencies". Für uns sind nur die ersten beiden relevant. Unter Source befinden sich zur Zeit zwei Dateien, die "main.c" und die "stm8_interrupt_vector.c". Der Include-Ordner ist leer. Mit einem Rechtsklick auf "Source" -> "New Folder..." erstellen wir einen neuen Ordner und benennen diesen "library". Das gleiche wird mit dem "Include"-Ordner gemacht. Auf dem gerade letzten erstellen Ordner machen wir wieder einen Rechtsklick -> "Add Files to Folder..." und fügen alle Dateien und "library/inc" hinzu. Jetzt müssen wir nur noch die "stm8s_conf.h" zu unserem Projekt hinzufügen. Man findet diese Datei unter dem Pfad "FWLib\project" und kopiert sie dann in den Projektordner und fügt sie dem Projekt wie im oberen Schritt zu, aber nicht unter "Include\library", sondern einfach nur unter "Include". Jetzt sollte die Baumstruktur wie im Bild aussehen. [Bearbeiten] Erstes ProgrammJetzt ist es endlich so weit. Wir können loslegen und unser erstes Programm schreiben. Es soll nichts weiter tun als die Led auf dem STM8S Discovery blinken zu lassen. Da wir hierfür einen GPIO (General Purpose I/O, also einen Pin, der sowohl als Eingang als auch als Ausgang konfiguriert werden kann) benutzen wollen, müssen wir, um die GPIO-Funktionen benutzen zu können, die GPIO-Library "stm8s_gpio.c" importieren. Die Datei finden wir unter "Libary\src" und fügen sie unter "Source\library" hinzu (s. Bild). Nun müssen wir nur noch die GPIO-Library in der "stm8s_conf.h" aktivieren. Dazu entfernen wir die Kommentarzeichen /* und */:
So das in der Zeile nur noch folgendes steht:
In der Regel werden alle Librarys, die man verwenden möchte, auf diese Weise in ein bestehendes Programm importiert. Dabei ist zu beachten, dass nur Librarys, die benutzt werden, zu importieren und in der "stm8s_conf.h" zu aktivieren sind. Ansonsten kann es beim Compilieren zu Fehlern kommen. Die Main-Routine des ersten Programms:
[Bearbeiten] Siehe auch[Bearbeiten] Weblinks |