Was sind STM8 Nucleo Boards?
STM8 Nucleo Boards sind eine Reihe von Entwicklungsboards, die von STMicroelectronics speziell für die STM8-Mikrocontroller entwickelt wurden. Sie bieten eine komfortable und flexible Plattform zum Entwickeln und Testen von Anwendungen auf Basis der STM8-Mikrocontrollerfamilie. Dank vielfältiger Funktionen und Anschlussmöglichkeiten bieten STM8 Nucleo Boards Entwicklern eine optimale Umgebung, um Prototypen zu erstellen und die Leistung der STM8-Mikrocontroller zu evaluieren. Die Boards sind in der Regel mit einem Debugger/Programmer, GPIO-Pins sowie UART-, I2C- und SPI-Schnittstellen ausgestattet, sodass Entwickler problemlos verschiedene Peripheriegeräte und Sensoren anschließen können. STM8 Nucleo Boards sind aufgrund ihrer Benutzerfreundlichkeit und Kompatibilität mit dem STM8-Ökosystem in der Elektronikindustrie weit verbreitet.
NUCLEO-8L152R8 und NUCLEO-8S208RB
Die NUCLEO-8L152R8 und NUCLEO-8S208RB sind die ersten Nucleo-64-Boards mit integrierten STM8-Mikrocontrollern (MCUs) und ermöglichen so flexible Prototypenentwicklung dank kompakter MCU-Konfigurationen. Der wesentliche Unterschied zwischen den beiden Modellen liegt in ihrer Flash-Speicherkapazität. Das NUCLEO-8L152R8 verfügt über einen STM8L152R8T6-Mikrocontroller mit 64 kB Flash-Speicher, während das NUCLEO-8S208RB einen STM8S208RBT6 mit 128 kB Speicher nutzt. Sie sind außerdem die ersten STM8-Entwicklungsboards mit einem Arduino™ Uno V3-Anschluss, der es Entwicklern ermöglicht, vertraute Shields, kostenlose Plugins und gängige Programmierbeispiele zu verwenden. In Zusammenarbeit mit Cosmic stellen wir zudem kostenlose Compiler für die STVD-STM8 IDE bzw. die Arduino IDE bereit. Damit können Entwickler erstmals Software für unsere STM8-Mikrocontroller in C++ entwickeln, ohne eine Toolchain erwerben zu müssen.

Wir haben festgestellt STM32 Nucleo-Platinen Sie sind besonders beliebt für Prototypenentwicklung. Zudem bieten sie eine große Auswahl an Erweiterungsplatinen, die nun mit NUCLEO-8L152R8 und NUCLEO-8S208RB kompatibel sind, da alle Nucleo-Modelle Arduino-Anschlüsse besitzen. Dadurch können Entwicklungsteams die vorhandene Hardware wiederverwenden, was Kosten spart und vor allem die Entwicklungszeit verkürzt, da sie bereits mit dem Aufstecken von Erweiterungen auf die neuen STM8 Nucleo-Boards vertraut sind. So lassen sich unsere 8-Bit-Systeme einfacher um Funktionen erweitern, was komplexere und intelligentere Designs in immer kleineren Gehäusen ermöglicht.
STM8 Nucleo Spezifikationen
- Platine mit MCU-Typen:
NUCLEO-8L152R8 – Basierend auf dem 8-Bit-Mikrocontroller STM8L152R8T6 von STMicroelectronics, der mit einer Frequenz von 16 MHz arbeitet, mit 64 kB Flash-Speicher, 2 kB EEPROM und 4 kB SRAM.
NUCLEO-8S208RB – Basierend auf dem 8-Bit-Mikrocontroller STM8S208RBT6 von STMicroelectronics, der mit einer Frequenz von 24 MHz arbeitet, mit 128 kB Flash-Speicher, 2 kB EEPROM und 6 kB SRAM.
4x LEDs – USB-Verbindungsanzeige (LD4), 5V STLINK-Anzeige (LD3), Benutzer-LED (LD2) und Betriebsanzeige (LD1).
2 x Tasten – Benutzertasten und eine RESET-Taste.
32,768 kHz externer Quarzoszillator, exklusiv für das Entwicklungsboard NUCLEO-8L152R8.
USB – 1-Kanal-MicroUSB-Schnittstelle als virtueller COM-Port, On-Chip-Speicherschnittstelle und Debug-Schnittstelle.
- Erweiterungsanschlüsse:
Arduino UNO V3-Schnittstelle.
ST Morpho-Erweiterungsschnittstelle, einschließlich aller Ein-/Ausgänge für STM8.
Debug – On-Board ST-LINK/V2-1 Debugger und Programmer mit SWIM-Anschluss und Micro-USB-Port.
Stromversorgung – Stromversorgung über USB VBUS oder externe Stromversorgung (3,3 V, 5 V, 7 – 12 V).
Zugangspunkte für das Energiemanagement.
STM8 Nucleo-64 Entwicklungsboard-Projekt
Dieses Projekt beschreibt die Steuerung eines STM8 Nucleo-64 Entwicklungsboards über ein Terminalfenster auf einem PC. Das Terminal wird mittels eines RS232-Kabels mit der UART-Schnittstelle des jeweiligen Mikrocontrollers (STM8S208RBT6 für NUCLEO-8S208RB oder STM8L152R8T6 für NUCLEO-8L152R8) verbunden.
Nach dem Hinzufügen der notwendigen Komponenten zum Entwicklungsboard und dem Herunterladen der Anwendungssoftware können Benutzer GPIO- und TIM3-Timer der STM8S- oder STM8L-Serie verwalten und den Summerausgang mithilfe einer Terminalsoftware konfigurieren.

Erforderliche Komponenten
Für die Ausführung der Terminal-Demo-Anwendung für das STM8 Nucleo-64 Entwicklungsboard werden folgende Komponenten benötigt:
- Terminalfenster auf einem PC: Als Terminalemulationssoftware kann beispielsweise Windows HyperTerminal, TeraTerm Pro oder eine andere Terminalsoftware verwendet werden.
- RS232 Nullmodemkabel (mit gekreuzten Sende- und Empfangsleitungen).
Konfiguration des NUCLEO-8S208RB-Entwicklungsboards
Vor dem Ausführen der Anwendung muss das NUCLEO-8S208RB-Entwicklungsboard (basierend auf dem STM8S208RBT6-Baustein) so konfiguriert werden, dass der Summerausgang aktiviert ist. Der Summerausgang ist eine Multiplexfunktion des STM8S208RBT6. Diese Funktion wird aktiviert, indem das Remap-Optionsbit AFR7 im OPT2-Optionsbyte auf „1“ gesetzt wird.
Hinweis: Das NUCLEO-8L152R8 Entwicklungsboard (basierend auf dem STM8L152R8T6-Baustein) erfordert vom Benutzer keine Überprüfung oder Aktivierung der Remapping-Funktion oder des Summers.
Anwendungshinweise
Hardwareanforderungen
Diese Anwendung nutzt die integrierte LED (LD2) und den angeschlossenen Widerstand (R1) auf dem STM8 Nucleo-64-Board. Die für die Anwendung benötigten externen passiven Bauteile sind in der folgenden Tabelle aufgeführt:
| Component | Value |
|---|---|
| Buzzer B1 | - |
| Capacitors C1, C2, C3, C4, C5 | 100 nF |
| DB9 Connector | - |
Die Anwendung verwendet außerdem einen 5-V-betriebenen RS232-Treiber/Empfänger ST232B (weitere Details siehe Tabelle unten). Diese zusätzliche Komponente ist unerlässlich, da der COM-Port des PCs mit einer Standard-12-V-Spannungsversorgung arbeitet. Dies ist inkompatibel mit den UART-Ein-/Ausgängen der STM8S- oder STM8L-Serie, die mit 5 V betrieben werden. Das Bauteil ist im SO16-Gehäuse untergebracht und passt somit zum Gehäuse der STM8 Nucleo-64-Entwicklungsboards. Weitere Informationen zum ST232B finden Sie im Datenblatt.
| Model | Component Description | Package |
|---|---|---|
| ST232B | Ultra-Fast, Ultra-Low-Power 5V RS232 Driver/Receiver for UART 5/12V Level Conversion | SO16 |
Anwendungsschema
Das folgende Diagramm veranschaulicht den elektrischen Schaltplan der Anwendung. Wenn es sich beim RS232-Kabel nicht um ein Nullmodemkabel handelt (Sende- und Empfangsleitung sind nicht gekreuzt), verbinden Sie Pin 14 von U1 mit Pin 2 von DB9 und Pin 13 von U1 mit Pin 3 von DB9.
Anwendungsregeln
Diese Anwendung stellt eine Standardkommunikation zwischen dem Mikrocontroller STM8S208RBT6 oder STM8L152R8T6 und dem Terminalfenster eines PCs her. Die Kommunikation erfolgt über das RS232-Protokoll und die UART-Schnittstelle des STM8-Mikrocontrollers. Sowohl das Terminalfenster als auch die UART-Schnittstelle müssen identisch konfiguriert sein.
Ausführen der Anwendung
Um diese Anwendung auszuführen, befolgen Sie diese Schritte:
- Starten und konfigurieren Sie ein Terminalfenster auf Ihrem PC (siehe Abschnitt B: Konfigurieren des Terminalfensters, in diesem Fall mit Windows HyperTerminal).
- Kompilieren und starten Sie die Anwendungsfirmware mit ST Visual Develop (STVD) oder einer anderen Toolchain.
- Verbinden Sie den PC mit dem STM8 Nucleo-64 Entwicklungsboard über ein RS232-Kabel.
- Nach dem Start der Anwendung wird ein Menü im Windows HyperTerminal angezeigt. Über dieses Menü können Benutzer Folgendes tun:
- Die LD2-LED ein- oder ausschalten.
- LD2 auf Blinkmodus einstellen.
- Summer aktivieren/deaktivieren und Summerfrequenz auswählen.
Alle in diesem Menü angezeigten Informationen werden vom Mikrocontroller der STM8S- oder STM8L-Serie gesendet. Beim Drücken einer Taste in HyperTerminal wird der entsprechende ASCII-Wert an den Mikrocontroller gesendet, der ihn anschließend dekodiert.
Kommunikationssequenz zwischen STM8 Nucleo-64 Entwicklungsboard und Terminal
- Der Mikrocontroller der Serien STM8S oder STM8L sendet die Zeichenkette „Geben Sie Ihre Wahl ein“ an die Terminalemulationssoftware des PCs.
- Das Terminal zeigt die Meldung „Geben Sie Ihre Auswahl ein“ an.
- Der Benutzer drückt die Taste „2“ auf der Tastatur.
- Die Terminalemulator-Software sendet den entsprechenden ASCII-Code (0x52) zurück an den Mikrocontroller (siehe Anhang A: Standard-ASCII-Zeichencodes).
- Der Mikrocontroller dekodiert die empfangenen Daten und sendet den Code 0x52 zur Anzeige auf dem Terminal zurück und speichert den Wert „2“ im Speicher.
- Die Terminalemulationssoftware empfängt den Code 0x52 und zeigt „2“ an.
- Der Benutzer drückt die „Return“-Taste.
- Die Terminalemulator-Software sendet den Code 0x0D zurück, der dem Wagenrücklauf entspricht (siehe Anhang A: Standard-ASCII-Zeichencodes).
- Der Mikrocontroller der Serie STM8S oder STM8L dekodiert die empfangenen Daten, sendet den Code 0x0D zurück, der auf dem Terminal angezeigt werden soll, und führt die mit Option 2 verbundene Operation aus.
Windows HyperTerminal
STM8S und STM8L Peripheriegeräte
Dieses Anwendungsbeispiel verwendet die Standard-Firmwarebibliotheken von STM8S und STM8L zur Steuerung allgemeiner Funktionen. Folgende Peripheriegeräte werden in dieser Anwendung verwendet:
- Timer3 (TIM3): Der Timer TIM3 ist als Zeitbasis konfiguriert, wobei Interrupts aktiviert sind, um die Blinkgeschwindigkeit von LD2 zu steuern.
- GPIOs: Die GPIOs dienen zum Anschluss des Mikrocontrollers an externe Hardware. Port PC5 (STM8-Serie) bzw. PB5 (STM8L-Serie) ist als Gegentakt-Ausgang konfiguriert, um LD2 anzusteuern.
- BEEPER: Um den Summer anzusteuern, gibt das BEEPER-Peripheriegerät ein 1-, 2- oder 4-kHz-Signal am BEEP-Ausgangspin aus.
- ART3 für STM8S-Serien oder USART3 für STM8L-Serien: Wird zur Kommunikation mit dem auf dem PC laufenden Terminalfenster verwendet.
ART3 oder USART3 muss wie folgt konfiguriert werden:
- Baudrate = 960
- Datenlänge = 8 Bit
- 1 Stoppbit
- Keine Parität
- Empfangen und Senden aktivieren
(Hinweis: Bei Verwendung der STM8L-Serie muss der USART3-Takt deaktiviert werden.)
Die Kommunikation wird durch Abfragen bei jedem Empfangs- und Sendevorgang gesteuert.
(Hinweis: Das Terminalfenster und die UART-Schnittstelle des STM8-Geräts müssen mit der gleichen Baudrate, Datenlänge, Stoppbits und Parität konfiguriert sein.)
STM8 Standard Firmware Library Konfiguration
Standard-Firmwarebibliothek der STM8S-Serie
Die Datei stm8s_conf.h der Standard-Firmwarebibliothek der STM8S-Serie ermöglicht die Aktivierung von Peripheriefunktionen für die Verwendung in der Anwendung durch Konfiguration der Bibliothek. Die folgenden Definitionsanweisungen müssen deklariert werden:
- #define _GPIO 1, um GPIO zu aktivieren
- #define _TIM3 1, um TIM3 zu aktivieren
- #define _BEEPER 1 to enable BEEPER
- #define _UART3 1 um UART3 zu aktivieren
Standard-Firmwarebibliothek der STM8L-Serie
Die Datei stm8l_conf.h der Standard-Firmwarebibliothek der STM8L-Serie ermöglicht die Aktivierung von Peripheriefunktionen für die Verwendung in der Anwendung durch Konfiguration der Bibliothek. Die folgenden Include-Anweisungen müssen deklariert werden:
- #include „stm8l15x_gpio.h“
- #include „stm8l15x_tim2.h“
- #include „stm8l15x_tim3.h“
- #include „stm8l15x_beep.h“
- #include „stm8l15x_usart.h“
Ablaufdiagramm der Anwendungssoftware
Dieser Abschnitt erläutert die Hauptschleife der Anwendungssoftware und die Funktionen, die den Datenempfang/-versand zum/vom Endgerät steuern:
- App_Menu: Diese Funktion dient dazu, ein Menü auf dem Terminal anzuzeigen und Benutzereingaben zu verwalten.
- SerialPutString: Diese Funktion dient zum Senden von Zeichenketten an das Terminal.
- SerialPutChar: Diese Funktion dient zum Senden einzelner Zeichen an das Terminal.
- GetInputString: Diese Funktion dient zum Empfangen und Speichern von Zeichenketten, die vom Terminal gesendet werden.
- GetIntegerInput: Diese Funktion dient zum Empfangen von Ganzzahlen vom Terminal.
- Get_Key: Diese Funktion gibt den entsprechenden Hexadezimalcode zurück, wenn eine Taste gedrückt wird.
Hauptfunktion der Anwendung
Die Hauptfunktion der Anwendung konfiguriert Peripheriegeräte der Serien STM8S oder STM8L und aktiviert Standard-Interrupts für alle von der Anwendung verwendeten Peripheriegeräte. Nach der Initialisierung zeigt das Hauptprogramm das Anwendungsmenü im Terminalfenster an.

App-Menü-Funktion
Die Funktion „App_Menu“ ist das Kernstück der Anwendung. Sie zeigt ein Menü im Terminal an, über das GPIO, TIM3 und der Summer konfiguriert werden können. „App_Menu“ ruft die Funktionen „GetInputString“, „GetIntegerInput“ und „SerialPutString“ auf, um Daten über die RS232-Schnittstelle zu senden und zu empfangen.

GetInputString-Funktion
Die Funktion `GetInputString` dient zum Empfangen und Speichern von Zeichenketten, die vom Terminalfenster gesendet werden. Diese Funktion verwendet die Funktion `Get_Key`, um jedes Zeichen zu erfassen und zu dekodieren (siehe Anhang für Details). Je nach ASCII-Wert des Zeichens werden unterschiedliche Aktionen ausgeführt.
Wenn der ASCII-Code \b (Backspace) lautet: Das Terminal hat einen Backspace gesendet. Ist die Zeichenkette nicht leer, wird das letzte Zeichen gelöscht.
Wenn der ASCII-Code zwischen {0…9} oder {A…Z} liegt: Das Zeichen wird in der Zeichenkette gespeichert.
Wenn der ASCII-Code \r (Wagenrücklauf) ist: Die Funktion GetInputString speichert am Ende der Zeichenkette den Wert \0 als Zeichenkettenende. Die maximale Anzahl der in buffP gespeicherten ASCII-Codes.[bytes_read]Der Puffer ist erreicht. Die Software löscht die aufgezeichnete Zeichenkette und wartet auf eine weitere Eingabe vom Terminal.
Get_Key-Funktion
Die Funktion Get_Key dient dazu, Tastatureingaben am Terminal durch Abfrage des UART-RXNE-Flags zu erkennen. Sie gibt den empfangenen Wert zurück.

SerialPutString- und SerialPutChar-Funktionen
SerialPutString dient zum Senden von Zeichenketten über UART an das Terminal. Die Zeichenketten werden, wie im Flussdiagramm dargestellt, mithilfe der Funktion SerialPutChar einzeln gesendet.
GetIntegerInput-Funktion
Die Funktion GetIntegerInput prüft, ob die eingegebenen Daten einer ganzen Zahl entsprechen. Ist dies der Fall, werden die Daten im Speicher abgelegt; andernfalls wird der Benutzer zur Eingabe neuer Daten aufgefordert.




